Programování

Principy Azure Container Registry

Když se dostanete na konec kanálu sestavení devops, zůstane vám sada artefaktů: binární soubory, konfigurační soubory, webové stránky, dokonce i virtuální stroje a kontejnery. Jsou to komponenty, které společně vytvářejí moderní aplikaci. Zabalení co největšího počtu těchto komponent do kontejneru má velký smysl a poskytuje vám jednodušší model nasazení. Ale to ponechává novou sadu otázek: Jak spravujete tyto kontejnery a jak je nasazujete v cloudové aplikaci v globálním měřítku?

Služby, jako je GitHub, nabízejí soukromé a veřejné registry pro vaše artefakty sestavení pomocí otevřených standardů a otevřeného zdrojového kódu. Azure udělal totéž, když jako základ pro svůj vlastní registr kontejnerů použil open source Docker Registry 2.0, kompatibilní s iniciativou Open Container Initiative. Není zamýšleno pouze pro kontejnery; s rostoucím významem cloudových nativních aplikací založených na Kubernetes má být jednotným úložištěm pro všechny vaše artefakty sestavení kompatibilní s OCI. To nyní zahrnuje Helmovy grafy, takže můžete použít Azure Container Registry (ACR) jako centrum nasazení pro vaše aplikace pomocí Helm 3.0 pro doručování do instancí Kubernetes.

Začínáme s ACR

Nástroje jako Azure Container Registry se nejlépe považují za soukromé registry. Pouze vy a váš tým a služby máte přístup k vašemu registru a automatizujete doručování do služeb Azure, které používají kontejnery. Familiar tools such as Azure DevOps and Jenkins can be configured to use the Registry as a build end point, so you can go straight from merging a pull request to a container on Azure, ready to deploy.

Microsoft v současné době nabízí tři verze ACR: Basic, Standard a Premium ve třech různých cenových bodech. Všichni pracují s webovými háčky, používají k ověřování Azure Active Directory a mají schopnost mazat obrázky. Basic má nejnižší kapacitu; Premium zahrnuje podporu replikace napříč regiony a přidává podporu podepisování obrázků. S největší pravděpodobností použijete Standard, který vám poskytne 100 GB úložiště, šířku pásma stahování 60 Mb / s a ​​podporuje až 10 webových háčků. Cena je za registr za den, s dalšími síťovými náklady a samostatným poplatkem za využití procesoru při vytváření nových obrazů kontejnerů.

Vytvoření nového registru kontejnerů je poměrně snadné, buď pomocí rozhraní příkazového řádku Azure nebo portálu. Instance ACR jsou svázány se skupinami prostředků, takže pro každou aplikaci spuštěnou v Azure můžete mít samostatný registr. Jakmile je registr vytvořen, dostanete adresu URL přihlašovacího serveru. Toto je koncový bod pro integraci s nástroji devops nebo instancemi Docker vašich vývojářů na ploše.

Interakce s registrem ACR

Azure CLI akr příkaz je pravděpodobně nejužitečnějším způsobem interakce s registrem. Přihlaste se a můžete do něj začít tlačit obrázky kontejneru. Je dobré začít z plochy, abyste získali představu o tom, jak to funguje, označit místní obraz Dockeru názvem přihlašovacího serveru ACR a poté použít docker push příkaz k odeslání obrazu do registru ACR, automatické vytvoření příslušného úložiště v Azure. Jakmile je obrázek v úložišti ACR, použijte nástroje příkazového řádku k vypsání souborů, jejich odstranění a ke spuštění je můžete použít dokonce pomocí příkazů Dockeru.

Automatizace ACR může pomocí úlohy ACR výrazně snížit vaši pracovní zátěž. Tasks bundle up what would have been a set of Azure CLI scripts into simple workflows that manage common operations. Například nabízejí řadu spouštěčů, které automatizují vytváření nových obrazů, když dojde ke změnám ve vašem kanálu sestavení nebo ve vašem systému nepřetržité integrace / nepřetržitého doručování (CI / CD).

