Pochopení prostředí

Dokončeno

Kanály nasazení umožňují automatizovat kroky v procesu nasazení. Často je potřeba spustit kroky v několika samostatných prostředích. Ve vaší společnosti toy chcete před nasazením změn do produkčního prostředí zkontrolovat změny kódu.

V této lekci se dozvíte, jak prostředí ve službě Azure Pipelines pomáhají podporovat vlastní pracovní postup.

Proč máte více prostředí?

Procesy nasazení mění prostředky Azure, včetně prostředků, které se používají. Změna prostředků zahrnuje určité riziko, protože změny, které nasazujete, se nemusí chovat podle očekávání. Můžete dokonce zjistit, že změny přeruší aktuální nastavení.

Pokud chcete minimalizovat riziko problémů, je vhodné vyzkoušet změny bezpečným způsobem, než je nasadíte do produkčního prostředí. Můžete například nasadit změny do neprodukčního prostředí.

Řada organizací nastavila několik neprodukčních prostředí, kde postupně nasazují své změny před uvolněním do produkčního prostředí. Každé neprodukční prostředí slouží konkrétnímu účelu a často má specifické brány kvality, které musí být splněny, aby bylo možné pokračovat k dalšímu prostředí. Pokud se něco nepovede, jako je selhání testu, nasazení se zastaví. S tím, jak vaše nasazení prochází jednotlivými prostředími, roste vaše důvěra ve změny.

Mezi běžná prostředí patří:

  • Vývoj: Vývojové prostředí obvykle používají vývojáři k vyzkoušení svých změn a k rychlé iteraci práce.

    Vývojová prostředí mají často minimální ovládací prvky, aby si členové týmu mohli snadno vyzkoušet nápady. Vývojové prostředí můžete použít k otestování určitého nastavení konfigurace prostředku nebo k tomu, abyste zjistili, jak můžete nastavit nový web s back-endovou databází zabezpečeným způsobem. Mnoho z těchto změn a zkušebních verzí nemusí v procesu nasazení pokračovat, protože eliminujete nápady, které neuspějí.

    V některých týmech můžete dokonce nastavit samostatné vývojové prostředí pro každého člena týmu, aby se navzájem nedostali do cesty, když pracují na nových funkcích.

    Vývojová prostředí se někdy také označují jako sandboxová prostředí.

  • Test: Testovací prostředí je navržené pro spouštění ručních nebo automatizovaných testů proti vašim změnám.

    Testovací prostředí je možné použít v procesu kontinuální integrace. Po nasazení změny do testovacího prostředí je možné spouštět automatizované testy. Pokud všechny automatizované testy projdou, je změna bezpečná pro sloučení do hlavní větve projektu. Automatizované testy obvykle kontrolují základní systémové funkce spolu s porušeními zásad v nově nasazených prostředcích.

    Můžete také vytvořit vyhrazená testovací prostředí pro konkrétní typy testování, jako je výkon a testování zabezpečení.

  • Integrace: Prostředí integrace vám může pomoct otestovat všechny integrační body s jinými systémy.

    V prostředí integrace můžete simulovat komplexní transakce. Tyto testy se často spouštějí automaticky, ale mnoho organizací také provádí ruční testování v tomto prostředí.

    Integrační prostředí se někdy také označují jako prostředí sit (System Integration Test ).

  • Uživatelský akceptační test: Prostředí uživatelských akceptačních testů (UAT) se používá k ručnímu ověření, obvykle pro obchodní účastníky, nikoli pro vývojáře. Při ručním ověření někdo projde řešením a ověří, že se chová podle očekávání a že dosahuje nezbytných obchodních požadavků. Tato osoba pak schválí změny, aby nasazení bylo možné pokračovat.

  • Předprodukční prostředí: Předprodukční prostředí je často zrcadlem produkčního prostředí se stejnými skladovými položkami prostředků a konfigurací. Používá se jako konečná kontrola k ověření chování produkčního nasazení během a po použití změny. Dá se také použít k ověření, jestli se během produkčního nasazení očekává jakýkoli výpadek.

    Předprodukční prostředí se někdy také označují jako přípravná prostředí.

  • Produkční prostředí: Vaše produkční prostředí je prostředí, které koncoví uživatelé aplikace používají. Je to vaše živé prostředí, které chcete chránit a udržovat v provozu co nejvíce.

    V některých organizacích můžete mít několik produkčních prostředí. Můžete mít například produkční prostředí v různých geografických oblastech nebo obsluhovat různé skupiny zákazníků.

  • Ukázka: Váš tým může také vytvořit ukázková (ukázková) prostředí, která aplikaci ukážou koncovým uživatelům, aby ji mohli používat při školení nebo prodejní týmy k zobrazení určitých možností potenciálním zákazníkům. Můžete mít dokonce několik ukázkových prostředí, která slouží různým účelům. Ukázkové prostředí je často zmenšená replika produkčního prostředí s falešnými zákaznickými daty.

