14 poin oleh xguru 2025-06-27 | 2 komentar | Bagikan ke WhatsApp
  • Platform kontainer open-source yang dirancang dengan fokus pada kesederhanaan/kecepatan/keamanan
    • Dioptimalkan untuk lingkungan HPC (komputasi berkinerja tinggi) dan sistem bersama
  • Menyediakan format image kontainer berkas tunggal yang immutable, dengan dukungan enkripsi dan penandatanganan
  • Berfokus pada kemudahan penggunaan yang terintegrasi alih-alih isolasi, sehingga GPU, jaringan berkecepatan tinggi, dan sistem berkas paralel dapat langsung dimanfaatkan di lingkungan klaster/server
  • Dapat mengambil semua kontainer dari registry OCI (Open Containers Initiative), dengan kompatibilitas maksimal dengan Docker
    • Mendukung pull, run, dan build sebagian besar kontainer di Docker Hub tanpa perubahan
  • Berganti nama dari Singularity dan dipindahkan menjadi proyek Linux Foundation
  • Dengan kontainer berkas tunggal berbasis SIF (Singularity Image Format), mudah untuk dipindahkan, didistribusikan, dan dibagikan
  • Hak akses pengguna di dalam dan di luar kontainer tetap sama, serta menerapkan model keamanan yang aman yang secara default tidak memungkinkan eskalasi hak tambahan dari host
  • Lisensi BSD

2 komentar

 
galadbran 2025-06-27

