Cloud Computing

Do you offer Software as a Service, hosting a larger web or mobile solution with growing traffic or just need to quickly get a test environment - then you should consider moving your solution to the Cloud.
Now, the various cloud environments matured that much that it really lives up to the terms Infrastructure as a Service or a Platform as a Service. You don't need to invest in own servers and licenses, instead you can pay as you go and avoid fixed costs. Instead of tying up capital in hardware and software you can use it for new features or marketing of your services. The cloud is elastic and allows more efficient use of computing power than to let your servers be unused during nights and weekends, which also of couse makes it a more environmentally friendly.
We started using the Cloud and Amazon for a project in 2007, when we built a larger site for social media and music. We have since then put more than 10 major projects in production in the Amazon EC2 and Microsoft Azure. Beyond that, we made architectural blue-prints and also put a number of environments for proof-of-concepts, testing and continuous integration systems in all three major platforms; Amazon EC2/S3, Microsoft Azure and the Google App Engine.
We would love to assist you in running workshops or a PoC project, where you can take advantage of all our skills and experience. Contact us at cloud@jayway.com if you want to get more information.

Production environments

Do you have a new project or are you a startup, where time to market is most important? Then you should consider the Cloud as your main choice. It would usually take several months to set up your own new production environment and weeks to expand it. When putting the new production environment in the cloud, you can easily scale out across more server instances, or scale up to large server instances in minutes - or of couse scale down. We can help you build a flexible infrastructure solution that will allow you to adjust your capacity over days or weeks for optimal price / performance, where we assist you with everything from SLAs and choosing of pricing models to the tuning of middleware and databases. If you provide your solution as "Software as a Service", we can help you develop the underlying infrastructure
We have developed patterns and best practices to create a secure and stable production environment with monitoring, logging and deployment procedures. You can easily get a fully equivalent staging or pre-production environment to verify the release before it goes into production.

Test environments

Need a new test environment? Just clone your production environment or existing test environment. Run it as long as you need and then shut it down when you don't need it any longer, a test environment is usually used only between 8-17, Mondays to Fridays. And if you have multiple parallel releases to consider, you can easily have a test environment for each release, which you can shut down and store away until needed next time. If you need to test your application on multiple operating systems, databases or application servers, the Cloud could assist you here as well. We have built several integration test environments in the Cloud where we run automated nightly builds and execute tests in different test environments. For example, after each Spring LDAP build a number of integration tests are executed against four different LDAP servers that are started up just before the tests run and shut down immediately afterwards, the cost of test environments is almost non-existent! More details at our blog; Testing Among the Clouds, Part 2.
How much load can your system manage, can you take a hit where the traffic is doubled or tripled? Do you know where the limit is today? Setting up a load test environment similar to the production environment can be quite a large investment. By instead running your load tests in the cloud, the cost is usually less than 10% of what it otherwise would be. We can help you create a copy of your production environment, develop load test scenarios and set up load clients that run the tests inside the cloud, and of course also perform tuning analysis and implement improvements.

Prototypes, build and lab environment

If you have an idea for a new application or solution we can help you quickly build and launch a prototype in the Cloud. Here is the Google App Engine infrastructure and pricing model fantastic but also Azure is ideal for prototyping. We have developed a set of best practices for how to quickly and safely communicate between iPhone, Android, Windows Phone 7, Blackberry, Symbian, Qt and JavaME clients and Cloud servers.
If you develop your own applications, you can set-up a Continuous Integration environment with a build server on a smaller Cloud server instance. The build server will then pick up code from a version control system, build a new version of the application, execute all automated unit tests, perform code analysis and deploy and run through the integration and functional tests on a test server and finally notify team members via email about the result. All with the frequency you want. If you just run nightly builds the cost will be very low.
We do of course spend a lot of time on internal training and competence development. To use the time as efficient as possible, we have created a cloud based training and lab environment. The environment makes it quick and easy for the attendees to get up and running with the training. Some software might require a special operating system or a special version of the JVM or middleware to run, which not everyone can or wants to install on their own machines.
In this cases it is much easier to run the labs on an instance in the Cloud that you control and can store away and get back to when needed. As example, we held an internal training with Oracle Service Bus and WebLogic in this way. We set up the environment on one instance and then cloned it for each and every attendee. When the lab was finished, we just store it away for a very low cost and have it available for reviewing a couple of months later, when needed.