2 poin oleh GN⁺ 2025-06-07 | 1 komentar | Bagikan ke WhatsApp
  • Dengan dukungan dari Amazon, selama satu tahun dilakukan rekayasa rilis FreeBSD dan pengembangan FreeBSD/EC2
  • Manajemen rilis dijalankan bersamaan dengan peningkatan terkait EC2, dengan rata-rata 50 jam kerja per bulan
  • Berhasil menangani masalah fitur utama dan meningkatkan kualitas seperti manajemen daya instans Graviton, dukungan hotplug, dan peningkatan performa boot
  • Perluasan jenis AMI serta otomatisasi build meningkatkan keragaman dan efisiensi distribusi FreeBSD AMI
  • Setelah pendanaan berakhir, diperkirakan akan terjadi perlambatan laju pengembangan dan stagnasi pada sebagian pengembangan fitur

Kilas balik satu tahun pendanaan pengembangan FreeBSD

# Latar belakang awal dan proses pendanaan

  • Platform FreeBSD/EC2 telah dikelola sejak 2010, dan sejak November 2023 juga menjalankan peran sebagai lead rekayasa rilis FreeBSD
  • Sebelumnya menerima dukungan kecil dari Antithesis, Patreon, dan lain-lain, tetapi pekerjaan rekayasa rilis mulai banyak menggerus waktu pengembangan FreeBSD/EC2
  • Selama beberapa tahun telah melanjutkan diskusi sponsor dengan pihak Amazon terkait pekerjaan EC2, dan pada April 2024 terhubung dengan pihak yang bertanggung jawab atas penganggaran sehingga mendapat pendanaan selama satu tahun
  • Pendanaan disalurkan melalui GitHub Sponsors, dan periode yang dimaksud Amazon serta waktu pencairan aktual bisa berbeda

# Pendanaan dan pembagian waktu kerja

  • Atas permintaan Amazon, berkomitmen menyediakan 40 jam per bulan untuk rekayasa rilis FreeBSD dan pengembangan EC2
  • Dalam praktiknya, sekitar 50 jam per bulan benar-benar dicurahkan, dibagi menjadi 20 jam untuk isu EC2, 20 jam untuk pekerjaan rilis, dan 10 jam untuk rekayasa lainnya
  • Jam kerja sangat bervariasi dari bulan ke bulan

# Manajemen rilis FreeBSD

  • Dengan memperkenalkan dan mengelola jadwal rilis triwulanan FreeBSD, selama satu tahun berhasil menjalankan 4 rilis: FreeBSD 13.4(2024.9), 14.2(2024.12), 13.5(2025.3), 14.3(estimasi 2025.6)
  • Tiap rilis mencakup mendorong tenggat penutupan kode pengembang, menyetujui dan mengoordinasikan permintaan merge, build dan pengujian image, penulisan pengumuman, serta perbaikan berbagai error build rilis
  • Waktu yang dibutuhkan untuk rekayasa rilis berada di kisaran 33.5~79 jam per kuartal, dengan pola beban kerja menurun di paruh akhir seiring stabilisasi

# Peningkatan fitur EC2 utama dan peningkatan kualitas

Driver daya instans Graviton, dukungan hotplug

  • Menyelesaikan masalah ketika FreeBSD tidak dapat mengenali sinyal shutdown normal dari EC2 API pada instans Graviton

    • Menggunakan objek ACPI _AEI untuk menghubungkan sinyal "power button" berbasis GPIO dengan logika driver
    • Masalah nonaktifnya perangkat akibat ketidaksesuaian pengaturan flag Pull Up pada tabel ACPI yang disediakan EC2 ditangani dengan menambahkan pengaturan ACPI_Q_AEI_NOPULL pada FreeBSD/EC2 AMI
  • Mendiagnosis dan memperbaiki secara menyeluruh berbagai masalah hotplug perangkat (terutama hot unplug) pada instans EC2 Graviton dan x86

    • Menangani berbagai jenis bug seperti kebocoran IRQ, ketidaksesuaian status daya PCI dan sinyal OS, serta perangkat PCI "hantu"
    • Sebagai solusi sementara, diterapkan quirk ACPI (misalnya ACPI_Q_CLEAR_PME_ON_DETACH, ACPI_Q_DELAY_BEFORE_EJECT_RESCAN), sementara bug di sisi EC2 dijadwalkan untuk diperbaiki

