SelesaiDevOps engineer, tim
ComMX
Aplikasi chat real-time, dibawa dari repo ke cluster yang terkunci rapat dan bisa pulih sendiri.
- Status
- Selesai
- Control plane
- 3
- Worker
- 3
- Lalu lintas
- HTTPS + WSS
Masalah yang harus diselesaikan.
Aplikasi chat milik sebuah tim kecil sudah tidak cukup di satu mesin. Aplikasi ini butuh sesi WebSocket yang persisten, lalu lintas terenkripsi dari ujung ke ujung, dan cluster yang tetap melayani saat salah satu node mati, semuanya berjalan di beberapa PC lab di balik satu router MikroTik.
Cara saya membangunnya.
- 01Router MikroTik dengan NAT, DNS forwarding dan record lokal, pool DHCP, Wi-Fi hotspot, VPN L2TP/IPSec, queue per subnet, dan aturan firewall yang memblokir percobaan login brute-force.
- 02Cluster Proxmox beberapa node dengan backup VM setiap malam dan migrasi HA, sehingga VM pindah ke node tetangga saat sebuah node mati.
- 03Terraform membuat semua VM sekaligus, dan role Ansible yang idempoten menyiapkan sistem, load balancer, cluster, monitoring, dan CI/CD.
- 04Kubernetes dengan tiga control plane dan tiga worker di atas Cilium, HAProxy dan keepalived untuk floating IP, MetalLB dan Gateway API untuk lalu lintas masuk, serta kebijakan Kyverno yang melarang tag latest, namespace default, dan resource tanpa label.
- 05Pipeline Forgejo yang memindai dengan GitLeaks, Semgrep, Trivy, dan Checkov, mendorong image ke registry privat dan memperbarui tag di manifest, lalu ArgoCD menyinkronkannya, dengan alert Prometheus dan Grafana lewat email.
Teknologi
MikroTikProxmoxTerraformAnsibleKubernetesCiliumArgoCDPrometheus