Memahami Azure Container Registry

Apabila anda sampai ke akhir saluran pembangunan devops, Anda akan tinggal dengan satu set artifak: binari, fail konfigurasi, halaman Web, bahkan mesin maya dan bekas. Mereka adalah komponen yang bersama-sama membina aplikasi moden. Membungkus seberapa banyak komponen tersebut ke dalam wadah masuk akal, memberikan anda model penggunaan yang lebih mudah. Tetapi itu meninggalkan satu set pertanyaan baru: Bagaimana anda menguruskan wadah tersebut dan bagaimana anda menyebarkannya di aplikasi awan berskala global?

Perkhidmatan seperti GitHub menawarkan pendaftar peribadi dan awam untuk artifak binaan anda, menggunakan standard terbuka dan kod sumber terbuka. Azure telah melakukan hal yang sama, menggunakan open source Docker Registry 2.0 sebagai asas untuk pendaftaran kontena sendiri, sesuai dengan Open Container Initiative. Ia tidak bertujuan hanya untuk bekas; dengan semakin pentingnya aplikasi cloud-based berasaskan Kubernetes, ini bertujuan untuk menjadi repositori sehenti untuk semua artifak binaan yang mematuhi OCI anda. Itu sekarang merangkumi carta Helm, jadi anda boleh menggunakan Azure's Container Registry (ACR) sebagai hub penyebaran untuk aplikasi anda, menggunakan Helm 3.0 untuk penghantaran ke contoh Kubernetes.

Bermula dengan ACR

Alat seperti Azure Container Registry dianggap terbaik sebagai pendaftar peribadi. Hanya anda dan pasukan dan perkhidmatan anda yang mempunyai akses ke pendaftaran anda, mengautomasikan penghantaran ke perkhidmatan Azure yang menggunakan kontena. Alat yang dikenali seperti Azure DevOps dan Jenkins dapat dikonfigurasi untuk menggunakan Registry sebagai titik akhir binaan, jadi anda boleh langsung dari menggabungkan permintaan tarik ke wadah di Azure, siap untuk digunakan.

Microsoft kini menawarkan tiga versi ACR: Basic, Standard, dan Premium, pada tiga titik harga yang berbeza. Mereka semua bekerja dengan cangkuk Web, menggunakan Direktori Aktif Azure untuk pengesahan, dan mempunyai keupayaan untuk menghapus gambar. Asas mempunyai kapasiti paling rendah; Premium merangkumi sokongan untuk replikasi di seluruh wilayah dan menambah sokongan penandatanganan gambar. Anda kemungkinan besar menggunakan Standard, yang memberi anda storan 100GB, lebar jalur muat turun 60MBps, dan menyokong sebanyak 10 cangkuk Web. Harga adalah per pendaftaran setiap hari, dengan tambahan kos rangkaian dan caj yang berasingan untuk penggunaan CPU ketika membuat gambar kontena baru.

Membuat pendaftaran kontena baru agak mudah, dengan menggunakan Azure CLI atau Portal. Contoh ACR dikaitkan dengan kumpulan sumber, jadi anda boleh mempunyai pendaftaran terpisah untuk setiap aplikasi yang anda jalankan di Azure. Setelah pendaftaran dibuat, anda akan diberi URL pelayan log masuk. Ini adalah titik akhir untuk penyatuan dengan alat devops atau contoh Docker desktop pemaju anda.

Berinteraksi dengan pendaftaran ACR

Perintah Azure CLI acrmungkin merupakan kaedah yang paling berguna untuk berinteraksi dengan pendaftaran. Log masuk dan anda boleh mula mendorong gambar bekas ke dalamnya. Adalah idea yang baik untuk memulakan dari desktop untuk merasakan bagaimana cara kerjanya, menandakan gambar Docker tempatan dengan nama pelayan log masuk ACR dan kemudian menggunakan docker pushperintah untuk menghantar gambar ke pendaftaran ACR, secara automatik membuat repositori yang sesuai di Azure. Setelah gambar berada di repositori ACR, gunakan alat baris perintah untuk menyenaraikan fail, membuangnya, dan bahkan menggunakan perintah Docker untuk menjalankannya.

Mengautomasikan ACR dapat mengurangkan beban kerja anda dengan banyak, menggunakan Tugas ACR. Tugas menggabungkan apa yang akan menjadi sekumpulan skrip Azure CLI ke dalam aliran kerja sederhana yang menguruskan operasi biasa. Sebagai contoh, mereka menawarkan serangkaian pencetus yang mengotomatisasi pembuatan gambar baru apabila perubahan berlaku pada saluran paip bangunan anda atau dalam sistem penyatuan / penghantaran berterusan (CI / CD) berterusan anda.