Prostředí ve vaší organizaci

Může se zobrazit varianta těchto prostředí. Některé organizace používají jenom několik prostředí a některé používají mnohem víc. Počet a typ prostředí, která používáte, závisí na řešení, které nasazujete, velikosti týmu, který řešení vytváří, a na důležitosti úlohy.

V některých případech má jedno prostředí roli několika dříve uvedených prostředí. Jindy můžete mít složitý kanál, který se nasadí do více prostředí, některé paralelně a částečně v sekvenci. Některé organizace dokonce automaticky odstraní nebo zruší zřízení prostředí, když se už nepoužívají, a pak je znovu nasadí, až budou v budoucnu potřeba.

Ať si vaše organizace zvolí svůj seznam prostředí, je cílem zlepšit vaši důvěru v změnu při procházení kanálem nasazení. Pokud změna nesplňuje vaše požadavky na kvalitu, chcete mít možnost zastavit nasazení této změny do všech následných prostředí v řetězci.

Ve vaší toy společnosti se rozhodnete začít se základní sadou prostředí pro váš web. Kromě produkčního prostředí vytvoříte jedno neprodukční prostředí s názvem Test:

Diagram znázorňující dvě prostředí: testování a produkční prostředí

Kanál aktualizujete tak, aby nasadil kód Bicep do testovacího prostředí a spustili s ním několik základních testů. Pokud se toto úsilí podaří, kód se nasadí do produkčního prostředí.

Prostředí kanálu

Azure Pipelines má také koncept prostředí. Vytvoříte prostředí Azure Pipelines, které bude představovat prostředí, které máte v Azure. Při definování kanálu v souboru YAML propočítáte úlohy nasazení s konkrétním prostředím. Pomocí prostředí získáte v kanálu některé další funkce.

Kontroly a schválení

Prostředí v Azure DevOps může mít nakonfigurované kontroly a schválení. Pokaždé, když se prostředí používá v úloze ve vašem kanálu, Azure DevOps zajistí, aby tyto kontroly a schválení proběhly úspěšně před spuštěním úlohy.

Můžete například nakonfigurovat ruční schválení v produkčním prostředí. Před zahájením produkčního nasazení obdrží určený schvalovatel e-mailové oznámení. Tato osoba může ručně ověřit splnění zásad a postupů před zahájením nasazení. Schvalovatel může například před schválením nasazení zkontrolovat, jestli všechno funguje podle očekávání v předprodukčním prostředí.

Kromě toho můžete spustit automatizovanou kontrolu a zkontrolovat protokoly a chybovost v předprodukčním prostředí po posledním nasazení. Pokud kontrola potvrdí, že se počet chyb podstatně nezvýšil, umožní nasazení pokračovat.

Historie nasazení

