Technology is evolving at an exponential rate. We see that services and technical ecosystems become more complex, and yet deploying new environments for either testing or production has become simpler than it used to be a decade or more ago. One of the reasons for this phenomenon is the use of containers. They help enterprises package their code and their dependencies into uniform environments, reducing the number of times that the operations team has to hear “it works in my environment” when troubleshooting. However, managing containers can be an arduous task. Manually configuring, editing, and rolling back changes in virtual environments can be very tedious and difficult to scale. Furthermore, it is difficult to manually manage all the configurations and scripts that containerized environments need to function properly. This is where container orchestration comes into play for managing these virtual environments. Container orchestration has revolutionized the way enterprises build, deploy and manage their applications through various tools growing in popularity for the next several years to come.
Container orchestration is the process of automating the operational tasks required to run containerized workloads services. They take away the burden of manually managing configurations and changes within container environments by automatically managing those components. This can be done imperatively, through the use of sending commands in the terminal of a server, or declaratively through templates made via YAML or JSON files. Some orchestration tools that currently exist include Kubernetes, OpenShift, and Docker Swarm. (See our Docker vs. Kubernetes comparison). Before we get into more details about these tools, let’s take some time to review the history of containers as well as their growth in popularity.
History of container orchestration
Containers have an intriguing history behind them. The use of these small, isolated computer environments began with the creation of chroot in 1979. Chroot was used to restrict a service’s access to files on a Linux environment which improved system security and protected external systems from potential vulnerabilities. From chroot, newer isolated environments were developed, like Borg and cgroups. Borg was created by Google to help the company improve their container cluster management of enterprise services, while cgroups helped manage the resource usage of different apps and services.
Little did the creators of these two technologies know that their work would continue to evolve well into the future. For instance, according to Redhat, Linux containers, commonly known as LXC, was created by IBM in 2008. This tool improved the user experience of containers as well as made better use of cgroups and namespaces for virtual environments. Consequently, these advancements led to the creation of Docker, which was developed using Go in 2013. According to a Docker adoption article written by Datadog, about two-thirds of companies that try the service end up adopting it into their enterprise workloads. From that same article, the percentage of Datadog customers who use Docker jumped from 1.8% to 8.3% from 2014 to 2015. This is about 5x growth in just one year! With the usage of containers expanding in the tech field, container orchestration tools like Kubernetes came into the scene in 2014 to manage these containerized environments programmatically.
The Value and Popularity of Containers Orchestration
Container orchestration continues to gain popularity. One of the biggest reasons for their popularity is how fast they provision virtual environments to run applications and services. They are faster to provision because, unlike virtual machines, containers virtualize the computer’s operating system instead of virtualizing the underlying hardware. According to an article written by IBM, containers only contain the application, its dependencies, and only leverage the resources given from the host operating system. As an article by Gartner explains, the speed of containers enables them to meet the need for faster delivery, agility, portability, modernization, and life cycle management of modern applications while being flexible enough to be provisioned in on-premise or cloud environments.
Furthermore, the considerable number of open source vendors providing container orchestration tools and services have only made containers a popular choice in creating platforms for applications to run on. Another reason containers and container orchestration grew in popularity were the global pandemic. Due to the pandemic, enterprises increased their usage of orchestration tools like Kubernetes to deploy their apps faster in remote environments to meet the needs of the new remote workforce and end-users respectively.
Containers as a Service
According to a container orchestration report from Market Watch, one of the reasons for its popularity is the growing adoption of Containers as a Service platform. This allows engineers and developers to utilize managed services that control the underlying infrastructure for their containers to prioritize building and deploying services more efficiently.
Potential Revenue Growth/Predictions
The growth of containers and container orchestration was also greatly influenced by the adoption of the cloud. The increase in demand for virtual environments that allow the same code to run on different infrastructures undoubtedly opened up a market for this modern technology. In fact, the container orchestration market size is expected to grow from $326.1 million in 2018 to $743.3 million by 2023, at a Compound Annual Growth Rate (CAGR) of 17.9% during the forecast period of 2018 to 2023. In addition, Gartner predicts that over three quarters of global organizations will be running containerized applications in production by 2022. With potential growth predictions theorizing this level of revenue growth, it is certain that container orchestration will be the new normal governing workloads.
Top Container Orchestration Tools
Here are some popular orchestration tools that will continue to grow in 2022 and beyond thanks to the various features that it provides:
Kubernetes is normally what comes to mind when the subject of discussion turns to container orchestration. It is the most popular tool used for container orchestration. Currently, Kubernetes is the main tool provided by major cloud providers like AWS, Azure and Google Cloud. According to the Kubernetes Adoption Report by Container Journal, it is also one of the most loved DevOps tools in 2021. Armed with the ability to run in both on-premise or cloud environments and declaratively provision resources, Kubernetes has definitely earned its spot as the most popular orchestration tool across the industry.
The orchestration tool that comes second to Kubernetes is RedHat’s own distribution of Kubernetes known as OpenShift. It comes with an open-source version and a paid enterprise version, with the latter housing more managed features that engineers can benefit from. From this Simplilearn article, some additional differences between OpenShift and Kubernetes are that the former comes with a networking solution known as Open vSwitch but can only run in RedHat Enterprise Linux Atomic Host, CentOS, or Fedora Linux distributions. Although not as popular as Kubernetes, OpenShift is slowly making its way into major cloud providers like AWS and Azure. In fact, AWS is currently offering OpenShift as a service similar to Kubernetes. It is only a matter of time before OpenShift makes its way to Azure and Google Cloud respectively. However, that time could be soon. According to another container report trend from Datadog, they stated that its adoption has grown over 28% in the year 2021 alone. Undoubtedly, OpenShift is to Kubernetes like Microsoft Azure is to AWS in the scope of popular cloud-native technologies used across enterprises.
Hashicorp created a container orchestration tool known as Nomad. It is used to manage both container and non-container workloads. This is perfect for enterprises that have not yet containerized their services but are making gradual progress to adopting containers in their infrastructure. Despite not being as popular as Kubernetes or OpenShift, it’s lightweight and flexible features allow users to deploy applications and services to on-premise or cloud environments. In addition, Nomad integrates well with Terraform as they both declaratively provision infrastructure as code. According to Hashicorp, Terraform implements the provisioning of infrastructure while Nomad deploys, schedules, and monitors the applications that will be running on the infrastructure built from Terraform. The development potential of this service is growing and has hopes of being a more popular orchestration tool soon.
Docker possesses an orchestration tool known as Docker Swarm, which is used to manage clusters of containers. Docker Swarm runs on the Docker engine, possesses its own API, and has an internal load balancer to make it easier to start provisioning containerized workloads. Given that it is well-integrated to Docker, Swarm has a smaller learning curve. However, it is not as widely used as the other orchestration tools. It is not as powerful, customizable, or flexible as a tool like Kubernetes, which can support other container runtimes like containers. In addition to its limited customizability, Swarm makes it harder to separate Dev, Test, and Prod environments within a DevOps pipeline. This can make it more challenging to catch issues in Dev or Test environments that could potentially damage the application in production. Although it is not as popular as Kubernetes or OpenShift, Swarm helps enterprises get a feel for adopting and managing containerized workloads before committing to a more cloud-native orchestration tool for more advanced processes and workflows.
Rancher has also been growing in popularity, especially since it is built on top of Kubernetes. According to this TechRepublic article, Rancher helps engineers manage multiple Kubernetes clusters across multiple on-premise and cloud platforms. It has recently been acquired by SUSE, so it is guaranteed that it will be here to stay from now and beyond.
Future Trends to Watch in 2022
With 2021 coming to an end, here are some future trends to look out for in 2022:
In a recent study done by Forrester Consulting on behalf of Capital One, 86% of the 263 senior IT leaders across the U.S. who participated have stated that they are using containers for their applications. It is clear that containers and orchestration have been receiving a lot of positive feedback lately. In a statistics article made by the Enterprisers Project, they noted that in the 2019 Container Adoption Survey, sponsored by Portworx and Aqua Security, a whopping 87% of respondents said they are now running container technologies.
Undoubtedly, containers have brought more opportunities to create new applications or refactor existing ones into microservices, as mentioned in this article. Breaking up single monolithic apps into smaller inter-connected components makes it easier to manage and monitor the collective services. In regards to monitoring, microservices help IT teams shift their focus onto monitoring service-level performance. It is now becoming a best practice for managing container environments because it helps build infrastructure that is easy to replicate and scale.
Running services within the cloud or hybrid cloud environments is another trend to look out for in 2022. According to an October 2021 report published from Datadog, over 90% of Kubernetes users leverage cloud-managed services. This is greatly influenced by the high availability, managed services, and scalability options that various cloud providers offer.
In addition, major cloud providers like AWS and Azure provide solutions that allow IT teams to operate within multiple cloud environments. For example, the 2021 Kubernetes Adoption Survey noted that Microsoft’s Azure Arc allows users to deploy applications from Azure to Kubernetes distributions located either inside or outside Azure’s cloud environment. Although this is specific to Kubernetes, it opens the window for enterprises to integrate resources from different cloud providers to continue increasing the availability and scalability of their services.
Another technology that is gaining traction is Micro VMs. Micro VMs assist in detecting and studying malware in small, isolated virtual environments. This allows security teams to learn how to mitigate new cyber threats that can harm their workloads. This Kubernetes article discusses its contribution to analyzing malicious software leading to its adoption into tools like AWS Firecracker and Ignite for running untrusted services.
GitOps tools will make a stronger presence in 2022 due to its ability to declaratively manage infrastructure similar to Kubernetes. One well-known tool called ArgoCD is starting to change the way IT teams manage Kubernetes clusters. They will not have to worry too much about making manual changes to resources running on their clusters and resources as Argo automatically changes them within the same Git repository as the modified Helm chart or YAML manifests. With the ability to version control infrastructure and resources, GitOps has secured its spot in the future as it will help thousands of IT teams to update and rollback changes to enterprise services.
Serverless technologies have a bright future alongside container orchestration. They allow teams to push their code into production faster without having to worry too much about the internal infrastructure. Serverless functions have been highly adopted in the cloud. With cloud providers offering services like Amazon Lambda, Azure Serverless Functions, and Google Cloud Functions, serverless is growing in popularity. According to Datadog, Amazon Lambda functions have been invoked 3.5 times more in 2021 than they did in 2019. Everyday enterprises are looking to spend less time on infrastructure and more on the applications themselves, so serverless technologies will be more widely accepted in 2022 and beyond.
Technology continues to grow and evolve, so staying on top of the latest trends is crucial. Enterprises and engineers continue to look for ways to make the most out of containers and orchestration; it will be no surprise if most companies have fully containerized their apps and services in a few years. Furthermore, orchestrating these environments for rolling out updates, rollbacks, scalability, and security helps operations teams control their infrastructure easier than ever before. Rest assured, these new tools and practices will not be leaving the scene anytime soon. With a bright future ahead of container orchestration, the way apps and services are deployed or managed will continue to improve. New features, covering new areas and allowing to manage systems that grow bigger and become more complex over the years, would solve old challenges while new challenges would most probably arise.