Satu tahun pendanaan untuk pengembangan FreeBSD
(daemonology.net)- 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
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-freebsdJika 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
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
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
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