We see Kubernetes in headlines, hear about it on Twitter, and at user groups and conferences. So, what’s behind the Kubernetes buzz? Why is Kubernetes taking off the way it is—and what is this new offering of managed Kubernetes in the cloud? These are the questions we’ll be exploring in this blog, with a view to shedding light on what’s driving the popularity of containers, the cloud, and Kubernetes.
The rise of containers
A container is a standalone package of software comprising everything you need to run an application. This includes the application code, runtime, system libraries, and settings.
Containers have been around for some time. In fact, they’ve been part of the Linux world since the 1980s. After Docker entered the market in 2013 with its own format and tools for containers, the trend towards containerisation has grown tremendously. Today, many enterprises either run containers or have plans to use them in the near future. IDC’s 2018 Container Infrastructure Market Assessment found that 76 percent of enterprises are running mission-critical applications as containers in production. The RightScale 2019 State of the Cloud Report found that container adoption has increased to 57 percent from 49 percent in 2018. In addition to this, many cloud providers—including the top three—have launched container offerings that have seen enormous growth.
What is Kubernetes?
With the rise of containers comes the challenge of having to manage hundreds or even thousands of containers running complex enterprise applications. This is a significant task that requires an orchestration platform. Kubernetes has become the go-to orchestration platform since it was launched in 2014. Originated by Google and now maintained by the Cloud Native Computing Foundation (CNCF), Kubernetes was created to work in any environment, including on-premises or in the public cloud.
According to the RightScale 2019 report, Kubernetes adoption in enterprises has increased from 27 percent in 2018 to 48 percent in 2019. Another familiar theme is that all of the top-three cloud providers have managed Kubernetes offerings for their cloud customers and have seen wide take-up.
Enter Azure Kubernetes Service
Released in 2018, Azure Kubernetes Service (AKS) is a managed Kubernetes service on the Microsoft Azure cloud platform and the fastest-growing service in Azure. AKS streamlines deployment of Kubernetes clusters. It uses Azure infrastructure-as-a-service virtual servers for the nodes: Microsoft handles management of the master nodes, while the customer manages the agent nodes.
A major difference between running your own Kubernetes instance versus AKS is that Microsoft has integrated AKS with many Azure-native services for further enhancement, including:
- Azure Active Directory for role-based access control (RBAC)
- Azure Monitor for Kubernetes and container monitoring
- Azure networking to simplify orchestration and container networking
- Azure Policy for governance of AKS clusters, pods, namespaces, and ingress
- Azure Storage for storage needs within AKS clusters and containers
Launching AKS on the Azure platform makes it easier to get started with containerisation and has helped drive the adoption of containers in the cloud.
Why containers over PaaS? Or, does Kubernetes in the cloud make sense?
If your organisation or team has decided to use containers and Azure, you may be wondering if it is best to use platform as a service (PaaS), container technology such as AKS, or even run containers on PaaS. This is a common debate. The answer is, it depends.
There is no right or wrong answer to selecting to run your application on PaaS, AKS, or containers running on PaaS. The important thing is that you assess the needs of your business and your applications. Compare those needs with the available services on Azure and the features of those services.
Here are some guidelines to help you assess which path to take regarding using AKS or PaaS.
Choose AKS if you:
- Need more control
- Want to avoid vendor lock-in
- Need features of a full orchestration system and flexibility of auto scale configurations
- Need deeper monitoring
- Want flexibility with networking, public IPs, DNS, and SSL
- Need a rich ecosystem of add-ons
- Will have many multi-container deployments
- Plan to run a large number of containers
Choose a PaaS such as Azure App Service Environment if you:
- Don’t need as much control
- Want a dedicated service-level agreement
- Don’t require deep monitoring or control of the underlying server infrastructure
- Want to leverage features such as deployment slots and blue-green deployments
- Will have simple multi-container deployments via Docker Compose
- Plan to run a smaller number of containers
Above guidelines from a previous blog post “Where to host docker containers on Azure (AKS, ASE, or ASF)?” by Microsoft Azure MVP Steve Buchanan.
Where does AKS and the cloud go from here?
Industry surveys, reports, and experts agree on the continued growth of containers, Kubernetes, and the cloud. These three technologies are set to power the future and carry on levelling the playing field for organisations of all sizes. This means now is the best time to explore all three, ensuring your company can transform, innovate, and compete with the most forward-looking businesses around the globe. You can get started with containers and Kubernetes on Azure by visiting the links below.