Microsoft dan Docker telah
mengembangkan spesifikasi terbuka Cloud Native Application Bundle (CNAB). Ini menjelaskan cara serbaguna untuk mengemas aplikasi kemas untuk digunakan dalam lingkungan hybrid. Selanjutnya, kami akan menjelaskan mengapa CNAB dibutuhkan dan apa itu.
/ foto tsuna72 CC BYApa itu CNAB?
Bundel Aplikasi Cloud Native adalah spesifikasi yang menjelaskan cara mengemas komponen (API, mesin virtual, wadah) yang diperlukan untuk menjalankan aplikasi cloud di lingkungan terdistribusi. Sekilas, tugas ini harus diselesaikan oleh Docker. Namun,
diketahui bahwa dalam kasus infrastruktur hybrid skala besar, fungsi standarnya tidak cukup.
Dengan demikian, CNAB adalah upaya untuk menyatukan proses pengemasan, penyebaran dan manajemen siklus hidup dari aplikasi yang didistribusikan berdasarkan Kubernetes, Helm, Swarm, dll., Menggunakan format paket tunggal. Paket-paket ini didasarkan pada JSON dan OpenPGP.
Menggunakan Cloud Native Application Bundle, pengembang mendapatkan kesempatan untuk menyebarkan aplikasinya baik di workstation lokal maupun di cloud publik. Setiap raksasa IT memperkenalkan alatnya sendiri, yang menunjukkan kemampuan spesifikasi. Di Microsoft, solusi ini adalah klien
Duffle ; di Docker,
aplikasi Docker .
Contohnya
Seperti yang kami katakan di atas, spesifikasi mendefinisikan metode untuk pengemasan aplikasi terdistribusi dari berbagai format. CNAB menyertakan
definisi paket (bundle.json) untuk menjelaskan aplikasi, serta gambar khusus (
gambar doa ) untuk menginstalnya. Definisi paket terlihat seperti ini (contoh deskripsi ada di
repositori resmi di GitHub ):
{ "schemaVersion": "v1.0.0-WD", "name": "helloworld", "version": "0.1.2", "description": "An example 'thin' helloworld Cloud-Native Application Bundle", "maintainers": [ { "name": "Matt Butcher", "email": "technosophos@gmail.com", "url": "https://example.com" } ], "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aaaaaaa..." } ], "images": [ { "image": "technosophos/microservice:1.2.3", "description": "my microservice", "digest": "sha256:aaaaaaaaaaaa...", "uri": "urn:image1uri", "refs": [ { "path": "image1path", "field": "image.1.field" } ] } ], "parameters": { "backend_port" : { "type" : "int", "defaultValue": 80, "minValue": 10, "maxValue": 10240, "metadata": { "description": "The port that the back-end will listen on" } } }, "credentials": { "kubeconfig": { "path": "/home/.kube/config", }, "image_token": { "env": "AZ_IMAGE_TOKEN", }, "hostkey": { "path": "/etc/hostkey.txt", "env": "HOST_KEY" } } }
Blok ini menjelaskan parameter dari paket dengan aplikasi dan memberikan informasi di mana "mencari" untuk gambar yang diinstal (format harus docker atau oci). Selain itu, definisi menunjukkan ukuran gambar dalam byte, platform di mana ia akan bekerja, serta arsitektur dan sistem operasi.
Dan di sini gambar itu sendiri dijelaskan secara langsung:
"invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aca460afa270d4c527981ef9ca4989346c56cf9b20217dcea37df1ece8120685" } ]
Tugasnya adalah menginstal komponen yang diperlukan untuk pekerjaan. Komponen-komponen ini dapat berupa wadah, fungsi, mesin virtual, dan kerangka kerja layanan.
Pengembang dari Microsoft menyiapkan
video terpisah di mana mereka memberi tahu cara bekerja dengan standar dan memberikan beberapa contoh kode nyata.
Apa yang dipikirkan komunitas TI
CNAB bukan satu-satunya solusi manajemen siklus hidup aplikasi cloud. Misalnya, untuk Kubernet yang sama ada manajer Crossplane dan manajer paket Helm. Namun, CNAB adalah solusi pertama yang mencakup beberapa alat populer sekaligus dan platform independen. Ngomong-ngomong, CNAB juga dapat bekerja dengan Helm: bahkan ada
contoh yang sesuai di GitHub.
Karena fleksibilitas ini, komunitas TI sangat antusias dengan spesifikasi baru. Salah satu pendiri Kubernetes - Brendan Burns -
mencatat bahwa menginstal aplikasi terdistribusi menggunakan CNAB mirip dengan menginstal aplikasi dari flash drive biasa. Menurutnya, itu sama mudahnya.
Tetapi tidak semua orang yakin akan keberhasilan solusi baru. Beberapa pengguna khawatir bahwa CNAB sedang menunggu nasib manajer paket lain yang, karena kurangnya operator (seperti di Kubernetes), dilupakan. Untuk menghilangkan keraguan dan mendiskusikan semua fungsi yang mungkin, salah satu pembuat solusi bergabung dengan
utas tematik di Hacker News . Dia menjawab semua pertanyaan dari penghuni situs dan mendengarkan proposal untuk pengembangan.
Sejauh ini, CNAB
sedang dalam tahap aktif pengembangan . Baik Microsoft dan Docker mengundang semua pengembang untuk bergabung dengan mereka untuk menyelesaikan spesifikasi dan merilisnya ke dalam produksi. Sepasang raksasa TI bermaksud menjadikan alat baru ini sebagai standar industri. Pada saat yang sama, perwakilan dari kedua perusahaan berharap bahwa seiring waktu Bundel Aplikasi Cloud Native akan berkembang secara mandiri, terlepas dari pembuatnya.
Posting dari blog perusahaan kami:
Posting dari saluran Telegram kami: