Provádění modernizace v cloudu

Provádění je fáze, ve které implementujete plán modernizace. Tento krok zahrnuje přípravu všech na změnu a provádění vývojové práce v neprodukčních prostředích. Důkladně otestujete a nasadíte do produkčního prostředí kontrolovaným způsobem. Důraz je kladen na důkladné postupy testování a bezpečného nasazení, aby se minimalizovalo přerušení podnikání vzhledem k tomu, že změny mohou být významné.

Příprava zúčastněných stran na modernizaci

Než začnete s nasazením, je důležité připravit všechny zúčastněné strany a uživatele na to, co se chystá. Překvapení můžou vést k nejasnostem nebo dokonce provozním problémům. Mezi klíčové přípravné kroky patří komunikace, zablokování změn (uvedené výše) a plány podpory:

  1. Oznamte plán nasazení všem zúčastněným stranám. S dostatečným předstihem informujte všechny ovlivněné účastníky, kdy proběhne nasazení modernizace a co mohou očekávat. Zahrňte klíčová data, jako je začátek zmrazení změn a okno spuštění, aby se zainteresované strany mohly správně připravit. Nastavením očekávání můžou uživatelé plánovat výpadky a interní týmy můžou být připravené.

  2. Zaveďte zmrazení změn u zdrojových a závislých úloh. Jak bylo naplánováno dříve v zásadách správného řízení, teď je čas skutečně vynutit zablokování. Ujistěte se, že v úloze (a závislých úlohách) po určitou dobu před nasazením a během nasazení neprobíhají žádné změny kódu, úpravy konfigurace ani jiná nasazení. To udržuje prostředí stabilní. Ujistěte se, že všichni členové týmu a všichni integrovaní třetí strany vědí. Jasně definujte okno ukotvení s určitým počátečním a koncovým časem, abyste se vyhnuli nejasnostem.

  3. Komunikujte konečné akce uživatelů a změny po nasazení. Uživatelé si musí předem všimnout požadovaných akcí před a po nasazení, aby se zabránilo přerušení pracovního postupu. Instruujte uživatele, aby se odhlásili nebo uložili práci před zahájením změny systému. Sdílejte nové adresy URL přístupu, změny ověřování, jako jsou například požadavky na přihlášení Microsoft Entra ID, a aktualizované pracovní postupy, které ovlivňují každodenní operace. Poskytněte dokumentaci podpory a úvodní příručky, které vám po prvním dni pomůžou omezit nejasnosti.

  4. Koordinovat personální obsazení podpory pro nasazení Provozní a vývojové týmy IT musí být k dispozici pro monitorování a reakci na problémy během kritických fází nasazení. Naplánujte prodlouženou dobu podpory a další personál pro první pracovní den po nasazení, když se s největší pravděpodobností objeví problémy. Informujte obchodní jednotky o plánech podpory po nasazení a postupech eskalace, abyste zajistili rychlé řešení problémů.

  5. Definujte náhradní postupy pro kritické úlohy. Klíčové úlohy vyžadují ruční alternativní řešení a plány nepředvídaných událostí pro udržování obchodních operací během období nasazení. Zdokumentujte konkrétní postupy, například ruční zpracování objednávek během období, kdy jsou úlohy v režimu pouze pro čtení. Podělte se o tyto postupy předem a potvrďte připravenost s ovlivněnými týmy, abyste zajistili bezproblémové provádění v případě potřeby.

Vývoj modernizace v neprodukčním prostředí

