Razumijevanje registra Azure spremnika

Kad dođete do kraja cjevovoda za izgradnju devops-a, ostaje vam niz artefakata: binarne datoteke, konfiguracijske datoteke, web stranice, čak i virtualni strojevi i spremnici. Oni su komponente koje zajedno stvaraju modernu aplikaciju. Umotavanje što većeg broja tih komponenata u spremnik ima puno smisla dajući vam jednostavniji model implementacije. Ali to ostavlja novi set pitanja: Kako upravljate tim spremnicima i kako ih raspoređujete u globalnoj aplikaciji u oblaku?

Usluge poput GitHub nude privatne i javne registre za vaše artefakte gradnje, koristeći otvorene standarde i otvoreni izvorni kod. Azure je učinio isto, koristeći otvoreni izvor Docker Registry 2.0 kao osnovu za vlastiti registar spremnika, u skladu s Open Container Initiative. Nije namijenjen samo za kontejnere; s rastućom važnošću aplikacija zasnovanih na Kubernetesu u oblaku, zamišljeno je da bude skladište na jednom mjestu za sve vaše artefakte gradnje koji su u skladu s OCI-jem. To sada uključuje Helmove ljestvice, tako da Azureov registar spremnika (ACR) možete koristiti kao središte postavljanja za svoje aplikacije, koristeći Helm 3.0 za isporuku instancama Kubernetesa.

Početak rada s ACR-om

Alate poput Azure Container Registry najbolje je smatrati privatnim registrima. Samo vi i vaš tim i usluge imate pristup svom registru, automatizirajući isporuku Azure uslugama koje koriste spremnike. Poznati alati poput Azure DevOps i Jenkins mogu se konfigurirati da koriste Registar kao završnu točku izrade, tako da možete prijeći iz spajanja zahtjeva za povlačenje u spremnik na Azureu, spreman za implementaciju.

Microsoft trenutno nudi tri verzije ACR-a: Basic, Standard i Premium, po tri različite cijene. Svi oni rade s web kukama, koriste Azure Active Directory za provjeru autentičnosti i imaju mogućnost brisanja slika. Basic ima najmanji kapacitet; Premium uključuje podršku za replikaciju u svim regijama i dodaje podršku za potpisivanje slika. Najvjerojatnije ćete koristiti Standard koji vam daje 100 GB prostora za pohranu, propusnost za preuzimanje od 60 MB / s i podržava čak 10 web kuka. Cijene su prema registru dnevno, s dodatnim mrežnim troškovima i odvojenom naknadom za upotrebu procesora prilikom izrade novih slika spremnika.

Stvaranje novog registra spremnika relativno je jednostavno, koristeći Azure CLI ili Portal. ACR instance povezane su s grupama resursa, tako da možete imati zasebni registar za svaku aplikaciju koju pokrenete na Azureu. Jednom kada je registar stvoren, dobit ćete URL poslužitelja za prijavu. Ovo je krajnja točka za integraciju s alatima devops ili instalacijskim primjercima Dockera za programere.

Interakcija s ACR registrom

Naredba Azure CLI- acra vjerojatno je najkorisniji način interakcije s registrom. Prijavite se i na njega možete početi gurati slike spremnika. Dobro je započeti s radne površine da biste stekli osjećaj kako to funkcionira, označivanjem lokalne Dockerove slike imenom ACR poslužitelja za prijavu, a zatim pomoću docker pushnaredbe za slanje slike u ACR registar, automatski kreirajući odgovarajuće spremište u Azureu. Jednom kad se slika nalazi u ACR spremištu, upotrijebite alate naredbenog retka za popis datoteka, uklanjanje i čak korištenje naredbi Docker za njihovo pokretanje.

Automatizacija ACR-a može znatno smanjiti vaše radno opterećenje, koristeći ACR zadatke. Zadaci grupiraju ono što bi bio skup Azure CLI skripti u jednostavne tijekove rada koji upravljaju uobičajenim operacijama. Na primjer, nude niz okidača koji automatiziraju izradu novih slika kada se promjene dogode u vašem cjevovodu gradnje ili u vašem sustavu kontinuirane integracije / kontinuirane isporuke (CI / CD).

