Skip to content

Containerization

Is a technology that enables the packaging of applications and their dependencies into isolated containers, facilitating consistent deployment across different environments.

Container Engines

Name Description Link
Docker Is a software platform that allows you to build, test, and deploy applications quickly using containers. Docker
Podman A daemonless container engine for managing OCI containers, providing a Docker-compatible CLI. Podman
containerd An industry-standard core container runtime used by Docker, Kubernetes, and other systems to manage container lifecycle. containerd
Kata Containers An open-source OpenInfra project combining lightweight virtual machines with container speed, offering stronger isolation than standard containers. Kata Containers
Firecracker A lightweight microVM-based virtualization technology developed by AWS for running containers and serverless workloads securely and efficiently. Firecracker

Container Orchestration

Name Description Link
Kubernetes Is an open source system for automating deployment, scaling, and management of containerized applications. Kubernetes
OpenShift A Kubernetes-based platform offering enterprise-grade security, monitoring, and tools. OpenShift
Nomad A simple, flexible workload orchestrator that supports containers and non-containerized applications. Nomad
Docker Swarm Is an advanced feature for managing a cluster of Docker daemons. Docker Swarm
AWS Fargate A serverless compute engine for containers that works with Amazon ECS and EKS, eliminating the need to manage servers. AWS Fargate
AWS EKS A managed Kubernetes service that simplifies running Kubernetes on AWS without the need to install or operate your own control plane. AWS EKS
K3s A lightweight, certified Kubernetes distribution designed for resource-constrained environments such as IoT, edge, and development clusters. It is fully compliant with upstream Kubernetes. K3s
MicroK8s A lightweight, zero-ops Kubernetes distribution developed by Canonical (the company behind Ubuntu). Ideal for developers, edge, and CI/CD environments. MicroK8s

Management Tools

Name Description Link
Docker Compose A tool for defining and running multi-container Docker applications. Docker Compose
Helm A package manager for Kubernetes to deploy pre-configured applications as charts. Helm
Portainer A container management software. Portainer
Rancher A complete software stack for teams deploying containers, particularly Kubernetes clusters. Rancher

Container Benefits

Development

  • Consistency - Same environment from dev to production
  • Isolation - Applications don't interfere with each other
  • Portability - Run anywhere containers are supported
  • Efficiency - Lightweight compared to virtual machines

Operations

  • Scalability - Easy horizontal scaling
  • Resource Utilization - Better hardware utilization
  • Deployment Speed - Fast startup and deployment
  • Rollback Capability - Easy rollback to previous versions

Have any suggestions, additions, best-practices or references? Please contribute to help others learn!