Všechny změny modernizace a jejich integrace by se měly provádět mimo produkční prostředí (v vývojových, testovacích, přípravných prostředích). Hlavní princip: nejprve sestavte a otestujte v prostředí podobném produkčnímu, abyste při nasazení do produkčního prostředí už měli ověřenou konfiguraci.

  • Během implementace dodržujte principy architektury Well-Architected. Při psaní kódu a konfiguraci nových změn se průběžně používají osvědčené postupy z Well-Architected Frameworku (WAF) Azure. K ověření rozhodnutí o návrhu použijte Azure Advisor doporučení a procesy kontroly architektury. Tento přístup zajišťuje, že modernizované komponenty splňují Azure osvědčených postupů a provozních standardů.

  • Vytvořte neprodukční prostředí, která zrcadlí produkční prostředí. Zařazení vývojového/testovacího prostředí v Azure co nejblíže k produkčnímu nastavení. Pokud produkční prostředí používá určité služby Azure, použijte stejné služby v testovacím prostředí na menší škále nebo v nižší výkonnostní třídě (SKU), abyste snížili náklady. Čím více se vaše testovací prostředí podobá produkci, tím větší jistotu můžete mít, že produkční chování by mělo odpovídat výsledkům testů.

  • Implementujte změny přírůstkově pomocí správy zdrojového kódu a CI/CD. Zacházejte s modernizací jako s jakýmkoli jiným softwarovým projektem. Ke všem změnám kódu a skriptům infrastruktury jako kódu použijte Git nebo jinou správu zdrojového kódu. Poskytuje historii a schopnost v případě potřeby vrátit zpět kód. Rozdělte práci na malé přírůstky (třeba na funkci nebo opravu) a používejte větve funkcí. Sloučit změny často po kontrole kódu. Nastavte sestavení kontinuální integrace tak, aby spouštěly testovací sady při každém commitu, pro zachycení problémů včas.

Ověření změn modernizace pomocí testování

Testování je kritické. Vzhledem k tomu, že modernizace nepřidává nové funkce, je fokus na regresní testování (nic není přerušeno), testování výkonu (výkon splňuje nebo překračuje předchozí úrovně) a testování zabezpečení (kontrolní mechanismy zabezpečení zůstávají účinné nebo posílené). Než zasáhnete do produkčního prostředí, chcete ověřit všechny aspekty pracovní zátěže v testovacím prostředí.

  1. Proveďte testy jednotek a integrace u všech upravených komponent. Vývojáři by měli vytvářet nebo aktualizovat testy jednotek pro jakýkoli kód, který byl refaktorován. I když je to starší verze kódu, může zápis jednotkových testů pro kritické funkce pomoci zachytit neúmyslné změny chování způsobené refaktoringem. Průběžně spouštějte testy jednotek v CI kanálu. Kromě toho spusťte integrační testy, abyste zajistili, že spolu komponenty správně komunikují. Po jakékoli opravě chyb spusťte znovu relevantní testy, abyste zajistili, že se chyba skutečně vyřeší a nic jiného se neporuší (vyhněte se regresím).

  2. Proveďte kompletní funkční testování. V přípravném nebo testovacím prostředí proveďte úplné testy pracovních postupů, jako byste byli koncovým uživatelem. Toto testování může být ruční testování pomocí kontroly kvality nebo automatizovaných testů uživatelského rozhraní. Přihlaste se k aplikaci, proveďte hlavní úlohy. Zajistěte, aby nezměněné funkce zůstaly beze změny. V podstatě simulujte skutečné využití, abyste zachytili cokoli, co by mohlo uniknout jednotkovým testům.

  3. Testování přijetí uživatele (UAT) se zúčastněnými stranami Před zahájením provozu zapojte některé skutečné koncové uživatele nebo obchodní účastníky do testování modernizované úlohy. Můžou zachytit drobné odlišnosti, které vývojáři přehlédnou. Zachyťte zpětnou vazbu ohledně použitelnosti, výkonu a mezer funkcí. Před nasazením vyřešte kritické problémy s testováním přijetí uživatele a získejte formální schválení od zúčastněných stran, abyste potvrdili obchodní připravenost.

  4. Ověřte výkon pomocí zátěžového testování za realistických podmínek. Modernizace by měla v ideálním případě zlepšit nebo udržovat výkon. Pomocí nástrojů pro zátěžové testování, jako je Azure Load Testing, můžete simulovat reálné vzory použití. Porovnejte výsledky se standardními hodnotami výkonu ze zdrojového prostředí a identifikujte případné snížení výkonu. Zátěžové testy proveďte při 150% očekávaného zatížení, abyste zjistili limity úloh a ověřili odolnost pod tlakem.

  5. Proveďte kontroly ověření zabezpečení a dodržování předpisů. Proveďte zabezpečovací skenování nového kódu a obrazů kontejneru k odhalení rizik zabezpečení. K ověření dodržování předpisů pro regulované úlohy použijte nástroje specifické pro konkrétní odvětví. Pomocí Microsoft Defender for Cloud vyhledejte chybné konfigurace infrastruktury a ověřte, že kontrolní mechanismy zabezpečení splňují požadavky.

  6. Vyřešte všechny důležité problémy před produkčním nasazením. Oprava problémů s funkcí, výkonem a zabezpečením identifikovaných během fází testování Ověřte, že všechny testy projdou a výkon splňují smlouvy o úrovni služeb (SLA). Zdokumentujte všechny zbývající problémy s nízkou prioritou a vytvořte plány nápravy pro řešení po nasazení.

