Container
Definition
A package that contains an application and everything it needs to run, making it easy to move between different computers.
Use Cases
- Netflix: Running microservices that can be deployed frequently and scaled independently — Netflix packages many services into container images and deploys them on AWS using container orchestration (including Kubernetes in parts of its platform) to handle scheduling, scaling, and rolling updates. (Faster and safer deployments, improved service isolation, and the ability to scale individual services based on demand.)
- Spotify: Operating a large microservices platform with consistent deployments across teams — Spotify uses containers with Kubernetes to standardize how services are built and deployed, relying on container images for repeatable releases and Kubernetes for orchestration and service discovery. (More consistent environments across development and production, improved developer productivity, and easier scaling of services.)
- The New York Times: Modernizing application delivery for digital products and internal tooling — The New York Times has used containers and Kubernetes on Google Cloud to run services with automated deployments and scaling, using container images to ensure consistent runtime behavior. (More reliable deployments, better operational consistency, and improved ability to scale services during traffic spikes.)
Provider Equivalents
- AWS: Amazon Elastic Container Service (ECS)
- Azure: Azure Container Instances (ACI)
- GCP: Google Kubernetes Engine (GKE)
- OCI: Oracle Container Engine for Kubernetes (OKE)
Frequently Asked Questions
- What's the difference between a container and a virtual machine (VM)?
- A VM includes a full guest operating system on top of a hypervisor, which makes it heavier but strongly isolated. A container packages the app and its dependencies but shares the host OS kernel, so it starts faster and uses fewer resources. In practice: use VMs when you need full OS isolation or different OS kernels; use containers for lightweight, portable app deployment.
- When should I use containers?
- Use containers when you want consistent behavior across environments (laptop, test, production), faster deployments, and easy scaling—especially for microservices, APIs, background workers, and CI/CD pipelines. They’re also useful when multiple apps need different library versions on the same host. If you have a single legacy app that tightly depends on a specific OS setup, starting with a VM may be simpler.
- How much do containers cost?
- Containers themselves are a packaging method and don’t have a direct cost. You pay for the compute, storage, and networking used to run them. Costs depend on whether you run containers on VMs (pay for VM instances), on managed/serverless container platforms (pay per vCPU/memory time and requests), and on supporting services like load balancers, container registries, and logging/monitoring.
Category: containers
Difficulty: intermediate
Related Terms
See Also