Fifty-eight (58%) of technical executives surveyed in the RightScale 2019 State of the Cloud Report are engaging in hybrid cloud implementations within their enterprise. Hybrid cloud implementations contain a combination of both public (AWS, Azure, Google Cloud Platform) and private cloud services to deliver specific business functionality.
A hybrid cloud enterprise gives you the ability to choose where your applications will reside to deliver the highest value to the business. Take for example the impact to businesses around the globe due to the COVID-19 pandemic. Public cloud platforms can scale amazingly fast for increased traffic demand. If your on-prem retail applications need to extend into the public cloud to meet the needs of a dramatic shift in the market are you prepared to do that in hours, days, weeks, or years? Maybe a retail bank which maintains sensitive customer data on-prem and deploys a mobile banking app in a public cloud platform expands their business to new geographies. Can the mobile application quickly scale across a nation very quickly and reliably to create the right first impression to new customers? An application which isn’t prepared to adapt to the needs at hand in a timely fashion doesn’t benefit the business.
So how can you be prepared to deliver applications that can go where your organization needs them?
Modern architectures provide the foundation of mobility with the added benefits of resiliency and flexibility. Four key strategies of modern architectures can help you deliver value in a hybrid cloud world:
- Containerize your applications – Containers are the building blocks that encapsulate your applications providing a consistent runtime no matter where it’s hosted. The concept of containerized applications isn’t new, the first implementation of process isolation was actually in the late ‘70s. Docker has accelerated the adoption of containerized applications by providing a full ecosystem of container management. Containers allow you to package applications so that they are portable to any system running a Windows or Linux operating system, irrespective of where those systems reside. Docker is just one option for app containers (although it has the market share today). Some others for consideration are CoreOS rkt, Mesos, and Ixc. Select the option that works best for your needs.
You can first containerize an on-prem application in preparation for an eventual move to a hyperscale cloud platform in the future when ready. Next you will need to decide where your container images are going to be stored and run. Each of the major public cloud providers (as well as some of the private cloud solutions) offer a number of different PaaS solution to run containers at scale.
- Run on Kubernetes – Once you have standardized on a container strategy you’ll next need to establish a container orchestration engine. Your containers should be scalable, fault-tolerant, self-healing, and reliable during continuous integration / deployment (CI/CD) activities so that your business critical applications operate as expected wherever they may reside. Kubernetes (K8s) is a market leader for container orchestration. Many flavors of K8s can be adopted for your organization, including bringing your own K8s licenses to on-premises datacenter, or using cloud native Kubernetes managed services. There are a wide range of managed K8s services including GKE (Google Kubernetes Engine), EKS (Amazon Elastic Kubernetes Service), AKS (Azure Kubernetes Service, PKS (Pivotal Container Service), and OpenShift (RedHat Kubernetes on IBM Cloud).
Using a cloud native managed K8s service may reduce your operational costs and helps simplify your operational efforts. K8s will manage the operations of scaling, load-balancing, and repairing applications wherever they reside, on whatever K8s engine in use. Much like containers made your application portable, K8s makes your container ecosystem portable no matter where you are running K8s. Your configurations may require small updates moving from cloud to cloud to account for provider-specific implementations, such as, identity and authentication management, or networking, but a well-coded application can account for these adjustments ahead of time.
- Run your own ancillary dependencies – Modern applications developed through microservices have functional services loosely coupled to allow for service abstraction. If you want your applications to be mobile then you should avoid being locked into supporting services embedded within cloud native products. That means that things like Logging (Splunk, Datadog, …), API Gateways (Apigee, Mulesoft, …), and Message Brokers (Kafka, RabbitMQ, …), can be embedded within your K8s instances as a shared service supporting all your containerized applications across your hybrid environment. Those dependencies can then be self-managed and self-healing just like the core applications.
- Manage your infrastructure as code – Making your applications portable means you need to create an abstraction layer between your containers and the underlying infrastructure which delivers it. In the past, provisioning of networking, security, servers, firewalls, etc. was done manually which required significant time and effort and opened Pandora’s Box of fat-fingers and human errors. How often has one of your application deployments come to a halt due to the staging environment not being configured the same as the testing environment? Treating your infrastructure as code (IaC) through a third party solution such as Terraform, Ansible, Chef, and Puppet to perform both provisioning and configuration updates in response to your application needs, allows your organization to provision services through a singular process across all your private and public cloud platforms. IaC provides easy automation, speed to market, traceability for risk and compliance, and accuracy.
Operating a hybrid environment has the key benefit of placing your applications where they will deliver the highest value to your business. Your applications need to be architected so that you CAN place them where the value is realized. The four modern architecture approaches discussed here will position you for success in your hybrid world. The process to modern architectures may take time but is well worth it in the long run and you can learn more about Cloud strategy and transformation.
Disclaimer – some or all of the services described herein may not be permissible for KPMG audit clients and their affiliates or related entities.
KPMG copyright: The information contained herein is of a general nature and is not intended to address the circumstances of any particular individual or entity. Although we endeavor to provide accurate and timely information, there can be no guarantee that such information is accurate as of the date it is received or that it will continue to be accurate in the future. No one should act upon such information without appropriate professional advice after a thorough examination of the particular situation.