Vytvoření opakovaně použitelné infrastruktury

Jakmile vaše modernizované řešení projde všemi testy v neprodukčním prostředí, měli byste zaznamenat nastavení a konfigurace infrastruktury jako kód, aby bylo možné ho snadno replikovat v produkčním a budoucím prostředí. Opakovaně použitelná infrastruktura znamená použití šablon infrastruktury jako kódu (IaC) a automatizace pro konzistenci a rychlost.

  1. Vytvořte šablony IaC pro prověřené konfigurace. Vezmi si konečnou architekturu testovacího prostředí (která odráží to, co chcete v prod) a kodifikujte ji. K definování infrastruktury použijte Bicep, Terraform nebo Azure Resource Manager šablony. Parametrizovat tyto šablony, aby je bylo možné znovu použít pro různé fáze, jako je vývoj, testování, produkce, s malými úpravami, jako jsou názvy nebo velikosti. Toto nastavení zajistí, že produkční prostředí, které vytvoříte, odpovídá tomu, co jste otestovali. Vyhne se lidské chybě při manuálním klikání v Azure portálu pro vytváření prostředků. To také znamená, že pokud budete někdy potřebovat znovu vytvořit prostředí, jako je zotavení po havárii nebo nasazení do nových oblastí, máte připravené nasazení infrastruktury. Další informace najdete v tématu Správa CAF – Správa nasazení na základě kódu.

  2. Ukládejte šablony ve správě verzí. Zkontrolujte kód infrastruktury do úložiště Git (společně s kódem aplikace nebo v samostatném úložišti). Ke správě prostředků IaC pomocí správné správy verzí použijte GitHub nebo Azure DevOps. Správa verzí umožňuje kontroly kódu, podporuje týmové spolupráce a podporuje opakované použití šablon napříč projekty. Tento přístup poskytuje úplnou sledovatelnost změn infrastruktury a podporuje možnosti vrácení zpět, když dojde k problémům.

  3. Automatizujte instalaci a konfiguraci závislostí Vytvořte skripty nebo úlohy v nástroji pipeline pro nasazení těchto šablon a zpracovávejte také všechny požadované úlohy konfigurace nebo úlohy zavádění dat. Pomocí Azure Pipelines a GitHub Actions spouštět úlohy nasazení, které přebírají šablonu IaC a nasazují do cílového předplatného nebo skupiny prostředků. Automatizujte instalaci závislostí aplikací, konfiguraci nastavení a správu tajných kódů. Cílem je nastavení prostředí jedním kliknutím (nebo jedním příkazem): od nic po plně spuštěné prostředí, které odpovídá testovanému prostředí.

  4. Otestujte kompletní IaC a automatizaci. Jako sandbox použijte samostatné Azure předplatné nebo skupinu prostředků a procvičte si nasazení celého prostředí úplně od začátku pomocí šablon a skriptů. Otestujte, že vaše šablony, kanály a skripty IaC můžou vytvořit kompletní zásobník infrastruktury z ničeho. Otestujte různé scénáře nasazení, včetně počátečního nasazení, aktualizací konfigurace a postupů vrácení zpět, abyste potvrdili, že automatizace funguje správně.

