Kursus gratis, dibangun dari setup produksi nyata
Kursus gratis dengan diagram animasi, dibangun dari setup produksi nyata: DevOps dari nol, system design langkah demi langkah, dan tips Claude Code.
Oleh Matthews WongDitinjau pada
Poin utama
Pelajaran singkat, masing-masing dibangun di sekitar satu diagram animasi yang bisa Anda ikuti sesuai kecepatan sendiri. Setiap pelajaran mengutip konfigurasi nyata yang menjalankan situs ini, menjelaskan apa yang sering rusak, dan ditutup dengan latihan yang bisa dijalankan di komputer sendiri. Gratis, dalam bahasa Inggris dan Indonesia.
Gratis, tanpa daftar, tanpa sertifikat. Dibangun dari setup yang menjalankan situs ini.
Pilih jalur belajar
- 8 pelajaranDevOps dari nolKursus DevOps gratis untuk pemula, dibangun dari pipeline nyata situs ini: Docker, GitHub Actions, VPS, nginx, Cloudflare, sampai monitoring server.Mulai kursus
- 7 pelajaranSystem design langkah demi langkahBelajar system design gratis dalam tujuh modul: scaling, caching, database, konsistensi, reliability, dan studi kasus, dengan diagram animasi interaktif.Mulai kursus
- 6 pelajaranTips Claude CodeEnam pelajaran singkat Claude Code dari repositori nyata: CLAUDE.md, izin, skills, hooks, subagent, dan cara hemat token, dicek dengan dokumentasi resmi.Mulai kursus
Telusuri diagramnya sendiri
Setiap pelajaran dibangun di sekitar satu diagram seperti ini, diambil dari pelajaran DevOps pertama. Tidak ada yang bergerak sampai Anda menekan Putar atau maju satu langkah, dan setiap langkah juga ditulis di bawahnya.
Dari git push sampai halaman di browser
Push menjalankan verify, lalu build-and-push yang menyimpan image di registry, lalu deploy yang membuat VPS menarik dan menjalankannya; pengunjung sampai ke aplikasi lewat Cloudflare dan nginx.
Tombol: ← → langkah · Home / End · K putar atau jeda
Satu push, dua bagian. GitHub Actions mengubah commit menjadi image Docker; VPS menjalankannya, dan pengunjung sampai ke sana lewat Cloudflare dan nginx.
Push ke branch main adalah event yang memicu workflow. Di runner yang baru, job verify meng-install dependensi, menjalankan typecheck, lalu lint.
on: push: branches: [main]build-and-push menunggu verify lewat needs, jadi hanya jalan kalau pemeriksaan lolos. Job ini mem-build image lalu mem-push-nya ke GHCR dengan tag latest dan SHA commit.
needs: verifyTebak langkah berikutnya Di mana secret aplikasi masuk dalam perjalanan ke production? (Ditanam ke image saat build · Ditulis ke .env di server)deploy menunggu build-and-push. Job ini masuk ke VPS lewat SSH dan menulis pengaturan runtime ke .env dari GitHub secrets; tidak ada secret yang tertanam di image.
chmod 600 .envServer menarik image baru, lalu docker compose up -d mengganti container yang sedang berjalan dengan container dari image itu. Pergantian itulah deploy-nya.
docker compose pull docker compose up -d --remove-orphansRequest pengunjung sampai di Cloudflare lebih dulu, lalu ke nginx di VPS, yang menangani TLS dan meneruskannya ke container yang hanya mendengarkan di localhost.
# Bind to loopback only — nginx terminates TLS and proxies to this port.Tebak langkah berikutnya Berikutnya, file JavaScript ber-hash diminta. Siapa yang menjawabnya? (Cloudflare, dari cache-nya · nginx di VPS · Container Next.js)File statis ber-hash, seperti chunk JavaScript, langsung dilayani dari cache Cloudflare. HTML selalu diteruskan ke server, dan itu disengaja: URL yang sama juga bisa menjawab dalam Markdown.
cache-control: public, max-age=31536000, immutable cf-cache-status: HIT