Cloud computing architecture is different than architecture for on-premise. Architecture for on-premise applications or systems rely on specific set of hardware, network, communication, integration and security due to organizational boundary and control.
In cloud computing, connection between applications and physical aspects gets blurred. It’s all virtual in the cloud. Cloud Architecture make use of cloud services to address business requirements.
As Cloud Computing provides so many services and options so the role of cloud architect has become more important. Cloud Architect understand the cloud computing, it’s principles, patterns and the services provided by a cloud service provider.
Cloud Architect knows how to combine these services in best possible manner to get the expected Return-on-Investments (ROI). There are specific certification available from the cloud providers to certify the knowledge of the cloud architect.
Applications utilize Cloud Services to provide the business value with Low TCO (Total Cost of Ownership). As there is less dependency on any physical aspects, applications should be flexible to adjust to the changing environment and business needs.
Cloud Computing is consumed in form of services. These services are based on cloud computing models. Below are few common Cloud computing models,
- Infrastructure as a Service (IaaS) such as Azure Virtual Machines (Azure), AWS EC2 etc.
- Platform as a Service (PaaS) such as Azure Web Role, AWS Elastic beanstalk etc.
- Software as a Service (SaaS) such as Microsoft Office 365, Salesforce etc.
Cloud Computing Architecture applications or workloads can be effective, if they follow the basic design principles of cloud applications. At a minimum they should be,
When we talk about resilience, we talk about how application handles faults and recover for failures. These faults can be occurred from internal reasons or external reasons, but if not handled correctly then cause a failure. I will write another post to talk about above 4 qualities in detail. I will also show, how to capture requirements about these quality attributes, how to address them in architecture and how to measure them.
Enabling these qualities in an application is not complex, but required right approach to follow.
The approach also depends on the cloud computing models.
In Infrastructure as a Service (IaaS) model these qualities can be enabled at the infrastructure level. Few examples are below,
- Resiliency – detect a virtual machine failure and span a new one.
- Scalability – add or remove virtual machines, when demand increase or decreases.
- Availability – Ensure at least a virtual machine is available to serve the clients.
- Security – Virtual Machine should restrict access using Network Security Groups and other mechanisms.
Similarly, In Platform as a Service (PaaS), these qualities are enabled at the development platform level or run time level.
In Software as a Service (SaaS), these qualities are enabled at the application of the service level that is exposed by the service provider.
Other than these basic qualities, application should also support for other ASRs related to cost, schedule and operational requirements. Business might also have some specific governance requirements such as organization policies, standards and guidelines to be followed.
These may come in form of Business Constraints, which govern the application architecture, deployment and configuration.
Governance in the cloud can be achieved by following the guidance from the Cloud Service Provider such as Azure Blueprints, AWS Organizations etc. It calls for 5th aspect to be included, which is Effective Operations.
If we compare 2 major cloud providers on the guidance for Effective Architecture for the cloud, the guidance is as below,
Azure – Azure Architecture Framework guidance says, a successful cloud solution requires focus on these five pillars of architecture excellence: Cost, DevOps, Resiliency, Scalability, and Security.
AWS – The AWS Well-Architected Framework is based on five pillars — operational excellence, security, reliability, performance efficiency, and cost optimization.
If you compare, you find that both are talking about more or less the same things. If we follow the guidance then the architecture can be effective to realize the expected value out of cloud investments.
Thank you and Happy Learning !