Over the past couple of years we have been building large scale Java applications and deployed them in the cloud. While dealing with typical cloud issues such as auto scaling, failover, and incremental deployments we meanwhile had to refactor them for significant functional changes.
Being able to deal with change and dynamics are important reasons for companies to resort to the cloud for application development. Short time to market and rapidly changing requirements can lead to experimental software design however. Dealing with constant change in a codebase is non-trivial. In order to facilitate much change a modular codebase is of great importance.
In this talk we will show you what we have learned on how to create modular Java applications and how to deploy them in the cloud using an Open Source approach without locking into one of the PaaS providers. We will discuss OSGi, scalable web application architecture, and Apache ACE for deployment and provisioning.