🚀 Mini Project: Deploy Aplikasi ke Cloud

Level: Advanced

Pada mini project ini, kita akan mempraktikkan seluruh konsep yang sudah dipelajari: container, orchestration, dan IaC. Tujuannya adalah mendeploy aplikasi web sederhana ke cloud menggunakan Docker + Kubernetes atau Terraform. Bayangkan ini seperti membuka restoran cabang: resep (kode) sudah ada, sekarang kita buka cabang di lokasi baru (cloud) agar bisa diakses semua orang.

📖 Alur Deployment

  1. Siapkan aplikasi (misalnya Node.js API sederhana).
  2. Buat Dockerfile untuk mengemas aplikasi.
  3. Push image ke Docker Hub/registry.
  4. Deploy ke cloud:
    • Opsi 1: Gunakan Kubernetes (minikube/EKS/GKE/AKS).
    • Opsi 2: Gunakan Terraform untuk provisioning VM + deploy container.
  5. Expose service agar aplikasi bisa diakses publik.

🔹 Contoh Dockerfile

# Dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

🔹 Contoh Deployment Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: notes-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: notes
  template:
    metadata:
      labels:
        app: notes
    spec:
      containers:
      - name: notes
        image: your-dockerhub-username/notes-app:latest
        ports:
        - containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: notes-service
spec:
  selector:
    app: notes
  ports:
    - port: 80
      targetPort: 3000
  type: LoadBalancer

🛠️ Praktik Kecil

Coba deploy aplikasi sederhana ke cloud provider pilihanmu:

🎮 Mini Challenge

Buat mini project lengkap:

Tugas tambahan: Tambahkan monitoring sederhana (misalnya Prometheus + Grafana) untuk memantau aplikasi di cloud.