Další informace najdete v tématu Návrh dodavatelského řetězce úloh a infrastruktury jako kódu v WAF.

Vytvoření dokumentace k nasazení

I s automatizací je dobrá dokumentace týkající se nasazení zásadní pro audit, pro zprovoznění nových členů týmu a pro budoucí údržbu. Dokumentace k nasazení by měla zahrnovat konfigurace, postupy a kroky vrácení zpět ve formě čitelné pro člověka.

  1. Nastavení a kroky konfigurace dokumentu Zaznamenejte všechna nastavení specifická pro prostředí, připojovací řetězce, koncové body služby a konfigurace zabezpečení v dokumentaci s podporou přístupnosti. Uveďte podrobné pokyny k nasazení, požadavky na požadavky a kroky ověření po nasazení. Tato dokumentace umožňuje konzistentní nasazení a podporuje řešení potíží při výskytu problémů. Pokud by nový inženýr musel provést nasazení, mohl by si přečíst tento dokument a sledovat výstup potrubí nebo ho pochopit.

  2. Aktualizujte postupy pro rollback a zotavení. Po dokončení testů formalizujte kroky k přípravě návratu změn, pokud nastanou problémy s nasazením. Zahrnují triggery vrácení změn, postupy zálohování a obnovení dat a kroky pro ověření obnovy. Pravidelně testujte postupy vrácení zpět a obnovení, abyste měli jistotu, že v případě potřeby správně fungují. Tato příprava snižuje výpadky.

  3. Shromážděte veškerou tuto dokumentaci v centrálním umístění. K uložení těchto informací použijte SharePoint, GitHub nebo wikiweb. Zajistěte, aby tým a pracovníci podpory věděli, kde ho najít. V případě vysoce stresujícího incidentu je mít po ruce srozumitelnou dokumentaci záchranou.

Nasazení modernizace

Produkční nasazení je poslední fází modernizace. Postup se liší v závislosti na zvolené strategii (místní a paralelní). Před provedením ověřte, že jsou provedeny všechny přípravné kroky: zúčastněné strany informovány, zmrazení je v platnosti, zálohy jsou provedeny, monitorování je připraveno.

Nasazení modernizace na místě

  1. Naplánujte časové období údržby. Pokud změny vyžadují plánovaný výpadek nebo spouštění skriptů, které zamknou prostředky, jako je migrace schématu databáze, proveďte to v předem oznámeném údržbovém okně. Ujistěte se, že v té době všichni uživatelé nepracují na úloze. Při jasném časovém okně můžete dokončit nasazení nebo se rozhodnout pro vrácení, pokud vám dojde čas.

  2. K nasazení použijte kanál CI/CD. Produkční nasazení by mělo používat stejný automatizovaný kanál, který jste použili pro testování, ale odkazující na produkční prostředí. Toto nastavení zajišťuje konzistenci, takže infrastruktura a kód se nasazují stejným způsobem. Před spuštěním proveďte konečné zálohy všech důležitých dat (databází). I když se můžete vrátit zpět, zálohování je pro případ, že se něco nepovede. Spusťte pipelinu pro nasazení změn kódu a infrastruktury. Mějte protokoly a monitorování viditelné v reálném čase. Pokud některý krok selže, pozastavte a vyhodnoťte, jestli můžete použít nápravnou změnu nebo se vrátit zpět.

  3. Pokud je to možné, implementujte progresivní směrování provozu (kanár). Mnoho služeb Azure umožňuje prohození slotů nebo postupné přesměrování provozu, a to i v rámci stávajícího nasazení. Azure podporuje kanárské nasazení prostřednictvím slotů nasazení Azure App Service, rozdělení provozu v Azure Container Apps a Azure Kubernetes Service s použitím Azure Pipelines. Pokud máte za load balancerem více virtuálních počítačů, aktualizujte postupně jednu instanci při postupném upgradu, aby ostatní zpracovávají provoz, a poté je vyměňte.

  4. Postupně zvyšujte na plný provoz, zatímco monitorujete. Jakmile je nová verze aktivní, pečlivě ji sledujte. Zkontrolujte protokoly aplikací, metriky výkonu a míry chyb. Začněte s malou částí uživatelů (nebo začněte s úlohou v režimu ověřování, pokud je to možné). Pokud všechno vypadá dobře po několika minutách, zvyšte například na 25% provozu. Zkontrolujte znovu metriky (žádný nárůst chyb 500, doby odezvy jsou normální). Zvyšte na 50%a pak 100% v libovolném časovém rámci, který jste plánovali. Pokud chcete být opatrní, může to trvat více než hodinu. Pokud se v některém kroku zjistí nějaký závažný problém, před tím, než ovlivní všechny uživatele, zahajte vrácení zpět.

  5. Během nasazování udržujte konzistenci dat. Místní nasazení zachovávají stávající koncové body dat a potenciálně upravují schémata dat. Zavádějte změny schématu databáze způsoby, které jsou zpětně kompatibilní, aby během kanárských verzí podporovaly jak staré, tak nové verze aplikací. Použijte skripty migrace databáze, které přidávají nové sloupce nebo tabulky bez odebrání existujících struktur, dokud se nasazení úspěšně neskončí.