Jedna z možností, rychlý úkol, zabalí všechny fáze použité k vytvoření sady souborů do kontejneru do jediného příkazu. Vše, co potřebujete, je pracovní adresář se soubory a existující registr ACR a soubor Dockerfile. Jeden příkaz tyto soubory převezme a pomocí souboru Docker vytvoří obrázek, který jej automaticky uloží do úložiště ACR. Další rychlý úkol spustí obrázek na vybraném hostiteli.

Spojte je a máte základní sadu nástrojů pro testování obrázků kontejnerů. Složitější nasazení budou vyžadovat složitější skripty - například nasazení kontejneru do spravované instance Kubernetes pomocí AKS. Alternativně můžete automatizovat celý proces, vytvořit úkol, který sleduje repozitář GitHub na změny ve větvi nasazení, vytvářet nový obraz při sloučení požadavku na vytažení do větve nebo provedení potvrzení.

Zajištění kontejnerů v ACR

Práce s ACR má bezpečnostní výhody. Jedním z velkých problémů, kterým čelí kdokoli při vytváření moderních aplikací, je pochopení a správa stromu závislostí. Jak víte, zda je bezpečné používat novou verzi knihovny klíčů nebo popletenou součást? Musíte být schopni věřit svým kontejnerům a ACR nabízí dva způsoby, jak zajistit, že vždy nasadíte důvěryhodný kód.

Nejprve poskytuje podepsané bitové kopie kontejneru, takže váš klastr Kubernetes může ověřit, že kód, který běží, je kód, který jste odeslali do svého registru ze svého systému sestavení. Podepsané obrázky zajišťují, že nikdo během nasazení nezměnil obsah kontejneru. Zadruhé, ACR se může integrovat s Centrem zabezpečení Azure. To vám umožní skenovat obrázky tak, jak jsou uloženy v registru, a kontrolovat nejen chyby zabezpečení v kódu a v základním obrázku, ale také ve všech závislostech, které jsou zahrnuty nebo jsou odkazovány ze souboru obrázku. Pomocí skeneru Qualys vám zprávy Centra zabezpečení pomohou identifikovat chyby zabezpečení s doporučeními pro opravy.

Věci se stanou zajímavými, když začnete používat instance ACR pro více než kontejnery. OCI začala otevírat standard registru pro artefakty, přičemž Helm, de facto nástroj pro nasazení aplikací Kubernetes, jej používá v nejnovější verzi. V tomto odvětví došlo k množení registrů a úložišť a má smysl standardizovat jeden pro všechny komponenty vaší aplikace, zejména když jsou všechny součástí stejné cloudové nativní aplikace.

ACR nyní podporuje OCI Registry As Storage (ORAS). Pomocí nástroje ORAS můžete tlačit a vytáhnout všechny své artefakty ze stejného úložiště ACR. Nainstalujte ORAS na své vývojářské stroje nebo přidejte podporu do svého kanálu sestavení. Po přihlášení k registru pomocí instančního objektu Azure Active Directory, který má práva push, použijte nástroj příkazového řádku ORAS k odeslání nových artefaktů do registru.

Použití nástroje příkazového řádku v rozhraní příkazového řádku Azure vám dává flexibilitu při vytváření nástroje ORAS push do vašeho výběru nástrojů pro sestavení, jako skript, který lze volat podle potřeby. Stejný nástroj příkazového řádku může vytáhnout artefakty a můžete jej zabudovat do skriptů nasazení, aby se všechny komponenty, které tvoří vaše aplikace, mohly automaticky nasadit, když nové sestavení tlačí do vašich úložišť ACR.

Soukromý kód potřebuje soukromá úložiště a udržování vašich kontejnerů a dalších artefaktů sestavení v Azure je staví tam, kde jsou potřeba. Kompletní proces sestavení devops by měl přejít od potvrzení kódu ke spuštění aplikace bez zásahu člověka, takže nástroje, jako je Azure Container Registry a jeho přidružené úlohy automatizace základních komponent v libovolném kanálu zaměřeném na Azure. Nejen, že je kód automaticky uložen a nasazen v globálním měřítku, ale je také vyhledáván bezpečnostní rizika pokaždé, když dojde ke změně.