When setting up a scalable and high available web application on OpenStack you usually care about the following things:
- Create a couple of virtual machines
- Install multiple instances of the web application on different virtual machines. They must run on different machines since you want to have a failover instance in case one virtual machine crashes.
- Install and configure a load balancer that monitors the instances of the web application and distributes load to working application instances.
- Usually the web application depends on other services like databases, message queues.. Those services must be installed and configured so that they are high available as well
- You must ensure that all your software components are up to date (update operation system, application dependencies, the application itself, the databases, …)
- Adding additional instances of the web application is hard because you have to create a new virtual machine install the web application by hand and reconfigure the load balancer so that the load balancer knows about the new application instance.
- In case one application instance fails, you must repair it by hand.
. Using Cloud Foundry the actions mentioned above are automated.
- Just upload the application source code with one command, Cloud Foundry will detect which kind of application is deployed and will install all dependencies automatically.
- Adding or removing application instances is also just one command.
- Further, Cloud Foundry will share its available servers to multiple applications.