Realizing the benefits of multi-cloud and hybrid-cloud through a better workload deployment strategy
Pradyumna Pendse
Director & Chief Architect at Capgemini Technology Services India Limited
Cloud-Native is the latest norm for agile development. As per CNCF, “Cloud-Native applications enables organizations to build and run scalable applications in dynamic environments of public, private and hybrid cloudsâ€. Leaders are building more than 20% of applications in cloud.
Strategically, Organizations do not want to get locked-in with a single cloud provider. Also, cloud platforms are still maturing and a single cloud provider may not have all the features required to support the application requirements. Subscription and usage price per service are different for each service provider. As per a recent survey of public cloud users, 81% of respondents said they are working with two or more providers. With cloud native being the norm for agile development, CIOs need to evaluate the best of breed Hybrid or Multi cloud strategies for their business.
However, Multi-cloud / Hybrid-cloud strategy adoption has many challenges. These challenges push IT Stakeholders to ponder over the following questions:
- How to manage faster provisioning on Multi-cloud / Hybrid-cloud environments?
- How to manage large volume of workloads related to cloud native components on Multi-cloud / Hybrid-cloud environments?
- What deployment pattern to choose (Container orchestration or serverless)? Is there any cheaper option for apps that don’t require a 24x7 availability?
- What tools to choose for provisioning, development, deployment, monitoring?
- Is it possible to provision, deploy and maintain cloud native applications comprising of microservices deployed on different cloud platforms (application composed of cloud native services deployed on different clouds but logically bundled together as one app) Is it possible to get a unified view of such deployments?
- How easy it would be to apply security policies by application on Multi-cloud / Hybrid-cloud environments?
- Is it required to maintain a large pool of DevOps team members that have Multi-cloud or Hybrid-cloud platform vendor skills?
- How to track the billing of a Multi cloud app for a portfolio?
Essentials for a successful workload deployment:
Cloud native application development, often gets influenced by following factors:
- Infrastructure automation: How easy would it be possible to spin up an environment and manage it (resize, attach, detach, release, harvest, etc.)
- Packaging cloud native services: How would one package microservices and what policies get applied to them
- Deployment Strategy: What deployment patterns should be used (For eg: Choosing between Container Orchestrators or serverless)
- Governance for development and deployment: How would it be possible for different stakeholders to have a single view to track the progress of cloud native application components
- Application & Infra monitoring: What will be the observability parameters and self-healing involved in keep the applications’ uptime to the fullest
How do we get the best out of cloud native workloads deployments on multi-cloud or hybrid-cloud?
Need of the hour is an accelerator that can:
o Provision:
- Manage Cluster: Provision, scale up or down, backup/ restore the clusters across cloud consistently
- Attach Clusters: Attach existing Conformant Kubernetes clusters for centralized operations and management
o Manage security & access control from a single pane:
- Centralize policy management: Apply access, networking, and container registry policy consistently to a fleet of clusters and namespaces at scale across clouds enabling micro segmentation/ zero trust feature (For eg: Service Mesh)
o Enable better governance:
- Facilitate defining quality tollgates in toolchains by Department, Program, Function or POD
- Streamline the cloud native application component deployments as per the multi-cloud or hybrid-cloud cluster provisioning
o Enable cloud native application development:
- Quality: Measure the software quality through tollgates and a birds’ eye view of all the provisioning, development, deployment activities
- Toolchaining: Provide custom toolchain to add application development and review tools. Allow users to define a toolchain by Department, Program, Function or POD
o Enable cloud native application deployment:
- Streamline: The deployment on multi-cloud / hybrid-cloud environments such that different components of the same applications are deployed in a logical sequence
- Bridge the skill gap: Easier for the team members to quickly adapt to tools that can facilitate development, deployment and provisioning
o Enable monitoring:
- Cluster Inspection – Run inspections on clusters to ensure new and upgraded clusters are always configured properly.
- Global Visibility: Gain visibility across clusters, team and clouds
- Usage: Allow capturing the usage of cloud resources as one of them means for chargeback
o Provide better usability:
- User friendly interface: A single interface for different stakeholders to interact to carry out different types of operations on Multi-cloud /Hybrid-cloud platforms
Also, it is necessary to put together a roadmap that includes choosing the right set of cloud providers, choosing the right deployment strategy, enabling Zero-trust security for multi-cloud / hybrid cloud based cloud native applications, re-building / packaging of cloud native applications through robust gated CI / CD pipelines and enabling automated deployments. Last but not the least, having a strong alliance with cloud platform providers like AWS, AZURE, RedHat, IBM and Hyperconvergence Infrastructure providers for improving cloud adaptability.
This can significantly help reducing operational overheads and improve time to market. For more information about how to jumpstart your Multi-cloud or Hybrid-cloud strategy, please reach out to me.