Satu pilihan, tugas cepat, membungkus semua tahap yang digunakan untuk membangun satu set fail ke dalam wadah menjadi satu perintah. Yang anda perlukan adalah direktori yang berfungsi dengan fail anda dan pendaftaran ACR yang ada dan Dockerfile. Satu arahan mengambil fail tersebut dan menggunakan Dockerfile untuk membuat gambar, menyimpannya secara automatik di repositori ACR. Tugas cepat lain menjalankan gambar pada hos pilihan anda.

Kumpulkan dan anda mempunyai satu set alat asas untuk menguji gambar bekas. Penyebaran yang lebih kompleks akan memerlukan skrip yang lebih kompleks — misalnya menyebarkan wadah ke instance Kubernetes yang dikendalikan menggunakan AKS. Sebagai alternatif, anda boleh mengotomatisasi keseluruhan proses, membuat tugas yang memantau repo GitHub untuk perubahan dalam cabang penyebaran, membina gambar baru ketika anda menggabungkan permintaan tarik ke cabang atau membuat komitmen.

Melindungi bekas dalam ACR

Terdapat faedah keselamatan untuk bekerja dengan ACR. Salah satu masalah besar yang dihadapi oleh sesiapa sahaja yang membina aplikasi moden adalah memahami dan menguruskan pokok pergantungan anda. Bagaimana anda tahu jika versi baru pustaka utama atau komponen kabur selamat digunakan? Anda perlu mempercayai bekas anda, dan ACR menawarkan dua cara untuk memastikan anda sentiasa menggunakan kod yang dipercayai.

Pertama, ia menyediakan gambar bekas yang ditandatangani, jadi kluster Kubernetes anda dapat mengesahkan bahawa kod yang sedang dijalankan adalah kod yang anda tolak ke registri dari sistem binaan anda. Gambar yang ditandatangani memastikan bahawa tidak ada yang merusak isi kontena semasa ia disebarkan. Kedua, ACR dapat berintegrasi dengan Pusat Keselamatan Azure. Ini membolehkan anda mengimbas gambar kerana disimpan di registri, memeriksa tidak hanya kerentanan dalam kod dan gambar asas, tetapi juga pada setiap ketergantungan yang disertakan atau dirujuk dari file gambar. Dengan menggunakan pengimbas Qualys, laporan Pusat Keselamatan akan membantu anda mengenal pasti kelemahan dengan cadangan untuk memperbaiki.

Perkara menjadi menarik apabila anda mula menggunakan contoh ACR lebih daripada bekas. OCI telah mulai membuka standard pendaftaran untuk artifak, dengan Helm, alat de facto untuk penyebaran aplikasi Kubernetes, menggunakannya dalam siaran terbaru. Industri telah melihat percambahan daftar dan repositori, dan masuk akal untuk menyeragamkan satu untuk semua komponen aplikasi anda, terutama ketika mereka semua merupakan bagian dari aplikasi asli cloud yang sama.

ACR kini menyokong OCI Registry As Storage (ORAS). Dengan menggunakan alat ORAS, anda boleh mendorong dan menarik semua artifak anda dari repositori ACR yang sama. Pasang ORAS pada mesin pembangun anda atau tambahkan sokongan ke saluran paip binaan anda. Setelah log masuk ke pendaftaran anda dengan prinsipal perkhidmatan Direktori Aktif Azure yang mempunyai hak tolak, gunakan alat baris perintah ORAS untuk mendorong artifak baru ke pendaftaran.

Menggunakan alat baris perintah di Azure CLI memberi anda fleksibiliti untuk membangun ORAS ke dalam pilihan alat binaan anda, sebagai skrip yang dapat disebut bila dan bila diperlukan. Alat baris perintah yang sama dapat menarik artifak, dan anda dapat memasukkannya ke dalam skrip penyebaran anda sehingga semua komponen yang membentuk aplikasi anda dapat digunakan secara automatik ketika build baru mendorong ke repositori ACR anda.

Kod peribadi memerlukan repositori peribadi, dan menyimpan bekas anda dan artifak binaan lain di Azure meletakkannya di tempat yang diperlukan. Proses build devops yang lengkap harus bermula dari komit kod ke menjalankan aplikasi tanpa campur tangan manusia, membuat alat seperti Azure Container Registry dan automasi tugas yang berkaitan dengan komponen penting dalam saluran paip yang disasarkan oleh Azure. Kod tidak hanya disimpan dan digunakan secara automatik pada skala global, tetapi juga dikesan akan risiko keselamatan setiap kali ada perubahan.