3 poin oleh GN⁺ 2026-02-24 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini menelusuri sejarah deployment server dan masalah isolasi proses, serta menyoroti bahwa FreeBSD jails telah mewujudkan konsep kontainer modern 10 tahun lebih awal dari industri
  • Diperkenalkan pada FreeBSD 4.0 pada tahun 2000, jails memperluas chroot untuk menyediakan isolasi penuh filesystem, jaringan, dan proses sebagai fitur native kernel
  • Linux mencapai kontainer melalui LXC pada 2008 dan Docker pada 2013, tetapi dalam prosesnya menumpuk lapisan abstraksi kompleks seperti namespace, cgroups, dan OCI
  • Yang berhasil diselesaikan Docker dengan baik adalah masalah packaging dan deployment (shipping) aplikasi, sedangkan jails unggul dalam isolasi tetapi lemah karena tidak memiliki standar deployment native
  • Bagian lanjutan akan membahas cara operasional nyata seperti membangun infrastruktur berbasis jails, snapshot ZFS, dan provisioning dengan Ansible

Masalah deployment server pada masa awal

  • Beberapa dekade lalu, cara standar untuk mendeploy sesuatu ke server adalah menyalin file secara manual melalui FTP menggunakan Total Commander, FileZilla, FAR Manager, dan sejenisnya; pengguna tingkat lanjut memakai scp atau rsync, tetapi esensinya sama
  • Dalam proyek yang dikerjakan sendirian, kesalahan bukan masalah besar, tetapi saat mengelola puluhan proyek klien, ini menjadi fatal
  • Dalam konfigurasi backend yang umum, banyak situs web berbagi instance Apache web server yang sama dan memiliki siklus hidup yang sama; jika Apache mati, semuanya ikut mati
  • Saat trafik melonjak, satu situs dapat menghabiskan semua resource sehingga situs lain di server yang sama mati pelan-pelan tanpa terlihat jelas
  • Administrator sistem mencoba otomatisasi dengan shell script, tetapi tidak ada metode standar untuk versioning atau rollback, sehingga lazim memberi nomor increment atau timestamp pada nama folder proyek

Dua masalah inti yang harus diselesaikan

  • Deployment: diperlukan solusi umum yang mampu menjamin pengiriman yang andal, mencegah human error, menerapkan versioning dan rollback, serta mencakup semua business case
  • Isolasi proses (Process Isolation): diperlukan perlindungan timbal balik antara aplikasi dan sistem, pencegahan agar kebutuhan satu aplikasi tidak diam-diam merusak aplikasi lain, serta penyelesaian konflik dependensi
  • Upaya menyelesaikan masalah deployment berkembang menjadi pipeline CI/CD modern, standar packaging, dan sistem version control, tetapi sejarah masalah isolasi relatif kurang dikenal

Dari chroot ke mesin virtual

  • chroot, yang diperkenalkan Bell UNIX pada 1979, memberi proses sebuah pandangan filesystem yang terisolasi, sehingga proses tidak bisa mengakses di luar subtree; ini ide yang primitif tetapi berguna
    • Keterbatasan: hanya mengisolasi filesystem; proses masih bisa berinterferensi dengan jaringan, proses lain, dan resource sistem, serta masih mungkin keluar dari batasannya
  • Jawaban enterprise serius pertama adalah mesin virtual (VM), yang dipopulerkan VMware pada akhir 1990-an
    • VM menyediakan lingkungan OS yang sepenuhnya terisolasi untuk setiap aplikasi, tetapi karena setiap VM membawa OS lengkap, ada biaya berupa overhead yang signifikan dan waktu startup dalam hitungan menit

