Programmēšana

Izpratne par Azure konteineru reģistru

Kad esat nonācis pie devops būvniecības cauruļvada beigām, jums paliek artefaktu komplekts: bināros failus, konfigurācijas failus, tīmekļa lapas, pat virtuālās mašīnas un konteinerus. Tie ir komponenti, kas kopā veido modernu lietojumprogrammu. Iesaiņojot pēc iespējas vairāk no šiem komponentiem konteinerā, ir daudz jēgas, dodot jums vienkāršāku izvietošanas modeli. Bet tas atstāj jaunu jautājumu kopumu: kā jūs pārvaldāt šos konteinerus un kā tos izvietot globāla mēroga mākoņa lietojumprogrammā?

Tādi pakalpojumi kā GitHub piedāvā privātus un publiskus reģistrus jūsu būvniecības artefaktiem, izmantojot atvērtos standartus un atvērtā pirmkoda kodu. Azure ir darījusi to pašu, izmantojot atvērtā koda Docker Registry 2.0 kā pamatu savam konteineru reģistram, kas atbilst Open Container Initiative. Tas nav paredzēts tikai konteineriem; palielinoties Kubernetes bāzēto mākoņdatošanas lietojumu nozīmei, tas ir domāts kā vienas pieturas krātuve visiem jūsu OCI saderīgajiem būvēšanas artefaktiem. Tajā tagad ir iekļautas Helm diagrammas, tāpēc kā lietojumprogrammu izvietošanas centru varat izmantot Azure konteineru reģistru (ACR), piegādei Kubernetes instancēm izmantojot Helm 3.0.

Darba sākšana ar ACR

Tādus rīkus kā Azure Container Registry vislabāk var uzskatīt par privātiem reģistriem. Tikai jums, jūsu komandai un pakalpojumiem ir piekļuve jūsu reģistram, automatizējot piegādi Azure pakalpojumiem, kas izmanto konteinerus. Pazīstamus rīkus, piemēram, Azure DevOps un Jenkins, var konfigurēt, lai reģistru izmantotu kā būvēšanas beigu punktu, lai jūs varētu pāriet no vilkšanas pieprasījuma apvienošanas uz Azure konteineru, kas ir gatavs izvietošanai.

Pašlaik Microsoft piedāvā trīs ACR versijas: Basic, Standard un Premium, par trim dažādiem cenu punktiem. Viņi visi strādā ar tīmekļa āķiem, autentifikācijai izmanto Azure Active Directory un spēj izdzēst attēlus. Basic ir vismazākā jauda; Premium ietver atbalstu replikācijai visos reģionos un papildina attēlu parakstīšanas atbalstu. Jūs, visticamāk, izmantosit Standard, kas nodrošina 100 GB krātuves, 60 MB / s lejupielādes joslas platumu un atbalsta pat 10 tīmekļa āķus. Cenas ir par katru reģistru dienā, par papildu tīkla izmaksām un atsevišķu maksu par CPU izmantošanu, veidojot jaunus konteinera attēlus.

Jauna konteinera reģistra izveide ir samērā vienkārša, izmantojot Azure CLI vai Portālu. ACR gadījumi ir piesaistīti resursu grupām, tāpēc jums var būt atsevišķs reģistrs katrai lietojumprogrammai, kuru palaižat Azure. Kad reģistrs ir izveidots, jums tiek piešķirts pieteikšanās servera URL. Šis ir beigu punkts integrācijai ar Devops rīkiem vai jūsu izstrādātāju darbvirsmas Docker gadījumiem.

Mijiedarbība ar ACR reģistru

Azure CLI acr komanda, iespējams, ir visnoderīgākais veids, kā mijiedarboties ar reģistru. Piesakieties un varat sākt tajā ievietot konteinera attēlus. Ieteicams sākt no darbvirsmas, lai sajustu, kā tas darbojas, iezīmējot vietējo Docker attēlu ar ACR pieteikšanās servera nosaukumu un pēc tam izmantojot dokera grūdiens komandu nosūtīt attēlu uz ACR reģistru, automātiski izveidojot atbilstošo krātuvi Azure. Kad attēls atrodas ACR krātuvē, izmantojiet komandrindas rīkus, lai sarakstītu failus, tos noņemtu un pat izmantotu Docker komandas, lai tos palaistu.

ACR automatizēšana var ievērojami samazināt jūsu darba slodzi, izmantojot ACR uzdevumus. Uzdevumi apvieno Azure CLI skriptu komplektu vienkāršās darbplūsmās, kas pārvalda kopīgas darbības. Piemēram, tie piedāvā virkni aktivizētāju, kas automatizē jaunu attēlu veidošanu, kad izmaiņas notiek jūsu būvēšanas cauruļvadā vai nepārtrauktas integrācijas / nepārtrauktas piegādes (CI / CD) sistēmā.

