Belajar Infrastructure Engineer - Containers & Orchestration
Episode 7 of 28

Belajar Infrastructure Engineer - Containers & Orchestration

Menguasai container dari sisi infrastruktur: cara kerja container runtime dan image, operasi Docker sehari-hari, konsep orkestrasi Kubernetes dasar, serta peran infra engineer dalam ekosistem container

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 6 kita virtualisasi hardware menjadi VM, kini kita naik satu abstraksi: container. Container bukan virtualisasi baru — ia cara isolasi yang lebih ringan, memakai kernel host yang sama. Perannya di infrastruktur 2026 sudah fundamental: container adalah unit standar beban kerja, dan Kubernetes menjadi platform tempat mereka hidup.

Mengapa topik ini penting? Karena di 2026, "infrastructure engineer" hampir selalu berarti juga "container infrastructure engineer". Kalian akan menyediakan runtime, merancang node, memantau registry image, dan menyiapkan platform container untuk tim aplikasi. Episode ini membangun fondasi yang akan kita dalami lebih jauh di episode 14.

Cara Kerja Container

Container mengisolasi proses, bukan hardware. Tiga mekanisme kernel yang menjadi fondasinya:

  • Namespaces: memisahkan pandangan proses (PID, network, mount, user, UTS, IPC) — proses dalam container "tidak melihat" proses di luar.
  • Cgroups: membatasi resource — CPU, memory, I/O — agar satu container tidak memakan jatah yang lain.
  • Layered filesystem: image dibangun dari layer yang bisa dipakai bersama — efisien dalam storage dan transfer.
Perbandingan VM vs container
VM        : kernel sendiri + init + app   → isolasi penuh, overhead besar
Container : app saja di kernel host       → ringan, tetapi isolasi lebih lemah

Inilah alasan VM dan container tidak saling menggantikan: VM mengisolasi mesin (aman, berat), container mengisolasi proses (ringan, cepat).

Container Runtime dan Image

Runtime

Runtime adalah program yang benar-benar menjalankan container. Standar industri adalah OCI (Open Container Initiative). Contoh runtime: containerd (digunakan Docker dan Kubernetes), CRI-O (runtime K8s berbasis Fedora), runc (runtime low-level OCI).

Image

Image adalah template hanya-baca berisi aplikasi + dependensinya. Dari image, container dibuat. Image disimpan di registry — Docker Hub publik, atau registry privat (Harbor, GHCR) untuk produksi.

Contoh Dockerfile sederhana
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80

Dockerfile di atas: mulai dari image nginx ringan (Alpine), salin halaman HTML, dan buka port 80. Bayangkan layer-nya: base layer nginx, lalu layer tambahan berisi index.html. Build hanya mengubah layer terakhir — sisanya di-cache.

Operasi Docker Sehari-hari

Sebagai infra engineer, kalian tidak menulis banyak kode aplikasi — kalian mengoperasikan runtime dan memastikan beban kerja sehat.

Menjalankan container
docker pull nginx:alpine
docker run -d --name web-01 -p 8080:80 nginx:alpine
docker ps
docker logs web-01
docker exec -it web-01 sh

Dua konsep yang wajib dipahami sebelum produksi:

  • Stateless: container bisa dihapus dan dibuat ulang tanpa kehilangan apa pun. Data yang perlu bertahan hidup harus di volume (episode 14).
  • Immutable: image tidak diubah di tengah jalan; perubahan berarti membangun image baru. Men-SSH masuk ke container untuk "memperbaiki cepat" adalah anti-pattern.

Warning

Container berjalan sebagai root secara default — itu berbahaya. Praktik produksi mewajibkan menjalankan container dengan user non-root dan memakai rootless container jika memungkinkan. Di episode 11 kita akan mengeraskan container lebih jauh bersama security infrastructure.

Docker Compose: Orkestrasi Kecil

Untuk lingkungan kecil atau development, Docker Compose mengatur beberapa container dalam satu file:

docker-compose.yml sederhana
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  app:
    image: myapp:latest
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/app
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data
 
volumes:
  pgdata:
Jalankan stack Compose
docker compose up -d
docker compose ps
docker compose logs -f app

Compose adalah titik awal yang baik, tetapi ia tidak bisa menyembuhkan node yang mati, melakukan rolling upgrade, atau menyeimbangkan beban — untuk itu kalian butuh orchestrator.

Kubernetes: Orkestrasi di Level Berikutnya

Kubernetes (K8s) mengelola container di banyak node: scheduling, health check, scaling, service discovery, dan rolling update. Konsep dasar yang wajib kalian pahami dari sisi infra:

KonsepFungsi
NodeMesin (VM/bare metal) tempat pod berjalan
PodUnit paling kecil; 1+ container yang dijadwalkan bersama
DeploymentMengatur replika pod dan rolling update
ServiceAlamat stabil untuk mengakses pod yang bisa datang-pergi
IngressPintu masuk HTTP/HTTPS ke dalam cluster
NamespacePemisahan logis dalam cluster
100%

Ini pola standar: user → Ingress → Service → banyak Pod tersebar di beberapa Node. Pod boleh mati dan lahir baru — Service selalu menunjuk ke yang sehat.

Operasi dasar yang akan kalian pakai setiap hari:

KubernetesOperasi dasar kubectl
kubectl get nodes
kubectl get pods -A
kubectl get deployment web
kubectl scale deployment web --replicas=3
kubectl rollout status deployment/web

Peran Infra Engineer di Ekosistem Container

  • Menyediakan runtime & node: memastikan containerd/CRI-O sehat, node ter-update, kernel stabil.
  • Merancang cluster: berapa node, ukuran node, taint/toleration, dsb. (mendalam di episode 14).
  • Mengelola registry: image scanning, retensi image, sinkronisasi lintas region.
  • Monitoring & logging: metrics, logs, dan tracing dari seluruh pod (episode 9).
  • Menyiapkan platform: bukan menulis containerfile aplikasi, melainkan menyediakan platform yang aman dan siap pakai untuk tim aplikasi.

Common Pitfalls Containers

  • latest di produksi: image berubah diam-diam → produksi tidak reproducible. Selalu pin versi hash digest.
  • Data di dalam container: container dihapus, data hilang. Selalu volume/persistent storage.
  • Mengabaikan image scanning: image publik bisa mengandung CVE — scan sebelum deploy.
  • Menjalankan banyak container per host tanpa limit resource: satu container rakus memakan yang lain.
  • Tanpa logging terpusat: docker logs per container tidak cukup untuk produksi (episode 9).

Penutup

Pada episode 7 ini kalian telah menguasai dasar container & orkestrasi:

  • Container = namespaces + cgroups + layered image di satu kernel — ringan tapi isolasinya lebih lemah dari VM.
  • Runtime OCI (containerd/CRI-O) dan image di registry adalah fondasi ekosistem.
  • Docker Compose untuk lingkup kecil; Kubernetes untuk produksi: Pod, Deployment, Service, Ingress.
  • Infra engineer menyediakan platform container, bukan sekadar menjalankan container.

Di episode 8 selanjutnya kita masuk ke jantung efisiensi profesi ini: IaC & automation — Terraform/OpenTofu untuk provisioning dan Ansible untuk configuration management. Sampai jumpa di episode 8!