Minimum Viable Cloud – Minimum Cloud for Maximum Benefit
What are the Drivers?
Evolution of Cloud Platform
The public cloud platforms themselves are undergoing a fundamental shift – from providing unmanaged computing resources to providing managed services that can be used to build complex solutions. Cloud has evolved from a hardware platform to a services oriented model. KPMG forecasts that PaaS will be the fastest growing segment, growing from 32% in 2017 to 56% adoption in 2020. Some of the core tools and technologies of this model such as Docker and Kubernetes are growing rapidly - Docker - 40% YoY and Kubernetes – 100% YoY.
This is a huge concerns for organizations to maintain the architecture governance, compliance and maintenance.
Multi-Cloud is the Choice of Enterprise
Bigger Organization’s Multi-Cloud strategy is driven largely by broader business & technical goals. Those goals could include achieving higher reliability of the applications hosted on cloud, to take advantage of price-competitive cloud services or to avoid vendor lock-in of sticking to one cloud service provider. RightScale survey on cloud adoption reveals 81% of the enterprises employ a multi-cloud strategy. (Ref: https://www.rightscale.com/learn/cloud-strategy/cloud-computing-trends)
Complexity and Variety of Cloud Application Workloads
Cloud is now the de facto platform for diverse and complex workloads such as Big Data, Modern Analytics, AI and IOT. Each workload has its unique set of requirements, process flows, tools and technologies. Cloud providers are making resources and services available at an ever-increasing pace to help build complex systems in a quick and cost-effective manner.
Figure 1: Drivers of cloud adoption for enterprise
What are the Challenges?
This ongoing transformation of the cloud platform, the variety of application types that are being on-boarded, creation of new computing models combined with the pace at which organizations are adopting cloud is presenting a new set of challenges for enterprise in cloud adoption.
- Bigger organizations are concerned about cloud governance, while they want to give innovation independence, they want to have central office which govern the services being used & follow the best practices
- Building custom solutions from ground up is not a feasible option anymore – the turnaround times for hand-crafted solutions is not aligned to the “speed of business” and customers are looking for quick go to cloud strategies and approaches.
- Cloud engineers are challenged by the need to constantly learn and keep pace with all the developments in the cloud ecosystem. Building expertise in all the services and all the platforms is very difficult and this is leading to niche specialization and fragmentation in skill sets. This affects the service provider’s ability to deliver at scale.
- The complexity and the variety of application architectures have made application management and monitoring, complex and difficult to handle. Developers don’t want to configure & implement cross-cutting concerns such as logging, monitoring, security policies etc. and would rather have these taken care of for them.
What are they looking for?
"Provide a scalable, compose-able, cost-effective, repeatable and rapid environment provisioning platform for cloud adoption. Platform that can centrally govern and enforce policies seamlessly on cloud workloads."
Solution - Minimum Viable Cloud
A Platform that can provide -
- Integrated solution for infrastructure process automation
- Central governing method to have architectural governance & security compliance
- Manage the scale and complexity required by today’s cloud build and cloud migration projects
- Help customers realize their cloud transformation in a speedy and cost-effective manner
- Enable cloud engineers and developers in delivering reliable and resilient implementations
- A policy engine that enable CloudOps to enforce policy across all the cloud services
The above requirements can be translated into the following design principles
- Use Infrastructure as Code concept – define configurable blueprints and re-usable templates that can be used to rapidly build the foundation layers of the cloud platform.
- Provide a way for organization to govern the architecture adoptions, cloud services being used, standard templates and faster development cycles.
- Leverage the organization accepted operations tools to build the workflows for infrastructure provisioning and chargeback.
- Document and prescribe best practices that will help our cloud engineers deliver well architected solutions
Figure 2: MVC Logical architecture
MVC framework consists of three components:
- Foundation - This is the layer where the base services and resources needed for every application deployment is defined. This layer will help in building cloud foundation services for the enterprise, like
- Cloud account setup for different Bus
- Connectivity between on premise data center to cloud
- Designing network architecture for environment isolation
- Establishing identity and access management
- Cloud Services – These are the building blocks for your application workload. Platform encompasses all the cloud services (from multiple cloud service providers like AWS, Azure & GCP) that an enterprise’s security team has approved for adoption. These services templates are enriched with cross cutting concerns like monitoring, security and parametrized configuration elements.
- Application Stacks – These are the set of reference architecture application stacks that an enterprise consists of. These are application stacks built by composing the cloud service templates as ‘ready-to-provision’ templates for cloud build.
The fourth wing of the platform is seamless integration with supporting ecosystem.
- Cloud Ops – Cloud native monitoring elements are weaved in to MVC templates so that workload monitoring is seamless.
- DevOps – API interface of MVC can be integrated with DevOps pipeline for immutable environment provisioning and versioning.
- Infrastructure as Code – MVC templates are built using Terraform and any enhancement to cloud services can be easily applied across all the resources.
Figure 3: Technical Architecture of MVC
- REST API integration with any ITSM tools and DevOps platforms
- Terraform templates for cloud native services across the cloud platforms like AWS, Azure & GCP
- Quick cloud environment set up using pre-built foundation services
- Pre-built application stacks composed out of cloud native service templates
- Hardened Docker containers for cloud native application adoption
A Typical Workflow of Application Build using MVC Platform
Figure 4: MVC Adoption workload
Platform Team support the solution. This will therefore require three separate responsibilities:
- The core platform team to setup CloudOps and DevSecOps infrastructure which includes environment automation, standards and DevSecOps pipelines
- Platform maintenance to maintain fixes to the actual platform
- Application onboarding team which on boards the customer applications onto the platform, i.e., making sure that the DevSecOps pipelines and automated environment templates are made available.
Typical Application on-boarding timeline for an Enterprise
Figure 5: Timeline view of MVC adoption
Above diagram depicts the timeline view of adopting MVC in an organization.
- During the first quarter of the MVC on-boarding, platform on-boarding team need to work with different groups of the organization to conceptualize the platform for the organization needs
- Security team – Identify the set of approved cloud services that can be adopted by application teams
- Cloud Ops team – Integrate with the ITSM tool, monitoring tool and cloud management platform with the MVC platform
- Architecture team – Analyze the application architecture and come up with set of reference architectures that can be adopted by application teams
- On-board at least 6 application on to platform every quarter from there on
Enterprise will be benefited by the platform as follows:
- Minimum viable cloud for the enterprise to adopt & govern and meet the needs of application development.
- Integrated with enterprise Cloud Ops and Infrastructure process automation
- Repeatable industry best practices incorporated across all the cloud services adopted by the application team.
Integrated platform on cloud operations for MVC implementation
To know more, Read our technical blog on Deployment in AWS Cloud Serverless or Docker Containers?