Viena opcija - ātrais uzdevums - vienā komandā iesaiņo visus posmus, kas izmantoti failu kopas izveidošanai konteinerā. Viss, kas jums nepieciešams, ir darba direktorijs ar failiem, esošais ACR reģistrs un Dockerfile. Viena komanda paņem šos failus un izmanto Dockerfile, lai izveidotu attēlu, automātiski saglabājot to ACR repozitorijā. Vēl viens ātrs uzdevums attēlo jūsu izvēlēto resursdatoru.

Salieciet tos kopā, un jums ir pamata rīku komplekts konteineru attēlu pārbaudei. Sarežģītākai izvietošanai būs nepieciešami sarežģītāki skripti, piemēram, konteinera izvietošana pārvaldītā Kubernetes instancē, izmantojot AKS. Alternatīvi, jūs varat automatizēt visu procesu, izveidojot uzdevumu, kas uzrauga GitHub repo par izmaiņām izvietošanas filiālē, izveidojot jaunu attēlu, kad filiālē apvienojat ievilkšanas pieprasījumu vai veicat saistības.

Konteineru nostiprināšana ACR

Strādājot ar ACR, ir drošības priekšrocības. Viena no lielākajām problēmām, ar kuru saskaras ikviens, kurš veido modernas lietojumprogrammas, ir izpratne un pārvaldība jūsu atkarības kokam. Kā uzzināt, vai atslēgu bibliotēkas vai neskaidra komponenta jaunu versiju ir droši lietot? Jums jāprot uzticēties savam konteineram, un ACR piedāvā divus veidus, kā vienmēr nodrošināt uzticama koda izvietošanu.

Pirmkārt, tas nodrošina parakstītus konteinera attēlus, lai jūsu Kubernetes kopa varētu pārbaudīt, vai palaistais kods ir kods, kuru jūs no sava būvēšanas sistēmas ievadījāt reģistrā. Parakstītie attēli nodrošina, ka neviens netiek traucēts ar konteinera saturu, kamēr tas tiek izvietots. Otrkārt, ACR var integrēt ar Azure drošības centru. Tas ļauj skenēt attēlus tā, kā tie ir saglabāti reģistrā, pārbaudot ne tikai koda un bāzes attēla vājās vietas, bet arī visas atkarības, kas ir iekļautas vai ir norādītas no attēla faila. Izmantojot Qualys skeneri, Drošības centra pārskati palīdzēs jums noteikt ievainojamības un ieteikumus par labojumiem.

Lietas kļūst interesantas, kad sākat izmantot ACR gadījumus vairāk nekā konteineriem. OCI ir sākusi reģistra standarta atvēršanu artefaktiem, izmantojot Helm, kas ir Kubernetes lietojumprogrammu izvietošanas faktiskais rīks, izmantojot to jaunākajā laidienā. Šajā nozarē reģistru un krātuvju skaits ir palielinājies, un ir lietderīgi standartizēt vienu visiem jūsu lietojumprogrammu komponentiem, it īpaši, ja tie visi ir vienas mākoņa vietējās lietojumprogrammas daļa.

ACR tagad atbalsta OCI reģistru kā krātuvi (ORAS). Izmantojot ORAS rīku, jūs varat pārvietot un izvilkt visus savus artefaktus no tā paša ACR repozitorija. Instalējiet ORAS izstrādātāja mašīnās vai pievienojiet atbalstu savam būvniecības cauruļvadam. Kad esat pierakstījies savā reģistrā ar Azure Active Directory pakalpojuma galveno, kuram ir push tiesības, izmantojiet ORAS komandrindas rīku, lai reģistrā virzītu jaunus artefaktus.

Izmantojot komandrindas rīku Azure CLI, varat elastīgi veidot ORAS push izvēlētajā būvniecības rīku izvēlē kā skriptu, kuru var izsaukt pēc vajadzības. Tas pats komandrindas rīks var izvilkt artefaktus, un jūs varat tos ievietot izvietošanas skriptos, lai visi komponenti, kas veido jūsu lietojumprogrammas, varētu automātiski izvietot, kad jauna būvēšana tiek virzīta uz jūsu ACR krātuvēm.

Privātajam kodam ir nepieciešami privāti krātuves, un, saglabājot konteinerus un citus būvmateriālu artefaktus Azure, tie tiek ievietoti tur, kur tie ir nepieciešami. Pilnīgam devops izveides procesam vajadzētu pāriet no koda saistīšanas uz lietojumprogrammas palaišanu bez cilvēka iejaukšanās, padarot tādus rīkus kā Azure Container Registry un ar to saistīto uzdevumu automatizāciju būtiskus komponentus jebkurā Azure mērķtiecīgā cauruļvadā. Kods tiek ne tikai automātiski glabāts un izvietots globālā mērogā, bet arī ikreiz, kad tiek veiktas izmaiņas, tas tiek skenēts, ņemot vērā drošības riskus.