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.