Containerized Applications
Containerized Applications
Our deployment pipeline is working perfectly. Every code change is automatically built, tested and deployed. But another problem keeps appearing. The application works on the developer's laptop... ... but fails on the production server. A library is missing. A different operating system version is installed. A dependency behaves differently. Engineers had a familiar excuse. "It works on my machine. " The engineering problem became clear. How do we package an application so it runs exactly the same everywhere? The engineering concept that solved this problem is Containers. A container packages the application together with its runtime, libraries and dependencies into a single portable unit. Whether it runs on a laptop, a test server or the cloud, the environment remains identical. Applications become portable, lightweight and predictable. Amazon Web Services provides Elastic Container Registry (ECR) to store container images and Elastic Container Service (ECS) to run them. Microsoft Azure provides Azure Container Registry (ACR) and Azure Container Apps or Azure Container Instances (ACI). Google Cloud provides Artifact Registry and Cloud Run or Google Kubernetes Engine (GKE) for running containers. Different names. One engineering concept. Applications could finally move between environments without unexpected surprises. But another challenge soon appeared. Running one container is easy. How do we manage thousands of containers across hundreds of servers?