Otomatisasi pengujian hotplug dan peningkatan kualitas

  • Mengembangkan skrip yang berulang kali memasang dan melepas volume EBS di lingkungan EC2, lalu memverifikasi stabilitas melalui 300 pengujian beruntun
  • Meningkatkan kualitas dengan mengatur penundaan 5 detik yang tidak perlu pada PCIe hotplug (yang hanya bermakna pada sistem fisik) menjadi 0 detik di EC2

Peningkatan performa boot

  • Secara sistematis memperbaiki isu kecepatan boot FreeBSD/EC2 melalui pengumpulan dan analisis data
  • Menyelesaikan secara bertahap berbagai masalah seperti boot yang menjadi 3 kali lebih lambat akibat penambahan kapasitas root disk pada awal 2024, keterlambatan seeding entropi kernel pada instans Graviton2, peningkatan waktu boot ZFS, dan masalah dukungan IPv6 terkait IMDSv2
  • Optimalisasi dilakukan dari berbagai sisi, termasuk kesenjangan performa boot antar filesystem, inefisiensi pasokan entropi, dan keterlambatan inisialisasi jaringan

# Perluasan keragaman FreeBSD AMI serta otomatisasi build/distribusi

  • Selain AMI base dan cloud-init yang sudah ada, ditambahkan small AMI (menghapus kode/alat debugging dan pengujian yang tidak perlu, ukuran 1GB) dan builder AMI (builder untuk kustomisasi pengguna)
  • Kombinasi image diperluas menjadi 4 jenis AMI * 2 filesystem (UFS/ZFS) * 2 arsitektur (amd64/arm64) * 3 versi (13, 14, 15), sehingga dilakukan penghapusan otomatis image lama dan skriptisasi, serta pembersihan 336TB snapshot EBS

# Peningkatan rekayasa umum

  • Dengan paralelisasi build FreeBSD AMI/rilis, total waktu build dipangkas dari sekitar 22 jam menjadi 13 jam, memberi ruang untuk menambah lebih banyak jenis AMI
  • Melalui pengujian otomatis berbasis instans EC2 dan perbandingan diffoscope, dilakukan diagnosis dan perbaikan masalah reproducibility build (reproducible build)
  • Juga menangani berbagai pekerjaan kecil lain seperti review patch driver ENA, build kontainer OCI dan unggah registry, peningkatan tool terkait AWS, serta laporan isu keamanan

# Prospek ke depan dan keterbatasan

  • Peran dalam rekayasa rilis FreeBSD dan pemeliharaan platform EC2 tetap dipertahankan, tetapi waktu yang dapat dicurahkan diperkirakan akan berkurang dibanding sebelumnya
  • Rilis FreeBSD 15.0(Desember 2024), 14.4/15.1/14.5/15.2(2026) akan tetap berjalan sesuai rencana, tetapi kecepatan penambahan fitur/perbaikan bug tampaknya akan menurun
  • Tugas yang belum selesai seperti perluasan filesystem otomatis, multi-NIC dan otomatisasi hotplug, distribusi AMI yang sudah dipatch sebelumnya, web tool untuk pengguna EC2, serta dukungan FreeBSD/Firecracker diperkirakan akan stagnan dalam jangka panjang

# Penutup

  • Pendanaan dari Amazon tersebut merupakan peluang yang sangat langka bagi pengembang open source, dan penulis merasakan kebanggaan sekaligus rasa syukur atas capaian selama ini

