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
Roblox: Menggunakan Hybrid Cloud untuk lebih dari 15.000 server.
Dapat scaling otomatis ke AWS.
Cloudfare: Mengelola banyak server di lebih dari 200 kota.
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
Service: Job yang berjalan terus-menerus.
Batch: Job yang hanya berjalan sekali dan berhenti.
System: Satu allocation per task group di semua klien.
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.