The evolution of Azure Kubernetes Service and benefits for application migration
Matt Leach, one of our expert Azure Consultants, has penned this blog all about the growing IT trend for Azure Kubernetes Service (AKS) and how your cloud environment could benefit from this open-source container-orchestration system.
But before we skip to the good the bit we need to jump back and explain a bit more about where Kubernetes came from and how it works.
First off, what is containerisation?
Containerisation in brief terms is a method of splitting up a machine into multiple layers which are all isolated. Containers allow for a portable approach for application development and offer increased flexibility. Whether it’s important for your business to be able to take your application to any cloud hosting provider, or maybe you would like to use different services such as Kubernetes, Docker, Azure Web App for Containers – containers offer this flexibility and portability. Lastly, containerisation provides a method of moving away from monolithic application architectures and allows you to move to a microservice-based application architecture, which in return, allows you to modernise your web applications.
Why should you use containerisation?
If you imagine your application as it currently stands, it is likely that you are hosting it on virtual machines. If you have 3 applications, you may be running it on 3 virtual machines. The same applies if you have a large application environment that may be running tens if not hundreds of applications. You will need a lot of virtual machines to host these applications. The downfall of hosting all these virtual machines is the fact that someone needs to patch and maintain all of these machines. If you are using Windows virtual machines, you will also need to license all these virtual machines.
This is where containers thrive. Whether you’re running Docker, Kubernetes, AKS as your container orchestration tool, you can run multiple containers on a cluster containing as little as one virtual machine. Of course, we recommend you think about high availability and performance when planning how many virtual machines you need, however, if you’re running hundreds of applications, you will definitely see the benefit of running them (if compatible) on containers as opposed to individual virtual machines.
Where does Kubernetes come into this?
Kubernetes is an open-source system to allow containerised applications to be deployed into a controlled environment – as all of us tech enthusiasts call a cluster. Kubernetes was originally developed and designed by Google, however, in 2015 it was released as an open-source project for the wider community to contribute towards. If you’ve heard of Docker before, it’s a very similar concept to that.
Welcome, Azure Kubernetes Service!
In 2018 Microsoft released AKS as a managed Kubernetes offering. As a Microsoft Gold Partner, Cloud Direct welcomed AKS with open arms. AKS brought more simplicity to the product for customers. Allowing them to spend more time developing their applications – for greater business benefit – instead of having to manage various aspects of Kubernetes that could break at any time. At a high level the following components are required for a Kubernetes cluster:
- Kube-controller manager
- Cloud-controller manager
- Kube API server
- Kubernetes nodes (including kube-proxy and kubelet)
With AKS, Microsoft have assumed the day-to-day responsibilities of Kubernetes, removing a lot of the previous management pain, allowing customers to just look after the most important parts of their business. This leaves customers only needing to managing the following:
Virtual nodes – These are virtual machines that run within your Kubernetes cluster to host the containers/pods.
Containers/Pods – These run on the nodes within your cluster. These are running your applications that are containerised.
Container Images – These are your applications that have been containerised to work within containers.
The burning question – How much does AKS cost?
The good news – AKS service itself is free! You are only required to pay for the virtual machines that your applications run on. With the flexibility AKS provides, you can take advantage of autoscaling. Maybe you only have applications that run for several months out of the year as opposed to all year round. Then you can scale your cluster down to zero virtual machines if required which means you don’t pay a penny. Alternatively, maybe you have an application that runs at high demand towards the end of the month, but then it’s quiet for the first 3 weeks of the month. Autoscaling will scale out your cluster to as many virtual machines as you need it too. You can of course configure this to ensure there is a limit, so you don’t get a nasty surprise when your bill comes through.
Let Microsoft handle demand for your application, so you can concentrate on the business benefits your application offers.
Why choose AKS rather than migrating as virtual machines?
You may be wondering why you would use AKS and containers rather than migrating virtual machines. There are cases where virtual machines would be a better fit, this of course depends on the application you’re looking to migrate or modernise. However, most of the time, web applications are a great start to look at containerising. The following benefits come with using containers as opposed to using virtual machines:
- Cost – Only pay for what you require. Maybe you have certain parts of the month where the demand for your application is higher – let Microsoft autoscaling do the work to ensure you are only using the resources that your application needs.
- Isolation – Applications running containers in AKS can be completely isolated from each other, unless of course you need them to communicate with each other.
- Flexibility – You can run your applications on Linux, Windows, or both!
- Less patching – With less virtual machines, comes less maintenance. Allow your engineers to be creative in other areas that will increase the benefits to your business.
- Zero downtime upgrades – Rolling upgrades to your applications happen seamlessly with no down time. When you upgrade your application image and push to a container registry, AKS will deploy your application next to your current application. When AKS decides your containers are healthy, it will softly shut down your old version of the container and users will use the newly patched application. No more rebooting virtual machines after upgrades!
- Support for Microservices – Microservices are a great candidate for containers and AKS. Run each one of your services in a different pod. This will allow you to patch each service at a time as opposed to taking down the whole application. If you need to connect to a database such as SQL, you can integrate AKS with Azure SQL PaaS services, or choose to run your database in your AKS cluster – the choice is yours.
I hope this article has helped you to understand Kubernetes and containerisation a little more. Kubernetes is gaining traction rapidly and the customers we have helped to move, are already reaping the benefits that AKS offers.
Sign up for a personalised 1:1 Application Modernisation in-a-morning workshop
- How to plan your migration
- Application migration best practices
- How to kickstart your migration