carloscastilla - Fotolia
With the popularity of containers in cloud computing, more organizations are choosing to not think outside the box.
Containers have been around for a while, but Docker recently helped bring them into the spotlight for enterprise use. As the cloud evolves, more enterprises see the benefits of adopting hybrid and multicloud models, but it's a challenge to ensure software runs reliably when moved from one environment to another. Containers have come to the rescue by wrapping an application and all its components into a single, more portable package.
And, with the growing popularity of containers in cloud computing, major providers, including Amazon Web Services (AWS), Azure and Google, offer container services and orchestration tools to manage container creation and deployment.
But before you start to box up your processes, get familiar with these key terms for containers:
Application containerization: Containerization -- also known as container-based virtualization -- is a distributed application deployment model that offers an alternative to launching a VM for each application. Isolated environments, called containers, instead run on a single control host and share the same OS kernel. Compared to traditional virtualization, containerization allows for greater efficiency for memory, CPU and storage.
Because organizations can create containers more quickly than they could hypervisor-based instances, containers also encourage a more agile environment, promoting continuous delivery methods as well as the use of microservices.
Containers as a service (CaaS): Cloud providers, such as AWS, Azure and Google, offer container-based virtualization as a service, providing orchestration, management and compute resources for containerized applications. This model, known as CaaS, typically consists of a Linux-based OS, a container runtime, a container orchestration tool and a container registry.
Docker: Docker is an open source platform that enables the deployment of Linux applications as containers. Docker containers can run in multiple locations including VMs, bare-metal servers, and public cloud instances. Major cloud providers, including AWS, Azure and Google, support Docker containers.
Google Kubernetes: Kubernetes is Google's container management system for public, private and hybrid clouds. The open source system manages deployment and scaling for Docker and Rocket containers, and also has tools for orchestration and load balancing tools. Like they support Docker, AWS, Google and Azure support the Kubernetes system. Developers can move Kubernetes container workloads across cloud platforms without having to alter the code.
Google Container Engine (GKE): GKE is an orchestration and cluster management system for Docker containers in cloud computing. The clusters consist of a group of Google Compute Engine instances that run Kubernetes. GKE provides access to the Google Container Registry to store and access private Docker images. Stackdriver Logging and Stackdriver Monitoring are also available to monitor the health of the applications.
Microsoft Windows Containers: Microsoft Windows Containers are isolated container environments in Windows Server 2016. Two types of containers are supported: Windows Server Containers and Hyper-V Containers. Organizations can manage these containers with Docker, PowerShell or Azure, and integrate them with existing Windows technologies.
Azure Container Service (ACS): ACS is an open source orchestration system based on Apache Mesos that can manage fleets of containers in cloud computing. The service supports DC/OS, Docker Swarm and Kubernetes to scale and orchestrate. Because of open source components in the orchestration layers, applications are fully portable.
Amazon EC2 Container Service (ECS): Amazon ECS is a container management service that supports Docker containers and runs applications on a managed cluster of Amazon EC2 instances. Users create and manage Docker containers through a set of APIs. The service evaluates and monitors CPU usage and supports its own open source scheduler, AWS Blox, as well as third-party schedulers. Users also have access to other Amazon EC2 features through API calls, such as Elastic Load Balancing, security groups and identity and access management roles. Amazon EC2 Container Registry is integrated with Amazon ECS to manage, store and deploy Docker container images.
Open Container Initiative (OCI): OCI is a collaborative project to establish common standards for containers. The project is hosted under the Linux Foundation, and is independent from commercial organizations. Currently, OCI has two specifications: the Runtime Specification and the Image Specification. Members of the OCI include vendors such as AWS, Google, Microsoft and IBM.
Five drawbacks of using container technology
Explore the relationship between containers and cloud
Discover the benefits and challenges of CaaS