Kembali ke Blog

Filosofi Unix dalam Pengembangan Modern

DEDavid Evans
28 September 2023
Filosofi Unix dalam Pengembangan Modern

Sistem operasi Unix, yang lahir pada tahun 1970-an, memperkenalkan serangkaian prinsip desain yang terbukti sangat tak lekang oleh waktu. Intinya adalah filosofi yang sederhana namun kuat: "Tulis program yang melakukan satu hal dan melakukannya dengan baik. Tulis program untuk bekerja bersama." Di era aplikasi monolitik yang kompleks, pendekatan elegan ini lebih relevan dari sebelumnya.

Layanan Mikro: Inkarnasi Modern

Munculnya arsitektur layanan mikro adalah turunan langsung dari filosofi Unix. Alih-alih membangun satu aplikasi besar yang terikat erat, kami membangun serangkaian layanan kecil yang independen. Setiap layanan bertanggung jawab atas satu kemampuan bisnis. Misalnya, dalam aplikasi e-commerce, Anda mungkin memiliki layanan terpisah untuk otentikasi pengguna, katalog produk, keranjang belanja, dan pembayaran.

Pendekatan ini memiliki beberapa keuntungan:

  • Penyebaran Independen: Tim dapat memperbarui dan menyebarkan layanan mereka tanpa berkoordinasi dengan orang lain, yang mengarah ke siklus pengembangan yang lebih cepat.
  • Keanekaragaman Teknologi: Setiap layanan dapat dibangun dengan teknologi yang paling sesuai untuk tugas spesifiknya. Anda bisa memiliki layanan yang ditulis dalam Go untuk tugas-tugas yang kritis terhadap kinerja dan layanan lain dalam Python untuk pembelajaran mesin.
  • Ketahanan: Jika satu layanan gagal, itu tidak akan meruntuhkan seluruh aplikasi.
"Inilah filosofi Unix: Tulis program yang melakukan satu hal dan melakukannya dengan baik. Tulis program untuk bekerja bersama. Tulis program untuk menangani aliran teks, karena itu adalah antarmuka universal." - Doug McIlroy

Baris Perintah dan DevOps

Filosofi Unix juga bersinar di dunia DevOps. Baris perintah, dengan kemampuannya untuk menyalurkan output dari satu program ke input program lain, adalah contoh utama dari program-program kecil yang bekerja bersama. Alat-alat seperti `grep`, `awk`, dan `sed` dapat digabungkan dengan cara yang sangat kuat untuk memanipulasi teks dan mengotomatiskan tugas.

Prinsip yang sama ini mendasari pipeline CI/CD modern. Sebuah pipeline adalah serangkaian langkah otomatis: bangun kode, jalankan tes, kemas aplikasi, dan sebarkan ke server. Setiap langkah adalah alat khusus yang melakukan satu hal dengan baik, dan pipeline mengatur kolaborasi mereka.

Dengan menganut prinsip "lakukan satu hal dengan baik", kami membangun sistem yang lebih sederhana untuk dipahami, lebih mudah dirawat, dan lebih tahan terhadap perubahan. Ini adalah filosofi yang telah teruji oleh waktu, dan yang kami tanamkan dalam setiap solusi yang kami bangun di Serunix.