Deploying highly available state-full web application to the cloud using Cloudify.
Deploying web applications to the cloud is a growing trend.
Cloudify is a one if the popular tools that let you do it with ease and turn it into a seamlessly repeatable procedure that virtualize the actual cloud infrastructure from the deployment. Cloudify does not stop there, it continue to monitor the deployment and take actions in cases of failures or changes in load requirements.
When dealing with state-full web applications, the deployment becomes a bit more challenging with the need to properly configure the lead balancer for stickiness as well as turn the session into a highly available, distributed store that can be accessed from all the web containers.
These additions make sure that in most cases, the user interaction with the web tier will remain on a single web container that has the session in memory, as well as be able to continue the same session even in case this single web container fails as the user is routed to another web container.
Gigaspaces other product, XAP has done this for customers for many year. Now we bring this pattern and an easy deployable Cloudify recipe.
The Cloudify recipe includes the following services:
1. ApacheLB as the loadbalancer
2. Tomcat instances as the web tier
3. XAP (For distributed session store)
ApacheLB recipe installs Apache, add the required modules for load balancing and provide a custom command for adding back-end nodes.
The Tomcat recipe installs and configures Tomcat. Deploy a web application and configure the Tomcat to utilize XAP for distribute session using the shiro apache filter. Upon successful start of the tomcat, the ApacheLB custom command for adding this tomcat instance to the load-balancer is triggered.
Finally, XAP installation deploys the XAP Data Grid product to provide distributed and fault tolerant session.
The combination of the load-balancer, multiple tomcat instances and redundant XAP data grid, ensure your service will be highly available and maintain user sessions for seamless interaction even in the case of partial failure which statistically will happen at some point in the future…