Azure Pipelines sleduje historii nasazení do prostředí. Tato historie poskytuje snadný způsob, jak sledovat, co se v prostředí v průběhu času stane. Dokonce vám umožňuje trasovat nasazení na konkrétní požadavek na funkce v pracovních položkách Azure Boards nebo na potvrzení ve vašem úložišti. Tato funkce může být užitečná, pokud máte problém s nasazením a potřebujete identifikovat změnu, která vedla k problému.

Zabezpečení

Na prostředí můžete použít další bezpečnostní prvky. Kanály, které mají povoleno používat konkrétní prostředí, můžete omezit. Nebo můžete někomu zabránit v náhodném vytvoření sekundárního kanálu, který komunikuje s vaším produkčním prostředím.

Můžete také použít uživatelská oprávnění k řízení uživatelů, kteří můžou spravovat prostředí. Konkrétní oprávnění můžou uživatelům umožnit vytvářet nová prostředí, upravovat prostředí a zobrazovat prostředí a historii nasazení.

Poznámka:

Pokud váš kanál odkazuje na prostředí, které ještě neexistuje, Azure Pipelines ho automaticky vytvoří za vás. Tato funkce může ovlivnit zabezpečení projektu Azure DevOps, protože automaticky získáte oprávnění správce k prostředí. Nejlepší je vytvořit prostředí sami prostřednictvím webového rozhraní Azure DevOps, abyste měli plnou kontrolu nad jeho zabezpečením a omylem nezískáte oprávnění, která nepotřebujete.

V definici kanálu nasazení vytvoříte deployment vlastnost pro zadání úlohy nasazení a zadáte název prostředí, do které se úloha nasadí:

- stage: DeployTest
  displayName: Deploy (Test Environment)
  jobs:
  - deployment: DeployWebsite
    environment: Test
    strategy:
      runOnce:
        deploy:
          steps:
            - checkout: self

V příkladu je pojmenovaná DeployWebsite úloha propojena s prostředím Test .

Tip

Úlohy mají také další vlastnosti, včetně strategie nasazení, které jsou nad rámec tohoto modulu. Propojime další informace v souhrnné lekci.

Prostředí a připojení služeb

Pokud používáte více prostředí, měli byste každé prostředí nastavit nezávisle na ostatních prostředích. Web vašeho vývojového prostředí by například neměl mít přístup k databázi v produkčním prostředí.

Stejný princip platí i pro kanál nasazení. Připojení služby, které použijete k nasazení do vývojového prostředí, by nemělo mít přístup k produkčnímu prostředí. Podle tohoto principu přidáme další vrstvu ochrany, která zajistí, že vaše neprodukční nasazení neovlivní vaše produkční prostředí.

Pro každé prostředí byste měli vytvořit samostatná připojení služeb. Každé připojení služby by mělo používat vlastní vyhrazený instanční objekt s konkrétními oprávněními k nasazení pouze do předplatného a skupiny prostředků používané tímto prostředím:

Diagram znázorňující připojení služby, instanční objekt a skupinu prostředků Azure pro neprodukční prostředí a jinou sadu pro produkční prostředí

Důležité

Pro každé prostředí, do kterého plánujete nasazení, použijte samostatné připojení instančního objektu a služby. Udělte instančnímu objektu minimální oprávnění, která musí nasadit do svého prostředí, a žádné další.

Je také vhodné oddělit prostředí v Azure. Minimálně byste měli vytvořit samostatnou skupinu prostředků pro každé prostředí. V mnoha situacích je lepší vytvořit samostatná předplatná Azure pro každé prostředí. Pak můžete v rámci předplatného každého prostředí vytvořit více skupin prostředků.

Použijte přiřazení rolí Azure, aby uživatelé a instanční objekty měli přístup jenom k prostředím, ke kterým potřebují přístup. Dávejte pozor, abyste omezili přístup k produkčnímu prostředí na malou sadu lidí a instanční objekt nasazení pro toto prostředí.