News

Containerization & Microservices: Wasn't Everything Simpler Before?

Containerization & Microservices: Wasn't Everything Simpler Before?

Let us be honest: twenty years ago, deploying a web application had a direct, almost artisanal charm. You rented a shared host or dedicated machine, configured Apache and MySQL by hand, opened an FTP client (FileZilla leading the pack) to upload PHP scripts, tweaked a couple of permissions via SSH, and called it a day before happy hour.

Today, pushing even a modest web application can quickly induce vertigo:

  • Infrastructure Complexity: Navigating sprawling consoles across AWS, Azure, or GCP with dozens of IAM roles, VPCs, subnets, and routing tables.
  • The Microservices Mandate: Artificially splitting a simple business workflow across six independent services, complete with message brokers, API gateways, and siloed databases.
  • Cognitive Tooling Overhead: Multi-stage CI/CD pipelines, container builds, Kubernetes manifests, and distributed observability tools (traces, logs, metrics).
  • Architectural Constraints: Writing stateless, 12-factor-ready, network-resilient code engineered for theoretical infinite scale that may never materialize.

Did We Really Win in the Trade-Off?

For Le Sylvanien Studio, the answer is a resounding yes, regardless of initial project scale: nostalgic memories often overlook the heavy, hidden organizational and human friction of bare-metal deployments.

Dimension Before (Bare-Metal Servers / Dedicated VMs) After (Containers & Automated CI/CD)
Dev vs. Sysadmin Friction "It works on my machine!" vs. "The server runs a different version of glibc/libssl". Days lost to cross-team debugging. Sealed, identical environments from local workstation to production. The container validated in staging is identical in production.
Delays & Bottlenecks Port opening tickets, manual package updates, dependency on system admin schedules. Infrastructure as Code (IaC): Developers specify runtime and infrastructure requirements in code, validated automatically.
Rollback Procedures Tedious manual rollbacks: restoring slow disk backups, reapplying database patches, unpredictable uninstall scripts. Immutability: Instant traffic redirection to previous image or container version (Blue/Green or Rolling Update).
Failed Releases Thursday evening release failure = total cancellation, emergency rollback, and postponing delivery to next month. Frequent, atomic, automated deployments. Incidents are resolved via quick hotfixes deployed in minutes.
User Downtime Mandatory maintenance windows during off-peak hours (nights, weekends) with heavy on-call shifts and overrun risks. Zero-Downtime Deployments: Traffic seamlessly shifts to healthy new instances without service interruption.
Regressions & Conflicts Shared host OS dependencies modified live, breaking existing apps. Endless debates on bug criticality to gate releases. Strict process and dependency isolation. Automated test gates integrated into container images before release.

The list goes on; moving past manual server tinkering was an essential step forward.

Democratization through Docker and Open Source Standards

In 2013, Docker transformed this landscape through three fundamental innovations:

  • Declarative Packaging Standard (Dockerfile): A reproducible, version-controlled recipe describing the exact application runtime.
  • UnionFS Layer Model: Shared base image layers, differential transfers, and near-instantaneous container spin-up.
  • Centralized Registry (Docker Hub): Standardized sharing and distribution of container images.

Today, the ecosystem thrives on open standards governed by the CNCF (Cloud Native Computing Foundation) and the OCI (Open Container Initiative):

  • Engines & Runtimes: Docker Engine, containerd, Podman (daemonless and rootless), CRI-O.
  • Orchestrators: Docker Compose for local multi-container workflows, Kubernetes (K8s) and lightweight variants (k3s, MicroK8s) or managed offerings (EKS, GKE, AKS) for enterprise scale.

The Developer Becomes Fullstack and Project Manager

Modern developers may know fewer hyper-specialized internals than in the early 2000s (when mastery spanned HTML, CSS, jQuery, PHP/MySQL, Apache, and FTP scripts), but they understand the full software delivery lifecycle: reactive frontends (TypeScript, React/Vue), REST/GraphQL APIs, SQL/NoSQL data modeling, security fundamentals (OAuth/JWT), containerization (Docker), and CI/CD pipelines.

With the rise of AI assistants, this role will evolve further toward orchestrating project workflows alongside specialized autonomous agents!