It is imperative to learn how to achieve the kind of scalability and resiliency that zoom and netflix are able to achieve. In recent months, given the pandemic, most of us are figuring out that the internet, and services that are running in the cloud (like zoom, netflix, hulu) are working really well. These services are also scaling really well and you don’t hear a lot of complaints, other than maybe for some security issues, but from a scalability standpoint, they have been doing really, really, really well. So how can a smaller or mid-market enterprise — or actually, even most large enterprises — achieve the kind of scalability that these companies are able to achieve? Here are some thoughts:
So, when it comes to cloud deployments, there are tons of resources out there that you will be able to leverage; one of the key aspects of leveraging the right technology would be to use templates. There are proven templates out there, and there are companies that provide proven templates, and you want to utilize them as much as possible. And when I say templates, this could be templates to deploy a website, an application, database or configure other databases and make them resilient. Basically, think of any task that you would do in your enterprises today from an IT perspective, you will find templates that do that. Again, the goal is to achieve resiliency by migrating into the cloud right. So – use templates; find the right templates; and yes, there are tons of them out there so you should be able to find the template that best matches your needs.
Next, one of the new-comers to the cloud world is Kubernetes. Kubernetes was invented by Google, and they used it for several years before they open-sourced it, and now Microsoft, Amazon — all the cloud providers are contributing to it, and I believe that is the second largest open-source project out there, right after Linux, so there is a large community backing it.
So what is the primary benefit of using Kubernetes? Kubernetes gives you a multi-cloud deployment platform. For all your applications that are currently using an intel processor. Now, the way you achieve this, again, is using a template or declarative model, so definitely look into that. It’s a model that enables you to go Multi-Cloud — so even if you’re working with a traditional IT operational model, you can go to a multi-cloud model. This means you have advantages like having the ability to run the workloads across multiple cloud providers so that you don’t get hooked by one over the other, thus avoiding vendor lock-in. Kubernetes provides that flexibility and levels the playing field across multiple cloud providers and gives you more leverage in terms of resiliency and scalability, as well as in terms of price and cost. Definitely look into Kubernetes, it is a proven technology, and while it certainly does require training your team to use Kubernetes, there are tons of readily available resources out there for that.
Now, the next step is automation. Make sure that when you go from the traditional operation model you are following today to the cloud, you are getting a chance to kind of change the way things work. Today, everything is software defined – which means you could actually automate them, because it’s all software: it is run by software, managed by software, created and terminated by software. So, that means you will be able to automate your business; I know that might take some more time and patience to do that, but you can automate everything that you do in the cloud, which gives you scalability and makes it a repeatable process. So even if something were to fail, you can simply execute the same automation scripts and it magically comes back up.
Now, when we talk about automation, I’m not sure how closely you have been following the CICD process, but when you have applications or workloads that you want to deploy into the target environment, you want to be able to source control since everything is software defined in the cloud. Which means, you can take your current processes, define them in a declarative way, put it in a source-control system like git, and use the CICD (continuous integration and continuous delivery) process to deploy that to the cloud. When you do that, it helps you achieve full automation, but at the same time, it helps you establish some control. For example, with most of the CICD tools, there is an integration available to integrate with an approval system. For example, you can integrate with your IT approval, your risk approval, your business approval. So that approval gives you more control over change management, which you need when an auditor looks at your processes or if you find yourself troubleshooting something, or doing some forensic analysis on an incident. This will help you. So, do create a one-click CICD process, and if required use reviews and approvals as part of the process.
When you look at the traditional IT process, there is a fear of roll-back. So, very rarely do companies roll-back to a previous version of something. If you’re doing it, well that’s awesome – it means you really do have a relatively good process, but it’s still manual. So when it comes to cloud if you automate it, that fear kind of goes away because first of all, if it is a repeatable process, because if you can deploy any enhancements or a bug or a new feature through an automated process, you should be able to revert it back also. So, let’s say you accidentally released a bug (or released a fix and then introduced another bug), and so you want to revert back. The process is the same as the way you deployed it – you can just deploy another version (which just happens to be the previous version) and that results in a roll-back. That is very important when you put together a process: the same speed at which you can go forward to a new version, you can revert back to an older version. That gives your team more confidence, your workloads more resiliency and scalability.
Now I know there is a pretty steep learning curve involved for your current team to achieve the things that I’ve mentioned above, but one of the ways you can do that is by finding the right partner. There are partners out there: if you go to Kubernetes.io, or to CNCF (which owns Kubernetes), there is a partner page where they’ve listed all sorts of partners. So reach out to them, research the different partners: there are different types of partners, there are tools out there and professional service companies out there, and they can all help you with it. There are even tons of videos you can watch on Youtube and Udemy, so if you do the research and find the right partner, that will help you with this process.