Apa itu Proyek Moby Docker?

Menjadi seorang Austin ite, saya menikmati memiliki DockerCon lokal, dan saya menulis panduan untuk mengunjungi Austin dengan harapan bahwa peserta akan menikmati memiliki DockerCon di Austin juga.

Selama DockerCon 2017, beberapa pengumuman besar dibuat, termasuk Proyek Moby. 

Apa Proyek Moby? Ini adalah kerangka kerja untuk merakit sistem kontainer khusus tanpa menciptakan kembali roda.

Proyek Moby adalah untuk Docker seperti Fedora untuk Red Hat Enterprise Linux. - Solomon Hykes, CTO / Pendiri Docker

Untuk menjadi proyek kontainer yang setara dengan proyek Fedora, bagaimana Docker dibangun berubah.

Red Hat melakukan pekerjaan dengan baik di hari-hari awal kebingungan RHEL karena mereka menggambarkan proyek dari produk; mereka memisahkan Fedora dari RHEL. Docker melihat pendekatan ini sebagai cara untuk melibatkan komunitas dengan lebih baik. Batas antara komunitas dan produk tidak jelas sebelumnya. Orang belum tentu tahu kapan mereka berkontribusi pada proyek vs produk. Pemisahan kode antara repositori moby / moby dan repositori buruh pelabuhan / buruh pelabuhan menjelaskan perbedaan ini.

Moby akan mengubah Docker dari mesin monolitik menjadi toolkit untuk merakit komponennya menjadi konfigurasi yang berbeda. Proyek Moby harus mendorong penggunaan kembali masing-masing komponen. Docker memiliki sejarah kesuksesan dalam hal ini dan dapat diukur dalam penggunaan kembali di luar pencipta mereka:

  • Mereka mengeluarkan OCI / runc, dan sekarang menjadi standar yang ditetapkan untuk runtime kontainer dan format gambar.
  • Mereka mengeluarkan kontainer, dan sekarang menjadi standar industri de facto untuk runtime kontainer dengan kontribusi dari semua vendor cloud utama dan 99 persen dari basis pemasangan (jutaan node di seluruh dunia).
  • Notaris telah menjadi implementasi TUF yang paling matang di industri dan pusat kolaborasi untuk komunitas keamanan.
  • Distribusi Docker adalah fondasi sumber terbuka untuk lusinan produk komersial.

Tim Docker berharap saat monolit Docker dipecah menjadi bagian-bagian yang lebih kecil, komponen individual ini dapat menjadi blok bangunan untuk solusi khusus. Proyek monolitik yang sebelumnya berada di buruh pelabuhan / buruh pelabuhan telah dipindahkan ke moby / moby.

Beberapa kebingungan muncul tentang proyek tersebut. Tim Docker mengkomunikasikan proyek dengan baik kepada kontributor di konferensi dan sebagian besar pengelola. Namun, orang-orang yang lebih santai dalam berinteraksi dalam komunitas terkejut dan tidak jelas tentang tujuan dan dampaknya, mengungkapkan rasa frustrasi karena tidak memahami bagaimana berbagai bagian cocok satu sama lain atau apa yang dilakukan oleh fitur baru (misalnya, LinuxKit).

Singkatnya, Proyek @moby: di dalam dan di luar. pic.twitter.com/K8Rn9YYtVs

- Solomon Hykes (@solomonstre) 22 April 2017

Proyek Moby memungkinkan pembangun sistem untuk membuat proyek lain di atas perkakas yang sama. Pembangun sistem mungkin ingin menjalankan rakitan ini secara berbeda, bergantung pada apakah rakitan tersebut berjalan pada perangkat IoT kecil atau jika rakitan tersebut berjalan pada sistem besar dengan GPU.

Masih banyak pekerjaan untuk memecah komponen; namun, tujuannya adalah untuk membuat satu upstream besar untuk Docker — yaitu Moby. Docker Inc. menginginkan perkakas lebih terbuka daripada Docker. Keputusan desain produk terkadang bertentangan dengan proyek open-source yang digerakkan oleh konsensus. Memiliki pemisahan masalah memungkinkan Docker Inc. untuk mengumpulkan opini tentang pengalaman pengguna ke dalam komunitas dan penawaran Docker perusahaan mereka. Moby adalah proyeknya. Docker adalah produknya.

Proyek Moby dapat dijelaskan dalam empat lapisan:

  1. Semua komponen upstream
  2. Moby
  3. Docker CE
  4. Docker EE
David Chung / Docker Inc.

Organisasi proyek ke dalam lapisan harus meredakan konten alami yang muncul ketika keputusan perlu dibuat antara apa yang berhasil untuk proyek vs. produk. Docker sebagai produk akan menambah opini yang diinformasikan oleh penggunanya (agar lebih mudah bagi penggunanya). Misalnya, containerd tidak memiliki registri default, sementara Docker akan memiliki hub Docker sebagai default atau CLI Docker, yang menyediakan pencarian mudah untuk masalah terbuka yang Anda miliki untuk proyek Anda di forum / sistem dukungan Docker. Pengguna tidak terpengaruh. Pengguna masih akan berinteraksi dengan Docker dengan cara yang sama.

  • Pengembang aplikasi yang mencari cara mudah untuk menjalankan aplikasi mereka dalam kontainer dapat melihat ke Docker CE.
  • TI perusahaan yang  mencari platform kontainer yang siap digunakan dan didukung secara komersial dapat menggunakan Docker EE.

Tidak ada yang berubah untuk pengguna ini. Baris perintah tetap sama. Docker sekarang dapat memanfaatkan ekosistem untuk berinovasi lebih cepat untuk mereka.

  • Pembangun sistem yang  ingin memanfaatkan komponen Proyek Moby dapat berinovasi tanpa terikat ke Docker.

Tata Kelola Proyek

Proyek Moby terbuka dan akan menjadi proyek yang dijalankan komunitas. Docker Inc. memiliki kecenderungan umum untuk menyumbangkan masing-masing komponen dalam proyek ini ke badan pengatur lainnya jika sesuai. Containerd harus berdiri sendiri dari organisasi Moby karena sudah disumbangkan ke CNCF. Proyek individu jangka panjang pada akhirnya harus pindah dan masuk ke repositori lain.

FAQ Proyek Moby

  • Sekarang Moby memecah monotlith, akankah bahasa selain Go dimasukkan?
    • Untuk LinuxKit — Ada komitmen untuk Ocaml dan Rust. Tidak ada rencana induk untuk mengubah bahasa.
  • Apakah REST akan diganti dengan gRPC?
    • Docker Inc umumnya ingin membiarkan REST API sebagai façade konstan, sambil memindahkan komunikasi internal antara project Moby ke gRPC. Sebuah komponen dapat mengubah bahasa dan tidak mempengaruhi komponen lain (seperti layanan mikro menyediakan pilihan). Engine memiliki HTTP REST API, dan semua komponen tingkat yang lebih rendah telah mengadopsi gRPC. Solomon mengusulkan untuk mengadopsi gRPC sebagai antarmuka standar. Manfaatnya termasuk perkakas yang lebih otomatis.
  • Di mana Anda akan menemukan Docker CE (proyek open source)?
    • TBD — Docker / CLI akan memiliki perpustakaan klien dan SDK untuk saat ini. Pengemasan dan pembuatan adalah edisi khusus, mengingat ada banyak Docker untuk XXX.