Scale Out Patterns for OpenStack (and Other Cloud) Based Systems
The Cloud Zone is brought to you in partnership with Mendix. Better understand the aPaaS landscape and how the right platform can accelerate your software delivery cadence and capacity with the Gartner 2015 Magic Quadrant for Enterprise Application Platform as a Service.
It is a common question these days how one should design their next system to support elastic and growth requirementsin the cloud era.
As I got this specific query today, I would like to share with you my answer based on various materials I created in the last few years:
1. Avoid File Storage SPOF: Use AWS S3 or its equivalent open source OpenStack Swift as a central file server repository when needed
How to use OpenStack Swift for your business case
2. Avoid Data Store SPOF: Use clustered data store that recovers automatically w/o a DBA or an operator intervention. Fine examples are AWS MySQL RDS, MongoDB and Cassandra
MongoDB HA concepts
3. Avoid Static Servers: Leverage Autoscale features or customize it for your needs
How to implement your application logic to auto scale your app
4. Avoid Messing with Cache: Use a central sharded cache to avoid cache revocation and reduce data stores load using MongoDB, CouchBase or Redis.
5. Offload your servers sessions: in order to avoid users log off and lost transactions:
How to implement a session offloading using a central store
6. Avoid Service Downtime due to Servers Downtime: More issues that can be found in my extensive presentation:
- Use DNS Load Balancing for Geo LB and DRP (Slide 10)
- Use CDN to offload network traffic (Slides 16-19)
- Perform Session Offloading by cookies or a central store (Slides 62-65)
You can scale your app! just follow the right recommendation.