All notes

04 # BUILDING

Docker · Kubernetes · CI/CD · Jenkins · Nginx

TECHNICAL NOTE

Infrastructure should make delivery safer, not more complicated.

Start with the smallest platform that gives the team repeatable builds, observable deployments, and a reliable rollback. Containers are the baseline. Orchestration responds to operational needs, not a badge of maturity.

COMMON USES

Local parity

Docker images and Compose-like workflows to make service dependencies reproducible for every developer.

Production delivery

CI/CD that builds once, promotes immutable artifacts, runs checks, and leaves an auditable deployment trail.

Traffic control

Nginx as a deliberate reverse-proxy boundary for TLS termination, routing, static assets, and rate-limit policy.

QUESTIONS

Choices depend on context

01 # Runtime platform

Docker Compose or Kubernetes?

Docker Compose

A lightweight way to run a small set of services together.

  • Fast to understand and operate.
  • Excellent for local development and simple hosts.
  • Limited scheduling and self-healing across machines.

Kubernetes

A control plane for scheduling, scaling, and reconciling workloads.

  • Strong fit for multi-service, multi-node platforms.
  • Offers rollout and recovery primitives.
  • Operational complexity is significant.

ConclusionStart with Docker and a clear deployment path. Introduce Kubernetes when service count, scaling, or availability needs justify operating a platform.

02 # Delivery automation

Jenkins or repository-native CI?

Jenkins

A flexible, self-hosted automation server.

  • Works well for bespoke networks and integrations.
  • Extensible pipeline model.
  • Plugin maintenance and runner security are owned by the team.

Repository-native CI

Automation that lives close to the code review workflow.

  • Fast feedback tied to pull requests.
  • Less platform setup for common paths.
  • Runner and vendor constraints still need review.

ConclusionRepository-native CI fits the default build, test, and deploy path. Keep Jenkins for cases where self-hosting, network access, or custom orchestration is a real constraint.

TAKEAWAY

Good infrastructure is boring in the best way: builds are repeatable, changes are visible, and recovery is routine.

POINTS TO KEEP IN MIND

  • Build an artifact once, scan it, and promote that exact artifact through environments.
  • Keep deployment credentials scoped, short-lived, and outside pipeline logs.
  • Make rollback and health checks part of every release path.
  • Expose useful metrics and logs before increasing orchestration complexity.