Lahirnya FreeBSD Jails

  • Pada tahun 2000, sebuah revolusi senyap terjadi bukan di Windows Server atau Linux, melainkan di FreeBSD
  • FreeBSD berbeda secara mendasar dari Linux: Linux hanya menyediakan kernel, lalu userland GNU, ekosistem paket, dan pilihan tiap distribusi digabungkan; sementara FreeBSD mengembangkan, memberi versi, dan menguji kernel, userland, tool dasar, dan library sebagai satu OS yang utuh
  • Solusi yang dibangun di atas fondasi konsisten ini adalah jails, diumumkan oleh Poul-Henning Kamp dan Robert Watson, lalu dimasukkan sebagai fitur kernel native di FreeBSD 4.0 (Maret 2000)
  • Setiap jail memiliki pandangan filesystem, stack jaringan, dan ruang proses sendiri, sehingga sistem host tidak terlihat
  • Karena berbagi kernel host, jails mencapai overhead yang nyaris nol dan waktu startup yang hampir seketika
  • FreeBSD telah mencapai implementasi praktis dari apa yang sekarang kita sebut kontainer 10 tahun lebih awal dari industri, dan melakukannya di production

Timeline teknologi isolasi

  • Jalur evolusi nyata untuk masalah isolasi adalah: server bersama tanpa isolasi → mesin virtual yang berat tetapi terisolasi → kontainer yang ringan namun terisolasi
  • FreeBSD mencapai tahap ketiga pada tahun 2000, Linux mencapainya lewat LXC pada 2008, dan Docker muncul pada 2013
  • Saat Docker dipuji sebagai sesuatu yang revolusioner, FreeBSD jails sebenarnya sudah matang dan teruji di lapangan selama 13 tahun

Mengapa Linux menang

  • Keunggulan teknis tidak selalu memenangkan perang ekosistem
  • Linux menang berkat pengambilan keputusan yang cepat, efek viral lisensi GPL, serta dukungan enterprise yang kuat dari Red Hat dan IBM
  • Setelah itu Google, Facebook, dan Amazon mengembangkan tool untuk data center berskala besar, lalu menentukan arah seluruh industri
  • Linux berubah dari "OS gratis untuk orang yang tidak bisa membeli lisensi komersial" menjadi "satu-satunya pilihan untuk server"

Kompleksitas ekosistem kontainer Linux

  • Untuk menyelesaikan masalah isolasi dan deployment, para engineer Linux membangun primitive kernel seperti namespace, cgroups, seccomp, lalu menumpuk lapisan abstraksi kompleks di atasnya: LXC (2008) → OCI/runc (2015) → Docker/Podman (2013/2018) → Docker Hub
  • Hasilnya adalah tumpukan abstraksi bocor (leaky abstractions) yang terlalu banyak direkayasa untuk infrastruktur berbasis cloud dan bergantung vendor
  • Kini, untuk menjalankan aplikasi dalam sistem berskala besar, mengontainerkannya dengan Docker dan mengorkestrasinya dengan Kubernetes telah menjadi default implisit, bukan lagi salah satu dari banyak opsi melainkan pilihan yang dianggap wajar

Kontribusi Docker dan kelemahan Jails

  • Hal yang benar-benar diselesaikan Docker dengan baik adalah masalah shipping: memaketkan aplikasi bersama semua dependensinya, mendistribusikannya lewat registry, dan menjalankannya secara identik di mesin mana pun sebagai standar umum
  • Format image OCI menjadi standar industri de facto
  • Jails sangat baik dalam menyelesaikan masalah isolasi, tetapi tidak memiliki solusi native untuk shipping, dan inilah alasan utama ekosistem jails terasa kurang matang dibanding ekosistem Docker
  • Komunitas juga menyadari kesenjangan ini, dan beberapa tool seperti cbsd, bastille, pot, appjail, dan lainnya mencoba meniru ekosistem kontainer modern, sementara ada juga pendekatan lain yang memanfaatkan primitive native FreeBSD

Cuplikan bagian selanjutnya

  • Pada bagian berikutnya akan dibahas kesederhanaan dan keanggunan infrastruktur berbasis FreeBSD, mulai dari dasar-dasar jails dan cara kerjanya, pengurangan boilerplate lewat jail manager, provisioning dan deployment dengan Ansible, kekuatan snapshot ZFS, serta cara menggabungkan semuanya untuk membangun infrastruktur yang kokoh dan skalabel bagi Hypha

