Modul 02Term 1 · Fondasi9 item poster

Cara Internet Sebenarnya Bekerja

Masuk untuk menyimpan progres Anda di semua perangkat. Sampai saat itu, progres disimpan di browser ini.

Mengapa ini penting

Sebagian besar bug produksi yang "misterius" sebenarnya masalah jaringan: perubahan DNS yang belum terpropagasi, sertifikat TLS yang kedaluwarsa, request yang lambat hanya bagi pengguna yang lokasinya jauh. Anda tidak bisa men-debug sesuatu yang tidak bisa Anda bayangkan.

Capaian pembelajaran

  1. Menelusuri satu request dari browser ke database dan kembali lagi, menyebutkan setiap hop.
  2. Menjelaskan resolusi DNS, TTL, dan mengapa perubahan "butuh waktu."
  3. Menjelaskan TCP vs UDP serta apa yang diubah oleh HTTP/2 dan HTTP/3.
  4. Mengonfigurasi TLS dengan benar dan mengenkripsi traffic internal.
  5. Mengukur latensi dengan benar: persentil, bukan rata-rata.

Materi

2.1 Perjalanan sebuah request

Browser → DNS lookup → koneksi TCP (atau QUIC) → TLS handshake → CDN edge → reverse proxy / load balancer → app server → database / cache / API pihak ketiga → kembali. Setiap hop menambah latensi dan merupakan titik kegagalan.

2.2 DNS (97)

  • Record: A/AAAA (alamat), CNAME (alias), MX (email), TXT (verifikasi, SPF, DKIM, DMARC), CAA (CA mana yang boleh menerbitkan sertifikat).
  • TTL mengatur caching. Turunkan TTL sehari sebelum migrasi, bukan saat migrasi berlangsung.
  • Kegagalan umum: domain kedaluwarsa, CNAME salah, record email tidak ada (email masuk spam), DNS provider down.

2.3 TCP vs UDP (98) dan versi HTTP (99)

  • TCP: andal dan berurutan; satu paket yang hilang menahan semua yang ada di belakangnya (head-of-line blocking).
  • UDP: tanpa jaminan, overhead rendah; dipakai untuk video, suara, game, DNS, dan QUIC.
  • HTTP/1.1: satu request dalam satu waktu per koneksi.
  • HTTP/2: banyak stream di-multiplex dalam satu koneksi TCP; masih terkena head-of-line blocking dari TCP.
  • HTTP/3: berjalan di QUIC di atas UDP; stream independen, handshake lebih cepat, tetap bertahan saat jaringan berganti (Wi-Fi ke seluler). Biasanya Anda mendapatkannya gratis dari CDN.

2.4 TLS, encryption in transit (71, 73)

  • Minimal TLS 1.2, utamakan TLS 1.3. Otomatiskan sertifikat (Let's Encrypt, atau dari platform Anda).
  • Header HSTS supaya browser tidak pernah turun ke HTTP.
  • Enkripsi juga traffic internal (app ke DB, service ke service). "Toh ada di dalam VPC kita" bukanlah kontrol keamanan.
  • Koneksi database: wajibkan SSL (sslmode=require atau yang lebih ketat).

2.5 Latensi, throughput, persentil (91 sampai 94)

  • Latensi: waktu untuk satu request. Throughput: jumlah request per detik.
  • Jangan pernah melaporkan rata-rata. Laporkan p50, p95, p99. Satu request lambat dari 100 terdengar jarang, tetapi halaman yang melakukan 20 panggilan backend akan terkena p99 pada sebagian besar page load. Itulah amplifikasi tail latency.
  • Angka kasar yang perlu diketahui setiap engineer: round trip jaringan dalam region yang sama kira-kira 1 ms atau kurang; Singapura ke US West kira-kira 170 ms round trip; satu panggilan LLM butuh beberapa detik. Rancang sistem dengan memperhitungkan hop yang paling lambat.

Lab 2: Telusuri dan ukur

  1. Jalankan dig pada domain Anda; catat setiap record dan TTL-nya. Tambahkan CAA dan cek SPF/DKIM/DMARC untuk domain email Anda.
  2. Jalankan pengukuran waktu curl -w (dns, connect, tls, ttfb, total) ke aplikasi Anda dari dua region.
  3. Cek konfigurasi TLS dengan TLS grader online; perbaiki sampai mendapat nilai A.
  4. Lakukan load test pada satu endpoint dengan k6 pada 10, 50, 100 virtual user; buat grafik p50/p95/p99.

Definition of Done

Paket prompt AI

  • "Tambahkan instrumentasi timing yang mencatat DNS, connect, dan TTFB untuk setiap panggilan HTTP keluar."
  • "Jelaskan jalur request aplikasi ini hop demi hop berdasarkan file konfigurasinya. Tandai setiap hop yang tidak memakai TLS."