Architectural Designs Patterns in the Cloud
The cloud is attractive because:
- Abstraction of resources: It focuses on your needs and not on hardware specifications. Your needs can change and the cloud offering can be customized to meet the changed demand.
- On demand Services: You can ask for what you need, when you need it and you can get rid of features you no longer need.
- Scalability: Expand or shrink the amount of storage space you need.
- Pay per use: Long term commitments are not mandatory and you need to pay only for what you use.
- Technical Support: You have the skills, knowledge and resources of experts at your beck and call.
Architectural design patterns in the cloud are constructs that promote this attraction.
Cloud services are designed for failure. So, nothing fails. The architects design backwards on the assumption that anything and everything can fail and hence, guard against all kinds of failures. The systems are designed to continue functioning even if the underlying hardware is removed or replaced. Instantaneous failure recovery is ensured by:
- Using elastic IP addresses to provide for consistent and re-mappable routes
- Using Multiple availability zones
- Creating multiple database slaves
- Using real time monitoring, and
- Using tools for persistent file systems
Cloud services are loosely coupled systems. This ensures scalability. The emergent patterns are:
- Independence of components
- Everything is designed as a Black box
- Hybrid models are de-coupled, and
- Load balanced clusters are used
Cloud services are made elastic. There are no fixed locations for components. Resilient designs are used to reboot and re-launch. Dynamic configurations are enabled. This makes for
- Auto scaling
- Elastic load balancing on multiple layers, and
- SimpleDB configurations to bootstrap instances
Elasticity is further implemented by automating everything.
Security is built into all layers of the Cloud. Physical control of data stores may be partially lost, but ownership is never lost. The security architecture patterns available in the cloud are:
- Potential to create distinct security groups
- User group based rules can be defined for access
- External access can be restricted to IP ranges
- Data can be encrypted at rest or in transit, and
- Multifactor authentication can be used