All clouds are the right cloud!
In the last couple of years Australian CIOs have been spoilt for choice when migrating workloads to the cloud. With the arrival of Google Compute Platform, along with Microsoft Azure and Amazon AWS and most recently Alibaba Cloud there are more choices now than ever before. But which cloud provider is the right one for your enterprise applications?
Moving from on-premise deployments to either hosted web services based offerings or even traditional cloud based VM hosting still requires an element of commitment to one technology or another. Whether you choose to embrace the vendor supplied web services or to build your own stack, the decision to move to a new environment has consequences.
Step forward another 24 months and the sage decisions made in the past are now under review, as new platforms emerge, and options once again are available to drive greater efficiency and lower operational costs. The challenge that this brings about is as much FOMO paralysis (Fear Of Missing Out) on the next technology leap as it is the ever growing pressure to do more with less costs. CIOs are increasingly being asked to ensure they make future-proof decisions when it comes to their IT landscapes.
Trying to decide on a platform as a cost reduction exercise is a common scenario and Amazon AWS addressed this early in their existence with region-based pricing which could fluctuate with demand, or spot instances which drive the price lower during quiet hours. This encouraged consumers to plan their processing to take advantage of savings by batch processing activities based around different pricing scenarios. At that time, it was a fine model and one that brought many businesses significant savings, but as we move into a 24/7 digital economy those opportunities diminish and the need for real-time transactions becomes greater. On top of the change in requirements it was also a model that required you to commit to the Amazonian way.
Agility is more important than cheap
Picking the right platform is not just about the cheapest or even the most advanced, having the agility to be able to migrate workloads to the most suitable environment for the task has always been the vision of cloud services.
So the AWS model sounded great, why couldn’t every vendor do that and then if all services were compatible, we could move workloads around the different cloud vendors and scale up and down on demand only paying for what we needed. The savings would be massive, and everyone could live happily ever after.
Unfortunately that fairy tale is not to be, the vendors do have similar services but the ability to migrate between them is far from easy. Each cloud vendor has their own stack, each vendor has their own variety of componentry that will enable you to build your own cloud native applications, but only for their platform. Vendor lock-in has expanded to the cloud.
All is not lost, there is a way
Surely there is a way to wrap up your applications and move them around without having to redesign them for each platform, some sort of agnostic container that could be built once and run anywhere. For those who are familiar with Docker, that is exactly the premise of what it offers, a standardised container that can hold your application and all its dependencies and can be deployed into any compatible environment. Fantastic, problem solved, let’s all use Docker.
Along with the adoption of Microservices strategy (more to come on that in a future article) to breakdown complex applications into smaller more agile functional components, which can be rapidly deployed and updated, the move to containers is fast becoming the next frontier of enterprise applications.
Once again, we find ourselves with another utopian-like solution to all our problems, free from the shackles of vendor lock-in, but now another issue raises its head. Building applications in docker containers is great, being able to move them around is also wonderful, but operationally and logistically that takes a lot of effort to move an application from one cloud provider to another.
What about the downtime and the management of all those environments. What is needed is a manager of managers, a single source of truth to ensure that service levels are maintained and that the platform and applications are meeting our user’s expectations of 24/7 availability and lightening fast responses.
Kubernetes - The Helmsman
“Kubernetes, pronounced "Kū-bər-NəT-ēz" is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.” - Wikipedia
Kubernetes is provided as an open source solution to the task of managing workloads in Docker containers in a cloud infrastructure environment. Designed by Google and released into the wild to be supported by thousands of willing contributors Kubernetes has rapidly become the tool of choice when managing large scale environments.
Enterprise Kubernetes
Running Kubernetes to manage your environment certainly provides operational benefits as well as enabling businesses to focus on developing new solutions rather than maintaining their environments. But Kubernetes is open source and at 3am in the morning when it stops working and you need support, trying to find Steve from Idaho or Kate from Helsinki who wrote the code might prove difficult.
Red Hat, doing what they do best, have built upon the open source Kubernetes and extended the functionality to provide a fully supported integrated enterprise-grade container platform which can be deployed across all of the major cloud vendors as well as on premise or in a datacenter. Backed by Red Hat's support services OpenShift has become the dominant commercial enterprise container platform.
So the choice of cloud provider is no longer something that should hold anyone back, the future-proof strategy for cloud is to take a multi-cloud approach and leverage tools like Red Hat OpenShift to provide the layer that can ensure the delivery of enterprise applications and the service levels by mitigating any single points of failure.
Now for the disclaimers, I am the DevOps Practice Director at ANATAS, the latest company to become a Red Hat Advanced Business Partner and foundation member of the OpenShift Builder Programme in Australia. We provide consultancy services to clients across Australia as we help companies to adopt different ways of working through DevOps adoption and migration to cloud native applications. If you would like to know more, please reach out and contact me. iain.elliott@anatas.com
Iain, thank you for sharing 👍
Great article
Great Read!