Dasar Nomed untuk Orkestrasi Aplikasi

Aug 12, 2024

Catatan Kuliah: Nomed Dasar

Perkenalan

  • Pembicara: Rian
  • Pekerjaan: Cloud dan DevOps Engineer
  • Kontak: Telegram

Persiapan Sebelum Memulai Materi

  1. Pemahaman Dasar Linux
    • Harus paham perintah Linux dasar.
  2. AWS (Opsional)
    • Pemahaman dasar tentang AWS.
  3. Kontainer (Opsional)
    • Familiar dengan Docker, Podman, Kubernetes.
  4. VM Linux
    • Siapkan minimal 2 VM Linux (disarankan Ubuntu).
  5. Clone Git Repository
    • Akses repository yang disediakan.
  6. Extension HCL di VS Code
    • Instal extension HCL jika menggunakan VS Code.

Apa Itu Nomed?

  • Definisi: Nomed adalah alat untuk mengorkestrasi aplikasi yang terkontainerisasi (Docker, Podman, dll) dan aplikasi non-kontainer.
  • Kegunaan: Mengelola aplikasi di banyak server dengan lebih mudah dan efisien.

Kenapa Membutuhkan Orkestrator?

  • Mengelola aplikasi di banyak server dapat menjadi rumit.
  • Contoh: Restart aplikasi ketika tidak sehat, menjalankan aplikasi di server tertentu (misalnya dengan GPU), dan scaling otomatis berdasarkan traffic.

Contoh Kasus Nomed

  1. Roblox: Menggunakan Hybrid Cloud untuk lebih dari 15.000 server.
    • Dapat scaling otomatis ke AWS.
  2. Cloudfare: Mengelola banyak server di lebih dari 200 kota.
  3. Eicier: Mengelola banyak perangkat IoT di desa-desa dengan koneksi internet yang tidak selalu stabil.

Arsitektur Nomed

  • Mode Cluster: Nomed beroperasi dalam cluster dengan server dan klien.
    • Server: Mengelola dan menjadwalkan tugas.
    • Klien: Menjalankan aplikasi.
  • Leader dan Follower: Hanya ada satu leader dalam satu cluster.
  • Quorum: Untuk memastikan kestabilan, jumlah server disarankan ganjil (minimal 3).
  • Not Pools: Kumpulan klien dengan karakteristik yang sama.
  • Multi-region: Menghubungkan beberapa cluster menjadi satu cluster global.

Topologi Praktik

  • Dua VM: Satu sebagai server dan klien, satu sebagai klien.
  • Instalasi Nomed: Mudah, hanya perlu mengunduh binary file sesuai sistem operasi.

Konfigurasi Nomed

  • Agen Nomed: Dijalankan sebagai server atau klien tergantung konfigurasi.
  • File Konfigurasi: Dapat disimpan dalam bentuk HCL.
  • Pastikan untuk menyimpan dan mengedit file konfigurasi yang sesuai.

Penjadwalan di Nomed

  • Terdapat empat istilah utama: Jobs, Notes, Allocation, dan Evaluation.
  • Jobs: Tugas yang dijalankan, seperti menjalankan web server.
  • Notes: Tempat di mana aplikasi dijalankan.
  • Allocation: Proses pemetaan jobs ke notes.
  • Evaluation: Proses menentukan alokasi dan penjadwalan.

Menghitung Sumber Daya CPU

  • Memperhitungkan CPU dengan mengacu pada performance core dan efficiency core.
  • Dapat melakukan request dalam bentuk MHz.

Job Specification (Job SP)

  • Ditulis dalam format HCL.
  • Mempunyai tugas dan grup.
  • Tugas dapat menggunakan berbagai macam driver (Docker, Exec, dll).

Penerapan File System Nomed

  • Folder dan struktur folder allocation digunakan untuk berbagi data antar tugas.
  • Setiap tugas tidak dapat mengakses working directory tugas lain.

Nomed Variable Interpolation

  • Mendukung dua kelas variabel: Node attributes dan Runtime environment variables.
  • Memungkinkan konfigurasi job yang lebih dinamis.

Job Placement

  • Menentukan di mana job harus berjalan di klien tertentu dengan menggunakan parameter tertentu (region, Data Center, not pool, affinity, dan constraint).

Scheduler di Nomed

  1. Service: Job yang berjalan terus-menerus.
  2. Batch: Job yang hanya berjalan sekali dan berhenti.
  3. System: Satu allocation per task group di semua klien.
  4. System Batch: Gabungan antara System dan Batch, berjalan hanya beberapa saat.

Namespace di Nomed

  • Mengelompokkan objek, seperti jobs.
  • Namespace default jika tidak didefinisikan.

Jaringan Nomed

  • Nomed tidak fokus pada networking; dapat menggunakan tools lain seperti Consul dan Kuma untuk mengatur layer networking.
  • Allocation networking dan bridge networking: untuk menangani port dan komunikasi antar tugas.

Service Discovery di Nomed

  • Mempermudah akses ke aplikasi dengan memetakan IP dan port.
  • Memudahkan komunikasi antar jobs atau grup.

Penutup

  • Komprehensif mengenai penggunaan Nomed.
  • Materi lebih lanjut akan dibahas di sesi mendatang.