Starting Down The Container Orchestration Path
Bringing Containers into The Enterprise
Docker is a well-known Platform as a Service (PaaS) product, which has infiltrated its way into the enterprise-level data centers in various technology sectors. Docker has been around for some time (2013) and has standardized how containers are built, maintained, and utilized throughout the Software Development Life Cycle (SDLC). As container utilization has matured, the need for an orchestration platform has also flooded the market. Orchestration can perform many different functions, including the provisioning and deployment of containers, performing scaling activities or spreading the application load across infrastructure, health monitoring, and performing HA activities if there are underlying host issues are to name a few.
The Benefits of Containers
Containers offer a "logical" bundling mechanism in which applications can be abstracted from the environment and utilized across multiple platforms to provide a highly compatible micro-service. Containers have a much smaller footprint than a typical application, where the various components of the operating system are shared (Kernel, Memory, Misc Libraries).
Sample Orchestration Products
With container orchestration on the rise, and the total market to be worth $1.3 Billion in the next five years, the rapid adoption and surge to dominate the market is nothing less than extraordinary. While there are plenty of orchestration products available in the market today, there are a few headliners that always appear to be at the leading edge for adoption. Some of the key players are well-known names such as Cisco Systems, Google, Amazon Web Services, Microsoft, RedHat, Docker, and Oracle. Of these providers, docker has attempted to provide the orchestration needed to utilize containers at scale; however, the most well-known product comes from the hands of Google. Kubernetes is an open-source orchestration platform maintained by the Cloud Native Computing Foundation (CNCF), and according to the Kubernetes website, "Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications."
RedHat also joined the the container orchestration market and has seen exponential growth in its flagship product OpenShift. According to Redhat, OpenShift is a Kubernetes distribution focused on developer experience and application security that's platform agnostic. OpenShift helps you develop and deploy applications to one or more hosts. These can be public-facing web applications, or backend applications, including microservices or databases.
Orchestration Platforms
For those that would like a more turn-key solution, all of the major cloud vendors support a managed solution that provides Kubernetes as a Service (KaaS). Amazon has Elastic Container Service for Kubernetes (EKS), Google has Cloud Kubernetes Engine, and Microsoft has the Azure Kubernetes Service (AKS). These platforms offer a vast amount of functionality with little to no effort, making it an excellent solution for those that have deployments solely in the commercial cloud arena. Of course, these come at a price depending on which provider and scale you chose to deploy.
Various Use Cases
Enable Developers
Allowing the application developers access to all of the external dependencies and resources without delay enables the developer to focus on the task at hand, create fantastic software. By having these dependencies containerized, they can be self-sufficient versus spending time adding all of the external components into the development platform.
Enable DevOps Support
The software must be promoted through several different environments to make it into production, with each having its configurations, hardware, operating systems, and other variables. Containers provide a consistent package, allowing the code to be deployed throughout the CI/CD pipeline swiftly and without delay.
Hybrid Cloud Architecture
The benefit of being able to host workloads on-premise, in public clouds, or other managed infrastructure (such as isolated enclaves) opens up the possibility to deploy the application within the hosting platform that makes the most business sense. Whether its cost, performance, or scalability, having the option to deploy across multiple architectures can be a tremendous benefit to the organization as a whole.
References and Additional Reading
https://cloud.google.com/kubernetes-engine
https://developers.redhat.com/products/openshift/
https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes
https://docs.docker.com/engine/swarm/
https://technology.informa.com/617145/red-hats-container-software-strategy-paying-off-for-now
Technical Manager at Octo
4 年Great article, thanks for sharing!