Artikel unregistry yang disebut dalam komentar Hacker News:
Unregistry – mengirim langsung docker push ke server tanpa registry | GeekNews

 
GN⁺ 2025-06-27
Opini Hacker News
  • Tim kami pernah mencoba Apptainer di klaster komputasi untuk desain/verifikasi silikon, tetapi pada akhirnya kembali ke modul TCL (beralih ke Lua) tradisional

    • Kami mengalami beberapa masalah.
      • Pertama, kontainer tidak bisa saling memakai satu sama lain. Misalnya, jika alat seperti Make, GCC, Git masing-masing ada di Apptainer yang berbeda, saat masuk ke Make maka GCC tidak akan terlihat
      • Kedua, artefak yang bergantung pada bagian dalam kontainer tidak berfungsi dengan baik. Saat membangun program dengan Apptainer GCC, biner hasil build terhubung ke library di dalam Apptainer sehingga tidak bisa dijalankan, dan juga muncul masalah header C
      • Ketiga, nilai PATH terus kacau, sehingga berulang kali tidak bisa melihat path atau alat yang diperlukan di luar Apptainer
      • Secara keseluruhan idenya bagus, tetapi dari sisi kemudahan penggunaan nyata terlalu merepotkan, sehingga pada akhirnya jauh lebih mudah langsung memakai OS lama (RHEL8)
    • Saya menganggap Apptainer/Singularity mirip dengan Docker (hanya saja tanpa pengaturan jaringan yang lengkap). Masalah seperti ini juga muncul sama persis di kontainer Docker tradisional.
      • Dalam alur kerja HPC saya, Apptainer dipakai seperti pengganti Docker yang bisa langsung ditukar, dan untuk penggunaan seperti ini sangat cocok
      • Keunggulan terbesar Apptainer adalah kontainer tanpa hak root. Karena itu memang tidak bisa melakukan jaringan yang rumit, tetapi di lingkungan multi-tenant seperti HPC jauh lebih aman
    • Jika keluhan terbesar saat memakai aplikasi kontainer adalah bahwa ia berperilaku seperti kontainer, itu memang hakikat kontainer
    • Jangan mencampur potongan-potongan kontainer. Sama seperti kita tidak mencampur biner dari distribusi Linux yang berbeda
      • Kontainer idealnya dipakai untuk pengembangan dalam satu lingkungan terpadu. Karena kontainer adalah lingkungan terisolasi, apa pun yang dikompilasi harus memiliki hasil yang tetap berada di kontainernya sendiri
      • Namun, ada juga cara membuat beberapa base image yang sama untuk memastikan kompatibilitas file (hanya jika semua dependensi yang diperlukan ikut dimasukkan)
  • Senang melihat Apptainer mendapat perhatian. Dalam beberapa situasi, ia lebih unggul daripada Docker, Podman dan lainnya

    • Saat menjalankan banyak tugas dalam satu kontainer (ini tidak disarankan di teknologi kontainer lain)
    • HPC (dan sebagian lingkungan universitas)
    • Dukungan model distribusi satu file (meski tentu tanpa dukungan delta)
    • Bisa melakukan penandatanganan terenkripsi file SIF tanpa server eksternal terpisah
    • Dukungan GPU yang kuat
  • docker juga memungkinkan distribusi satu file dengan perintah docker save dan docker load.

    • Memang tidak mendukung delta, tetapi baru-baru ini solusi bernama "unregistry" ditautkan di HN, yang memungkinkan fungsi "docker push" dan penerapan delta bahkan tanpa Docker Registry
  • Apptainer dan singularity ce keduanya umum dipakai di HPC. Keduanya bercabang dari proyek Singularity lama, tetapi tidak sepenuhnya sama

    • Kami memakai singularity di beberapa superkomputer (HPC), dan sebagian peneliti memasang Apptainer secara lokal untuk digunakan
    • Baru-baru ini kami menemukan bug zona waktu pada kode Python (matplotlib, xarray, dll.), dan ada masalah di singularity ce tetapi berjalan benar di Apptainer
    • Apptainer yang baru masih punya basis kode yang mirip, tetapi perbaikan bug masuk lebih cepat. Sebagai contoh, singularity menimpa sistem dengan zona waktu pengguna sehingga memunculkan masalah
    • Tautan referensi: singularity issue #3686
    • Apptainer bukan fork dari proyek Singularity lama. Apptainer adalah proyek utama aslinya, hanya namanya yang diubah lewat pemungutan suara komunitas. Lalu proyek ini pindah ke Linux Foundation
      • singularity ce adalah kasus ketika Sylabs merekrut pengembang aslinya lalu mem-fork proyek tersebut
      • Referensi: community announcement
    • Meski begitu, kompatibilitas kontainer tetap dipertahankan, jadi yang dibangun di Apptainer tetap bisa dijalankan di Singularity (dan sebaliknya juga)
  • Apptainer pada dasarnya adalah Singularity. Makalah terkait ada di sini

    • Jika memakai sistem bersama di klaster universitas atau pemerintah, Apptainer hampir selalu ada, sedangkan Podman/Docker nyaris tidak pernah ada
    • Di lingkungan seperti ini, alih-alih memakai kontainer, akan lebih menguntungkan jika akrab dengan administrator sistem dan memahami cara operasional klaster tersebut
    • Saya penasaran kenapa Docker/Podman lebih jarang dipakai, dan kenapa sebaiknya menghindari penggunaan kontainer. Apakah alasannya karena masalah performa
  • Flatpak ingin beralih dari basis OSTree ke basis kontainer. Katanya, tooling kontainer yang terawat adalah keuntungan besar. Tapi saya penasaran apa bedanya dengan Apptainer

    • Mungkin ciri khas Flatpak adalah kontrol sandbox aplikasi individual seperti perincian izin melalui xdg-dbus, sehingga bisa dipakai seperti aplikasi native
      • Saya tidak yakin apakah Apptainer terpisah/terisolasi sepenuhnya sampai tingkat itu
      • Dengan memakai alat seperti containertoolbx, perbedaan antarmetode kontainer jadi tidak terlalu berarti
      • Jujur saja, ada banyak tumpang tindih fitur antaralat, tetapi menurut saya itu sendiri tidak masalah
  • Di lingkungan yang saya gunakan, tujuan terbesar penggunaan Apptainer tidak ada kaitannya dengan distribusi, isolasi, atau ketersediaan perangkat lunak.

    • Klaster HPC kami memiliki batas kuota inode untuk setiap pengguna, sehingga sulit memasang perangkat lunak dengan jumlah file sangat banyak (misalnya Anaconda)
    • Tetapi image Apptainer adalah satu file berbasis squashfs, jadi bisa menyimpan beberapa image tanpa khawatir kuota inode
    • Memasang perangkat lunak yang sama secara biasa memang lebih mudah, tetapi kuotanya cepat sekali habis
  • Saya setuju dengan pendapat Havoc. Pesannya terasa ambigu: apakah Apptainer pengganti Flatpak untuk Desktop, atau untuk tujuan server

    • Untuk server. Tetapi pertanyaannya sendiri ambigu
      • Apptainer ditujukan untuk menjalankan aplikasi CLI di kontainer immutable dan rootless
      • Alat yang paling mirip adalah Fedora Toolbx
      • Penggunaan utama Apptainer adalah distribusi dan penggunaan ulang alat komputasi ilmiah. Dipakai tanpa hak root, rootfs tidak bisa diubah per kontainer, direktori kerja dimount otomatis, dan dukungan GPU juga bagus (yang ini saya belum uji langsung)
      • Referensi: Fedora Toolbx
  • Nama "Apptainer" terasa canggung diucapkan dan entah kenapa terdengar tidak pas

  • Jika Anda seorang pengembang, mungkin Anda sedang mencari alat kontainer untuk isolasi

    • Saya pernah membuat alat berbasis Podman untuk mengisolasi proyek pengembangan yang berbeda-beda. Jika diperlukan untuk pengujian atau penggunaan keamanan, bisa lihat kodenya atau tulisan blognya
    • Saya penasaran kenapa toolbox tidak cukup
      • Bagi saya, toolbox cukup baik karena saat memasang lingkungan pengembangan per proyek, saya tidak perlu mengelola banyak filesystem tersembunyi
  • Sangat berguna di klaster SLURM dan server tanpa hak root

    • Saya juga punya pengalaman memakainya di klaster SLURM
      • Dokumentasi resminya bagus, jadi cukup untuk pemula
      • Namun, jika tidak ada fakeroot atau sudo, ada kerepotan karena harus membangun Apptainer secara lokal lalu langsung mentransfernya ke server