Nasazení modernizace do paralelního prostředí

  1. Vytvořte paralelní produkční prostředí. Pomocí šablon IaC vytvořte nové produkční prostředí v Azure, které zrcadlí to, co jste otestovali. Toto prostředí zahrnuje všechny výpočetní prostředky, sítě a úložiště. Měl by být spuštěný, ale aktuálně nemá žádný uživatelský provoz. Ujistěte se, že věci, jako jsou skupiny zabezpečení sítě, brány firewall, identity (spravované identity nebo služební principály) a monitorování, jsou nakonfigurovány podle potřeby (zopakujte nastavení testovacího prostředí v produkčním předplatném).

  2. Vytvořte replikaci databáze. Nakonfigurujte funkci nativní replikace vaší databázové platformy tak, aby se vytvořila průběžná replikace dat mezi vaším zdrojem a Azure cílovou úlohou. Ověřte, že se počáteční synchronizace dat úspěšně dokončila a že replikace je v pořádku. Můžete provést počáteční hromadnou kopii databáze ze zálohy nebo snímku a pak povolit replikaci pro nové transakce. K monitorování prodlevy v replikaci použijte monitorovací nástroje vaší databázové platformy. Vyšší latence zvyšuje riziko a délku přepnutí. Nepřecházejte k dalšímu kroku, dokud nebude prodleva replikace nulová.

  3. Kopírování nestrukturovaných dat a souborů Před dokončením přímé migrace zkopírujte nestrukturovaná data a soubory do Azure. Pomocí nástrojů Nástroje pro migraci objektů a souborů s funkcemi můžete přenášet soubory do příslušných služeb úložiště Azure. Tato příprava snižuje množství dat, která je potřeba zkopírovat během konečného přepnutí.

  4. Dokončete konečnou synchronizaci dat. V okamžiku přechodu chcete nulovou nebo minimální ztrátu dat. U databází ověřte, že ve zdrojových úlohách nezůstávají žádné nevyřízené transakce a že replikace databází je aktuální. V některých případech může být potřeba krátce pozastavit zápisy do zdrojové databáze, aby se uložily konečné změny (zejména pro zachování transakční konzistence). K obnovení poslední přírůstkové zálohy můžete použít techniky, jako je replikace transakčních protokolů nebo krátký výpadek. Pomocí nástroje AzCopy nebo podobného nástroje zkopírujte všechna upravená nestrukturovaná data.

  5. Postupně přesměrovávej uživatelský provoz do nového prostředí. Aktualizujte záznamy DNS a konfigurace nástroje pro vyrovnávání zatížení tak, aby směrovat uživatelský provoz do Azure prostředí. Monitorování stavu a výkonu úloh Začněte 1% živého provozu směrovaného na modernizované úlohy pomocí váženého směrování s vaším nástrojem pro vyrovnávání zatížení Azure. Monitorujte metriky v reálném čase, včetně doby odezvy, chybovosti a stavu připojení k databázi. Zvyšte provoz v rychlých přírůstcích (5 %, 15 %, 50 %) v řádu minut místo hodin s automatizovanými spouštěcími mechanismy pro navrácení změn v případě překročení prahových hodnot.

  6. Proveďte finální přepnutí na 100 %. Jakmile budete s jistotou, přesměrujte všechny uživatele do nového prostředí. Tento přechod může být změna směrování DNS, která může trvat několik sekund až minut, pokud byla hodnota TTL (Time to Live) nízká, nebo úprava konfigurace vyrovnavače zátěže. V tuto chvíli uživatelé pracují na modernizované pracovní zátěži.

  7. Okamžitě ověřte a monitorujte po přepnutí. Proveďte kontroly po dokončení přechodu. Proveďte kompletní funkční testování všech důležitých obchodních procesů pomocí automatizovaných testovacích sad. Ověřte přesnost dat pomocí ověření kontrolního součtu a porovnání hodnot hash mezi zdrojovými a cílovými úlohami. Vlastníci úloh ověřují, že všechny hlavní funkce fungují správně. Za prvních 24 až 48 hodin po přímé migraci můžete monitorovat výkon, chybovost a vzory přístupu uživatelů a identifikovat případné problémy se snížením výkonu nebo funkčností.

  8. Nechte staré prostředí běžet na chvíli (aktivní pohotovostní režim). Ještě nic nezatrhejte. Ponechte staré zatížení jako horkou zálohu alespoň 24 až 72 hodin, při probíhající synchronizaci dat, pokud je to možné (nebo okamžitě synchronizovatelné). Pokud se v produkčním prostředí objeví neočekávaný závažný problém, můžete se rozhodnout vrátit zpět směrováním provozu zpět. Měli byste přijít o minimální množství dat, protože se můžete zotavit pomocí záznamů nebo jinými způsoby.