1 komentar

 
GN⁺ 2026-02-24
Komentar Hacker News
  • Keunggulan teknis saja tidak cukup untuk menang dalam perang ekosistem
    Pada pertengahan 90-an, Linux tumbuh berkat pengambilan keputusan yang cepat, sifat menyebar dari lisensi GPL, serta dukungan perusahaan dari Red Hat dan IBM
    Saya memasang Linux pada 1994, tetapi komunitas FreeBSD meremehkan PC saya yang seharga $3.500 dengan mengatakan itu “tidak terlalu bagus”
    Ada bug pada antarmuka IDE, tetapi Linux mengeluarkan solusi sementara hanya dalam hitungan hari, sedangkan pihak BSD cuma menyuruh saya membeli perangkat SCSI
    Saat itu saya masih mahasiswa dan tidak punya uang, jadi Linux akhirnya menjadi pilihan yang realistis
    Belakangan saya mencoba FreeBSD lagi, tetapi Linux sudah melakukan semua yang saya butuhkan
    Bug terkait dirangkum di artikel wiki CMD640

    • Saya juga penggemar FreeBSD, tetapi merasa sudah banyak terjadi konvergensi fungsional dengan Linux
      Meski begitu, saya menyukai FreeBSD karena konsistensi sistemnya lebih tinggi, dan komponen inti seperti audio maupun API event dipertahankan secara stabil
      Dukungan driver untuk hardware terbaru masih lebih baik di Linux, tetapi saya berharap FreeBSD tidak menjadi terlalu “mirip Linux”
    • Orang yang memakai BSD belakangan ini kebanyakan memakainya karena sudah terbiasa, atau memang karena punya sifat kontra-arus
      Sebenarnya, dengan *nix modern, hampir semuanya bisa dilakukan di kedua sisi. Sekarang ini lebih soal preferensi dan kebiasaan daripada performa
    • Linux sejak awal mendapat minat komersial, sehingga dukungan hardware-nya berkembang sangat pesat
      Sementara itu, BSD dihindari perusahaan karena gugatan dengan AT&T, dan selama masa itu Linux menguasai pasar
      Sampai sekarang masih ada tulisan yang membela FreeBSD, tetapi sulit membalikkan arah yang sudah terbentuk sejak 90-an
    • Cerita bahwa kubu BSD menertawakan PC saya itu membuat saya tertawa
      Meski begitu, saya tetap merasa dukungan hardware masih punya banyak ruang untuk ditingkatkan sampai sekarang
    • Antara 1992~1994, BSD mendapat ancaman gugatan, sementara Linux terus tumbuh
  • Tulisannya menarik
    Saya tidak setuju dengan penilaian bahwa primitif kernel Linux seperti namespaces, cgroups, seccomp pada akhirnya menciptakan ekosistem abstraksi yang rumit
    Linux menjadi rumit karena ia sukses, bukan karena desainnya gagal
    Jika BSD yang menjadi arus utama, kemungkinan besar ekosistem yang sama “over-engineered”-nya juga akan muncul

    • FreeBSD punya pola pikir yang lebih berpusat pada engineering daripada budaya hacker
      Container pada akhirnya hanyalah VM ringan, jadi saya merasa lebih baik memakai VM sungguhan saja
    • Jika membandingkan utilitas BSD dan utilitas GNU, perbedaan gaya-nya terasa jelas
      Docker populer karena kemudahan pakai ulang dan ekosistemnya, bukan karena isolasi keamanannya
  • Jail di FreeBSD itu sederhana dan elegan, tetapi container OCI di Linux jauh lebih mudah digunakan
    Container bukan fitur kernel yang berdiri sendiri, melainkan ilusi yang dibangun dari gabungan berbagai namespace, mount, dan isolasi proses
    Desain Linux ini memang disengaja, dan cgroups serta seccomp dipakai luas bukan hanya untuk container, tetapi juga di systemd atau flatpak

    • FreeBSD masih punya keunggulan di bidang seperti perangkat jaringan dan storage controller
      Filosofi “ternak vs hewan peliharaan” bisa diterapkan di level VM dan orkestrasi
    • Container Linux jauh lebih cepat dibuat dan dijalankan daripada jail FreeBSD
      Klaim bahwa jails lebih baik terasa kurang masuk akal di dunia nyata
  • Docker menang bukan karena isolasi teknis, melainkan karena ekosistem
    Berkat alat seperti Dockerfile, public registry, dan compose, lingkungan yang bisa dijalankan dapat dibuat hanya dalam 30 detik
    Jail FreeBSD sangat bagus secara teknis, tetapi hambatan masuknya tinggi
    Belakangan ini, karena kompleksitas stack container, juga terlihat gerakan untuk kembali ke jail atau VM yang lebih sederhana

    • Pangsa pasar FreeBSD hanya sekitar 0,1%, jadi ia memang tidak mungkin “menang”
      Namun ini bukan soal persaingan; masing-masing punya peran yang berbeda
    • Berkat arsitektur client/server Docker, lingkungan terintegrasi seperti Docker Desktop menjadi mungkin
      FreeBSD tidak punya konsep seperti ini, dan sistem image-nya juga kurang memadai
    • Bagi saya, memakai Docker Compose atau Swarm saja sudah cukup sederhana
      Jika FreeBSD berinvestasi pada UX dan ekosistem seperti Docker, basis penggunanya mungkin akan bertambah beberapa kali lipat
    • Bahkan di tulisan aslinya, kata “ekosistem” ditekankan berulang kali
  • Sekitar 2005, saya pernah menjalankan seluruh perusahaan di atas FreeBSD
    Tetapi seiring waktu, Linux menguasai baik penggunaan pribadi maupun pekerjaan
    Sekarang Docker pun sudah cukup bagus, jadi tidak ada lagi alasan logis untuk kembali

    • Pada awal 2000-an, FreeBSD 4 punya performa jaringan dan storage yang luar biasa
      Namun responsnya terhadap era CPU multicore terlambat, sehingga tertinggal dari Linux dan Windows
      Sekarang performanya sudah pulih, tetapi tetap kurang diuntungkan karena kekurangan driver dan keterbatasan jumlah developer
      Saya memakai Linux untuk kebutuhan GPU atau CUDA, dan FreeBSD untuk server yang butuh stabilitas
    • Saya juga punya pandangan serupa. Skala investasi di Linux begitu besar hingga kekurangannya tertutupi
      UX FreeBSD lebih konsisten, tetapi secara realistis Linux sudah menjadi “jalur yang membuat hidup lebih mudah”
    • Saya masih bertanya-tanya kenapa Satoshi memakai Windows
  • Tulisan yang memperkenalkan FreeBSD selalu menyenangkan untuk dilihat

  • FreeBSD memperkenalkan jail pada 2000, tetapi Linux sudah punya teknologi serupa seperti OpenVZ dan VServer

    • Virtuozzo bersifat tertutup sehingga penyebarannya lambat, dan Linux-VServer terlalu fokus pada web hosting sehingga gagal menjadi arus utama
      Pada akhirnya, ketika LXC muncul di akhir 2000-an, barulah muncul persepsi bahwa “FreeBSD memang lebih dulu unggul”
  • Saya penasaran apakah ada tulisan yang menjelaskan secara teknis cara implementasi isolasi pada container dan VM
    Bukan sekadar sampai level “karena memakai kernel yang sama maka lebih lemah”, tetapi saya ingin tahu detail implementasinya yang sebenarnya

  • Akhir-akhir ini, fitur seperti systemd-oomd membuat saya ingin kembali ke FreeBSD
    Dulu saya biasa membuka beberapa proses di terminal sambil menyimpan log untuk bekerja,
    tetapi sekarang systemd mematikan seluruh proses sekaligus pada level cgroup, sehingga pekerjaan saya hilang
    Perubahan sistem yang tidak kompatibel seperti ini merusak alur kerja development, dan situasi yang mengharuskan memakai systemd-run atau Docker setiap kali demi isolasi proses terasa sangat menjengkelkan

  • Kunci keberhasilan Linux adalah sifat menular GPL dan efek jaringan
    Ketika para pengguna mulai menganggap Linux sebagai standar, produsen hardware pun secara alami mulai merilis driver untuk Linux
    Berkat fleksibilitas kernel, ekosistem driver open source berkembang sangat pesat