Jedna opcija, brzi zadatak, objedinjuje sve faze korištene za izgradnju skupa datoteka u spremnik u jednu naredbu. Sve što vam treba je radni direktorij s datotekama i postojeći ACR registar i Dockerfile. Jedna naredba uzima te datoteke i koristi Dockerfile za stvaranje slike, automatski je spremajući u ACR spremište. Još jedan brzi zadatak pokreće sliku na odabranom hostu.

Sastavite ih i imate osnovni set alata za testiranje slika spremnika. Složenije implementacije trebat će složenije skripte - na primjer, postavljanje spremnika u upravljanu Kubernetesovu instancu pomoću AKS. Alternativno, možete automatizirati cijeli postupak, stvarajući zadatak koji nadgleda GitHubov repo za promjene u grani implementacije, gradeći novu sliku kada spajate zahtjev za povlačenjem u granu ili izvršite predavanje.

Osiguranje spremnika u ACR-u

Rad s ACR-om ima sigurnosne prednosti. Jedan od velikih problema s kojima se suočava svatko tko gradi moderne programe je razumijevanje i upravljanje vašim stablom ovisnosti. Kako znati je li nova verzija knjižnice ključeva ili zamućena komponenta sigurna za upotrebu? Morate biti sposobni vjerovati svojim spremnicima, a ACR nudi dva načina kako osigurati da uvijek implementirate pouzdani kôd.

Prvo, pruža potpisane slike spremnika, tako da vaš Kubernetes klaster može provjeriti je li kôd koji se izvodi kod koji ste gurnuli u svoj registar iz vašeg sustava za izgradnju. Potpisane slike osiguravaju da nitko nije promijenio sadržaj spremnika dok je postavljen. Drugo, ACR se može integrirati s Azureovim sigurnosnim centrom. To vam omogućuje skeniranje slika dok su pohranjene u registru, provjeravajući ne samo ranjivosti u vašem kodu i na osnovnoj slici, već i sve ovisnosti koje su uključene ili su upućene iz slikovne datoteke. Korištenjem Qualysovog skenera, izvješća Sigurnosnog centra pomoći će vam identificirati ranjivosti i dati preporuke za ispravke.

Stvari postaju zanimljive kad započnete koristiti svoje instance ACR-a za više od spremnika. OCI je započeo otvaranje standarda registra za artefakte, uz Helm, de facto alat za implementaciju Kubernetesove aplikacije, koji ga koristi u najnovijem izdanju. Industrija je zabilježila mnoštvo registara i spremišta, i ima smisla standardizirati jedan za sve komponente vašeg programa, posebno kada su svi dio iste aplikacije koja je izvorna za oblak.

ACR sada podržava OCI Registry As Storage (ORAS). Pomoću ORAS alata možete gurnuti i izvući sve svoje artefakte iz istog ACR spremišta. Instalirajte ORAS na vaše programere ili dodajte podršku vašem cjevovodu za izgradnju. Nakon što se prijavite u svoj registar s nalogodavcem usluge Azure Active Directory koji ima prava na guranje, upotrijebite alat naredbenog retka ORAS za guranje novih artefakata u registar.

Korištenje alata za naredbene retke u Azure CLI-u daje vam fleksibilnost za izradu ORAS-a, guranje po vašem izboru alata za izgradnju, kao skripte koja se može nazvati po potrebi. Isti alat naredbenog retka može izvlačiti artefakte, a možete ga ugraditi u svoje skripte za postavljanje tako da se sve komponente koje čine vaše aplikacije mogu automatski implementirati kada nova gradnja gura u vaša ACR spremišta.

Privatnom kodu trebaju privatna spremišta, a čuvanje vaših spremnika i ostalih artefakata gradnje u Azureu stavlja ih tamo gdje su potrebni. Kompletni postupak gradnje devops-a trebao bi prijeći od predavanja koda do pokretanja aplikacije bez ljudske intervencije, čineći alate poput Azure Container Registry-a i s njim povezanu automatizaciju zadataka bitnim komponentama u bilo kojem Azure-ciljanom cjevovodu. Ne samo da se kod automatski pohranjuje i primjenjuje na globalnoj razini, on se skenira radi sigurnosnih rizika svaki put kad dođe do promjene.