Ověření úspěchu modernizace

Teď, když je nová úloha aktivní, je potřeba ověřit v produkčním prostředí, že všechno funguje podle očekávání a splňuje kritéria přijetí.

  1. Potvrďte úspěšný přístup uživatelů a výkon úloh. Ověření přístupu uživatelů zajišťuje, že modernizace je transparentní a že výkon splňuje očekávání. Toto potvrzení ověří, že uživatelé mají přístup k úloze bez přerušení. Monitorujte vzory přístupu uživatelů, metriky výkonu úloh a míry chyb během počátečního období po migraci.

  2. Oznamte úspěch migrace až po důkladném ověření. Úplné ověření zajišťuje, že všichni účastníci potvrdí, že je úloha stabilní a funkční. Toto potvrzení zabraňuje předčasně deklarací úspěchu, které by mohly vést k problémům později. Získejte potvrzení od vlastníků úloh, testerů a obchodních zúčastněných stran, že úloha splňuje všechny požadavky a funguje správně.

Podpora úloh během stabilizace

I po úspěšném startu naplánujte období stabilizace, ve kterém pečlivě monitorujete úlohu. Nově modernizované úlohy můžou mít neznámé problémy, které se zobrazují jenom v reálných vzorech využití po nějaké době.

  • Během období stabilizace vytvořte rozšířené pokrytí podpory. V prvních několika dnech nebo týdnech (v závislosti na složitosti) po zahájení ostrého provozu by mělo být zavedené zvýšené podporové protokoly. Přiřaďte zkušené IT pracovníky nebo partnery pro migraci, aby pečlivě sledovali pracovní zatížení a poskytovali kratší doby plnění SLA než při běžném provozu.

  • Aktualizujte provozní dokumentaci a nástroje. Ujistěte se, že všechny runbooky, dokumenty podpory a konfigurace monitorování se aktualizují tak, aby odrážely novou realitu. Vytrénujte provozní tým na všechny nové postupy, jako jsou nové procesy zálohování, nové postupy restartování mikroslužeb. Předáte modernizované úlohy provozním týmům/týmům podpory s úplným přenosem znalostí. Ujistěte se, že inventář prostředků nebo CMDB zaznamenává nové servery, IP adresy, služby a odeberou nebo označí starší servery.

Další krok