1 komentar

 
GN⁺ 2025-06-07
Komentar Hacker News
  • Hari ini membagikan kabar bahwa FreeBSD telah ditambahkan ke halaman unduhan ziglang.org, jadi sekarang pengguna FreeBSD bisa dengan mudah mendapatkan build cabang master yang dibangun otomatis dari CI
    FreeBSD kini juga sepenuhnya didukung secara resmi sebagai target cross-compilation, sehingga bisa mengompilasi dengan menargetkan FreeBSD mirip seperti Linux, misalnya zig cc -o hello hello.c -target riscv64-freebsd
    Jika ada dependensi C/C++, itu bisa dengan mudah dibawa masuk dan dibangun menggunakan sistem build Zig, sehingga proyek yang cukup kompleks pun bisa di-cross-compile ke FreeBSD dengan mudah
    Karena itu, berharap lebih banyak proyek menambahkan dukungan dan pengujian FreeBSD ke CI mereka

    • Fitur cross-compilation Zig benar-benar keren, dan senang melihat FreeBSD ditambahkan sebagai target yang didukung
  • Ada banyak bagian yang menarik saat membacanya
    Ada kasus di mana sejak minggu pertama 2024 proses boot FreeBSD tiba-tiba menjadi 3 kali lebih lambat, dan setelah terus menelusuri commit, penyebabnya ternyata ukuran disk root bertambah dari 5GB menjadi 6GB
    Saat ditanyakan ke teman di Amazon, jawabannya terasa seperti sihir: “tidak tahu persis, tapi mungkin lebih baik tidak tahu”
    Yang penting, ketika ukuran disk root dinaikkan ke 8GB, performanya pulih ke tingkat semula

    • Mendengar cerita seperti ini justru membuat ingin benar-benar tahu penyebabnya

    • Penasaran berapa lama sebenarnya waktu yang dibutuhkan untuk melakukan bisection commit demi menemukan masalah seperti ini
      Membayangkan apakah setiap kali harus membuat image lalu me-reboot VM

    • Menyebut tulisan blog pribadinya dari 2006 bahwa batas ukuran objek asli S3 adalah 5GB
      https://aws.amazon.com/blogs/aws/amazon_s3/
      Tidak tahu apakah ini berhubungan langsung dengan melambatnya performa FreeBSD

  • Banyak pekerjaan juga sedang berlangsung terkait dukungan laptop
    Membaca bahwa BSD Foundation menginvestasikan $750,000 untuk berfokus pada berbagai fitur, termasuk implementasi S0ix Sleep State
    Proyek terkait bisa dilihat di https://github.com/FreeBSDFoundation/proj-laptop

    • Sangat banyak pekerjaan berlangsung secara bersamaan, tetapi ia hanya menulis dan membagikan bagian yang sedang ia kerjakan sendiri
  • Berharap Amazon memberi lebih banyak dukungan dan kontribusi, tetapi kenyataannya tampak sebatas dukungan minimum untuk FreeBSD
    Amazon juga tidak ada di daftar sponsor FreeBSD, Google tahun lalu hanya menyumbang $9K, dan Apple maupun Meta/Facebook juga tidak ada
    Sebaliknya, Microsoft patut dipuji karena ada di daftar
    Cukup mengejutkan bahwa perusahaan-perusahaan besar ini mendapat banyak manfaat dari FreeBSD dan OpenBSD tetapi tidak otomatis berdonasi tiap tahun
    Informasi sponsor bisa dilihat di https://freebsdfoundation.org/our-donors/donors/?donationYear=2024

    • Setuju dengan harapan bahwa Amazon mendukung FreeBSD lebih banyak
      Namun, tidak tercantum di daftar donor FreeBSD Foundation bukan berarti tidak ada dukungan
      Pendanaan pengembangan yang ia terima juga tidak melalui foundation, dan pengembangan yang didukung foundation sebenarnya hanya sekitar 10% dari seluruh dukungan perusahaan
      Pengembangan yang didukung foundation penting karena memungkinkan fokus pada pekerjaan demi FreeBSD itu sendiri, tetapi secara keseluruhan itu hanya sebagian kecil

    • Menunjukkan bahwa tidak mungkin melihat seluruh situasi hanya dari isi komentar ini
      Yang ditampilkan hanyalah snapshot donasi ke foundation per tahun, sementara pengembangan yang benar-benar berkontribusi diringkas dalam catatan rilis tiap rilis
      https://www.freebsd.org/releases/

    • Penasaran mengapa Microsoft mendukung FreeBSD
      Ekstensi Hyper-V pun tidak selengkap di Linux, tidak ada port resmi .NET, dan tampaknya Microsoft juga tidak menjalankan layanan berbasis FreeBSD

    • Pendapat bahwa Amazon adalah perusahaan FAANG yang paling sedikit berkontribusi ke FOSS

  • Menyampaikan banyak rasa hormat kepada cperciva
    Penasaran bagaimana ia mengelola Tarsnap dan FreeBSD sekaligus

    • Berbagi pengalaman bahwa pada titik tertentu, uang memang bisa berubah menjadi waktu
      Perbaikan sederhana bisa dikerjakan sendiri atau memanggil ahli
      Hanya sebagian dari waktu yang dicurahkan untuk pekerjaan FreeBSD ini yang berasal dari waktu yang dibeli lewat Tarsnap, dan jumlahnya tidak sebanyak yang dibayangkan
  • Pernah memakai FreeBSD sebagai workstation di masa lalu, dan cukup terkesan
    Ingin memakai FreeBSD sebagai gateway/firewall/DNS/DHCP server di rumah, tetapi driver NIC 10GbE tidak didukung sehingga akhirnya memilih Nix
    Menyenangkan melihat FreeBSD masih dirawat dengan baik

  • Penasaran siapa pengguna terbesar FreeBSD/EC2

    • Ia juga tidak terlalu tahu
      Faktanya, pengguna yang benar-benar menghubunginya tampaknya tidak sampai 0.1% dari seluruh pengguna FreeBSD/EC2
      Sangat ingin tahu siapa yang memakai FreeBSD di EC2

    • Penasaran apakah Netflix hanya memakai FreeBSD pada edge box

  • Penasaran celah seperti apa yang diisi FreeBSD di keluarga Unix
    Bertanya mengapa memilih FreeBSD yang lebih kompleks daripada OpenBSD atau NetBSD, dan jika butuh ZFS, Nvidia, atau ELF, apakah Linux tidak lebih baik
    Sudah paham soal masalah GNU, tetapi ada alternatif seperti Musl Void juga, jadi ingin tahu “identitas” khas FreeBSD dengan rasa ingin tahu yang tulus

    • Pernah memakai FreeBSD di sektor keuangan, baik di EC2 maupun server bare metal di data center sendiri
      zfs dan jail digunakan secara luas
      Semua layanan dijalankan terpisah di masing-masing jail sehingga sangat efisien dari sisi biaya
      Ketika sebagian dipindahkan ke cloud dan mengoperasikan hybrid Linux(k8s)+FreeBSD, biaya melonjak tajam
      Mengelola data center sendiri memang merepotkan, seperti mengganti disk atau menangani kebakaran, tetapi AWS menyediakan banyak fitur seperti multi-region meski dengan beban biaya
      zfs sangat membantu ketika tabel DB produksi pernah terhapus secara tidak sengaja; berkat snapshot, rollback bisa dilakukan seketika, dan zfs juga dipakai untuk backup
      Pernah juga melakukan troubleshooting di produksi dengan dtrace
      Saat hanya menjalankan FreeBSD di server, pengelolaan mudah karena hanya ada satu keluarga OS; ketika Linux diperkenalkan, tiap tim memakai distro berbeda-beda sehingga menjadi kacau
      Menyukai FreeBSD sebagai struktur terintegrasi kernel+OS

    • Dari sudut pandangnya, FreeBSD terasa seperti perpaduan yang pas antara kelebihan OpenBSD dan NetBSD
      Dulu FreeBSD terkenal dengan optimasi CPU Intel dan keamanan yang solid, dan khususnya dukungan ZFS adalah pembeda yang menentukan
      Driver nvidia juga baru belakangan mendapatkan dukungan native FreeBSD
      Pada akhirnya, FreeBSD menggabungkan keunggulan BSD lain dan stabilitas perangkat keras dengan baik

    • FreeBSD memiliki basis pengguna yang jauh lebih besar daripada OpenBSD atau NetBSD
      Katalog perangkat lunaknya sendiri jauh lebih besar, sehingga sangat memadai bahkan untuk penggunaan desktop sehari-hari
      Alasan tidak memakai Linux adalah karena Linux terlalu terikat pada kepentingan perusahaan

    • Pendapat bahwa FreeBSD satu tingkat lebih unggul daripada Linux dalam dukungan ZFS
      Karena isu lisensi, FreeBSD menawarkan lingkungan yang lebih baik

    • FreeBSD lebih unggul daripada OpenBSD dalam hal throughput jaringan
      Secara umum, BSD tidak banyak berubah dengan cepat, sehingga cocok dipakai sebagai platform yang terintegrasi

  • Ada pendapat bahwa tulisan ini menggambarkan lingkungan pengembangan FreeBSD secara kurang baik
    Mengingat ini adalah OS dengan kompleksitas besar, rasanya setidaknya harus ada seseorang yang menjadi release manager penuh waktu, tetapi kenyataannya hanya kerja paruh waktu selama setahun, yang terasa disayangkan
    Meski begitu, keberadaan FreeBSD tetap penting karena Linux bukan satu-satunya alternatif