Meskipun ada beberapa wilayah kecil yang tumpang tindih Docker dan sistem pengemasan Debian pada dasarnya menyelesaikan dua masalah yang sangat berbeda :
Sistem pengemasan Debian dibuat untuk menginstal perangkat lunak pada host dan memutakhirkannya semudah mungkin. Ia mampu menangani pola ketergantungan dan kendala kompleks antara komponen perangkat lunak, seperti "perangkat lunak X versi A membutuhkan perangkat lunak Y dengan versi B atau yang lebih baru diinstal" atau "perangkat lunak X tidak boleh diinstal dengan perangkat lunak Z versi C".
Sistem Docker dirancang untuk dengan mudah menggambarkan dan menggunakan layanan, terutama layanan mikro, mungkin pada beberapa host - mis. Docker swarm atau cluster Kubernetes.
Kedua masalah ini pada dasarnya bersifat ortogonal, yang berarti bahwa dengan menyelesaikan masalah penyebaran, seseorang dapat menggunakan salah satu dari mereka, keduanya, atau mungkin bahkan tidak satupun, sebagai bagian dari solusi. Saat menggunakan keduanya, paket Debian digunakan dalam produksi gambar Docker, dan Dockerfile Anda (resep yang digunakan untuk menyiapkan gambar Docker yang menggambarkan "sistem virtual" yang dijalankan dalam wadah) pada dasarnya akan mendaftarkan repositori Debian Anda di sumber sistem pengemasan Debian dan instal paket Anda.
Dengan pemikiran ini, menurut saya apa yang Anda benar-benar cari adalah menerapkan pola server yang tidak dapat diubah. Perkembangan baru-baru ini dalam teknologi cloud memungkinkan untuk memutakhirkan perangkat lunak bukan dengan menggunakan sistem pemutakhiran perangkat lunak klasik dari sistem paket perangkat lunak (seperti sistem pengemasan Debian) melainkan dengan hanya mengganti server penuh sekaligus. (Beberapa orang melakukan ini sebelum pengembangan ini dengan memiliki tiga OS-s di server, dua digunakan secara bergantian untuk menjalankan alat dan mini-OS yang didedikasikan untuk melakukan penggantian alat. Meskipun tidak terlalu rumit, ini tampaknya selalu tetap merupakan niche.) Teknik ini dapat menarik bagi Anda karena jika Anda digunakan untuk memutakhirkan perangkat lunak pada server Anda menggunakan manajer paket, keadaan akhir server tergantung pada "riwayat pemutakhiran" server - terutama jika kesalahan terjadi pada proses peningkatan. Heterogenitas ini buruk,
Kami memiliki ribuan kotak ini di lapangan. Kami mengelola dependensi paket, proses pendaftaran, dll. Melalui paket deb dengan berbagai tingkat keberhasilan.
bisa berhubungan dengan ini. Pola server yang tidak dapat diubah menghapus sumber kesalahan ini dengan menghancurkan gagasan “peningkatan riwayat” dari masalah.
Sekarang ada berbagai opsi untuk menerapkan pola server yang tidak dapat diubah, dua pilihan populer adalah menggunakan gambar Docker, gambar atau menggunakan "master instance images" dari penyedia cloud Anda (ini disebut AMI di AWS dan hanya Gambar Kustom di Google Compute Engine) . Kasus penggunaan Anda melarang penggunaan teknik berbasis cloud, oleh karena itu saya akan menganggap gambar Docker sebagai satu-satunya pilihan yang memenuhi syarat. (Demi penyelesaian, tentu saja mungkin untuk menggunakan pendekatan lain, misalnya menggunakan Kotak Virtual atau solusi virtualisasi serupa, sebagai alternatif untuk Docker.)
Saat menggunakan teknik pola server yang tidak dapat diubah, Anda memperkenalkan artefak baru (gambar Docker) yang mewakili server Anda dan artefak ini dapat diuji juga, dan sangat mudah untuk mendapatkan pengaturan yang mereplikasi pengaturan produksi Anda dengan jujur - selain dari beban layanan.
Sekarang untuk mempertimbangkan masalah konkret yang Anda uraikan, mari asumsikan menerapkan pola server yang tidak dapat diubah dengan Docker sebenarnya adalah yang Anda inginkan. Karena sistem Docker dan sistem pengemasan Debian bersifat saling melengkapi dan bukan eksklusif satu sama lain (lih. Intro), kami masih harus menjawab pertanyaan jika Anda harus menyiapkan paket Debian untuk perangkat lunak Anda.
Kecocokan menggunakan paket Debian untuk menginstal perangkat lunak Anda (dalam gambar Docker atau pada host) terletak pada kompleksitas masalah versi yang harus Anda pecahkan. Jika Anda menjalankan beberapa versi perangkat lunak Anda secara bersamaan, kadang-kadang perlu menurunkan versi, dan memiliki persyaratan versi rumit yang harus Anda dokumentasikan dengan hati-hati, memiliki paket Debian adalah suatu keharusan. Jika tidak, langkah ini dapat dilewati - tetapi karena Anda sudah berupaya memproduksi dan menggunakan paket-paket ini, tidak ada nilai nyata untuk membuang pekerjaan Anda. Karena itu saya sarankan untuk terus memproduksi paket Debian Anda.