Coming from data center-focused IT systems, multicloud is a powerful idea. The ability to run applications and services across a mix of multiple public clouds, private clouds, and data centers sounds too good to be true. Yet, multicloud has become a reality for organizations large and small. However, despite the potential, multicloud operations are complex in many ways. In this post we look at both the opportunities and challenges of multicloud, and consider solutions to the most pressing issues related to multicloud.
Organizations want the ability to move between clouds or to use multiple public cloud platforms to meet different needs. They want to avoid vendor lock-in, give teams the autonomy and control over the tech stack they operate, have the best of breed solutions at their disposal whenever it is needed, reduce and optimize IT expenses, and drive innovation by better software delivery methods. This is a tall order.
The challenges arise due to cloud platforms being so different from one another. Applications cannot be lifted and shifted between platforms, and data transfer is expensive. To make multicloud a reality organizations need to bring uniformity across all cloud platforms, and simplify operations. There is a need for consistency and predictability as organizations navigate different cloud platforms.
Government agencies take the lead
Phil Fuster of Rackspace talks about how Federal agencies have adopted multicloud in recent times. He comments that the pandemic has accelerated things like shadow IT to become the modus operandi for Federal agencies. Agencies have started to rely more on 'as-a-service' strategies, including multicloud as a service.
The platform approach to delivering software is instrumental to this 'as-a-service' experience. This is when a dedicated Platform team builds and maintains a platform that Developers across teams use. It gives developers a self-service experience when requesting resources. Once code changes are committed, the platform team can put in place automated solutions like GitOps to notice these changes and automatically deploy them in production. All with the power of automation, not requiring human approval at every step. [Read more about the platform model.]
Collaborating across various development teams
We recently interviewed Nicolas Chaillan, Chief Software Officer of the U.S. Air Force, who shed light on how this massive organization manages software delivery by coordinating between almost 200,000 developers. This is collaboration at incredible scale, and at this scale, multicloud is indispensable. Each team has its own unique needs like their preferred public or private cloud service, or data center. At this scale, a platform approach is necessary to coordinate operations seamlessly. It gives teams the agility to deploy code to locations they prefer and not have to configure deployments every step of the way.
Along with the platform approach, Chaillan credits GitOps as the key enabler of multicloud operations at the DoD. GitOps declares the entire system in Git repositories from where they can be easily managed, changed, and observed. For example, in the GitOps model, it would take changing a few lines of a Git repository to change the target location for a deployment. This ease of use is what makes GitOps ideally suited for multicloud operations.
Security becomes a prime concern with multicloud. Chaillan talked about the advantages of using a service mesh like Envoy, and its approach with using sidecars to separate network traffic from containers. This is more secure by design as bad actors are unable to hide their actions from a sidecar. The separation from the container makes network traffic more visible and secure by design.
Apart from this, GitOps secures systems by automatically recording every change to a repository in version control. This facilitates rolling back to a previous version. Also, since every part of the system is declared in Git, there is little chance of drift occurring. When drift is noticed, GitOps tooling like Flux help to bring the production state to the declared state with ease.
Finally, GitOps makes it easy to update applications. This way security fixes can be easily applied across the entire system, or only part of it. GitOps practices enable security by design when it comes to multicloud.
Enabling a seamless development experience
A recent Google Cloud blog post says that when managing multicloud development teams should not have to worry about the details of how their code is deployed to any cloud provider. The organization, or development team should be able to simply choose the cloud vendor of their choice and have code to be easily deployed on that specific cloud platform. They suggest using Anthos to implement this. However, GitOps is a more versatile approach to achieve this.
GitOps works the same across all cloud platforms, and is a more comprehensive solution. GitOps declares configuration for every cloud provider in repositories so that all the configuration can be abstracted away from developers and yet the Platform team has full control. Development teams can simply commit code and choose their target deployment location. The GitOps-enabled platform takes care of the deployment. For the Ops team or the Platform team, GitOps delivers a single pane of glass to view application performance and health across all clouds.
Advancing to progressive delivery
GitOps gives organizations the ability to update multiple applications and services from a single Git repository and a single command. Teams can perform complex deployments such as canary and blue-green deployments. The goal is to reduce downtime during updates, and to test new features before releasing them to all users. All it takes is to change a few repositories that indicate all the locations where code should be deployed, in what percentage, and at what pace.
As organizations move to a multicloud world there is bound to be more complexity. However, by leveraging modern practices like GitOps any organization can enjoy the benefits of multicloud and avoid its perils. The Federal agencies are leading the way in this transition. Cloud vendors like Google Cloud see multicloud as a reality today. GitOps is the way to connect all the dots and make multicloud operations highly scalable, automated, precise, and secure.
If you want to hear more, sign up for our on demand webinar on "Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps".