Sdílet prostřednictvím


Postupy DevOps pro úlohy SaaS v Azure

Postupy DevOps jsou nedílnou součástí správy úloh v Azure, zejména pro aplikace SaaS. Mezi klíčové aspekty patří onboarding, offboarding a úpravy instancí zákazníků. Tyto postupy nejen zjednodušují provoz, ale také zlepšují škálovatelnost a spolehlivost a minimalizují riziko výpadků.

Tento článek popisuje aspekty návrhu pro efektivní správu životního cyklu zákazníků a postupy bezpečného nasazení.

Správa životního cyklu zákazníků

Správa událostí životního cyklu zákazníků je zásadní pro všechny aplikace SaaS. Mezi tyto události obvykle patří:

  • Onboarding: Když se zákazník zaregistruje.
  • Změna: Úprava instance zákazníka, například změna cenové úrovně
  • Zrušení zprovoznění: Když zákazník zruší svůj účet.

Můžete narazit na další události životního cyklu. Můžete například umožnit zákazníkům pozastavit své předplatné, zatímco si zachovají svá data po stanovenou dobu, a později obnovit své předplatné. Každá událost může mít jedinečné důsledky pro vaši aplikaci.

V některých řešeních může správa životního cyklu zákazníků vyžadovat vytvoření nebo správu dat v tabulce databáze. U jiných řešení může zahrnovat orchestraci nasazení infrastruktury Azure, kódu aplikace a složitější konfigurace.

Správa životního cyklu je klíčovou odpovědností řídicí roviny řešení SaaS. Na začátku může váš tým tyto aktivity zpracovávat ručně, ale v průběhu času se pokusí převést další funkce do formalizovaného řešení řídicí roviny nebo aplikace.

Aspekty návrhu

  • Konzistence. Při plánování strategie správy životního cyklu zvažte složitost akcí potřebných pro každou událost životního cyklu zákazníka. To zahrnuje velikost vašeho řešení, zákaznickou základnu a režii organizace. Ujistěte se, že máte jasný přehled o nezbytných krocích pro každou událost a investujte do kontrolních mechanismů, abyste zachovali konzistenci. Pravidelně kontrolujte a aktualizujte procesy, abyste měli jistotu, že zůstanou platné při vývoji vašeho řešení.

  • Model tenantů. Váš přístup ke zpracování událostí životního cyklu zákazníků závisí na modelu tenantů.

    • Plně víceklientských řešení s prostředky infrastruktury. Onboarding nebo offboarding zákazníka obvykle zahrnuje aktualizaci seznamu zákazníků a přidružených dat v úložišti dat vaší aplikace.
    • Vyhrazené prostředky na zákazníka. Úlohy obvykle zahrnují inicializování nasazení do Azure, monitorování průběhu a zpracování selhání nasazení, pravděpodobně s lidským zásahem.
    • Prostředky nasazené zákazníkem Možná budete muset přímo komunikovat s technickým týmem zákazníka pro onboarding nebo offboarding.
  • Úrovně. Zvažte cenový model a různé potřeby infrastruktury jednotlivých úrovní, zejména pokud zákazníkům umožníte libovolnou změnu skladové položky.

    • Pokud například vaše řešení SaaS zahrnuje základní aplikaci a několik placených modulů doplňků, ujistěte se, že se během onboardingu nasadí prostředky základní aplikace. Kromě toho umožňuje dynamické přidávání a odebírání modulů doplňků. Po odebrání modulu se rozhodněte, jestli chcete odstranit přidružená data nebo je uložit pro případnou opětovnou aktivaci.

Doporučení k návrhu

Doporučení Výhoda
Zdokumentujte jednotlivé typy událostí životního cyklu zákazníka.

Nezapomeňte zaznamenat podrobné podrobnosti procesu pro každou událost.
Když pochopíte události, můžete naplánovat, jak reagovat na každou událost v návrhu řešení.
Jasné pokyny pomáhají lidským operátorům zachovat konzistenci a sloužit jako základ pro budoucí automatizaci.
Komunikujte sdílenou odpovědnost mezi vámi a zákazníkem za každou událost životního cyklu. Sdělte jasně a brzy, co zákazníci očekávají, aby dokončili fázi životního cyklu. Můžete snížit potenciální chyby a frustraci zákazníků způsobené chybnou komunikaci.
Plánování kapacity pro každou událost životního cyklu

Pokud například při onboardingu nového zákazníka plánujete nasadit novou instanci aplikace, pokud stávající instance nemají dostatečnou kapacitu pro zvládnutí dodatečného zatížení.

Další informace najdete v tématu Fakturace a správa nákladů pro úlohy SaaS v Azure.
Můžete podporovat možnost snadnějšího škálování a vyhnout se selháním nasazení.
Zautomatizujte události životního cyklu, pokud je to praktické.

U řešení s nízkým objemem nebo ranou fází může být ruční nasazení a konfigurace dostačující, ale přesto by měly používat skripty, i když je technik spustí pokaždé, když dojde k události životního cyklu.

S tím, jak vaše řešení zralo, integrujte tyto odpovědnosti do úplné řídicí roviny, abyste snížili lidské chyby a podporovali vyšší škálování.
Můžete snížit významné riziko lidské chyby a podporovat vyšší škálování.

Plánování strategie správy infrastruktury

Vytvořte strategii pro nasazení, údržbu a správu infrastruktury Azure v rané fázi. Při škálování SaaS roste počet prostředků. Od začátku je snazší postupovat podle strategie správy, než později sladit infrastrukturu, když se stane příliš složitou na ruční zpracování.

Aspekty návrhu

  • Správa prostředků zákazníka. Model tenantů ovlivňuje nasazení prostředků v řešeních SaaS. Vyhrazené prostředky Azure můžete nasadit pro každého zákazníka nebo sdílet prostředky mezi nastaveným počtem zákazníků. Alternativně můžete použít jednu sadu sdílených prostředků a překonfigurovat je při připojování nových zákazníků. Běžné přístupy ke správě životního cyklu prostředků:

    • Seznam zákazníků můžete považovat za konfiguraci prostředků, které se mají nasadit. K nasazení a konfiguraci těchto prostředků použijte centralizované kanály nasazení.
    • Zachází se seznamem zákazníků jako s daty. Ke zřízení a konfiguraci infrastruktury použijte aplikaci řídicí roviny.
  • Automatizace infrastruktury. Mnoho organizací začíná ručním nasazením cloudové infrastruktury prostřednictvím webu Azure Portal, což je zpočátku snadné, ale není dobře škálovatelné. Naplánujte automatizaci nastavení infrastruktury pomocí nástrojů Infrastruktury jako kódu (IaC), jako je Bicep nebo Terraform. Pro složitější požadavky vytvořte řídicí rovinu, která přímo používá rozhraní API Azure Resource Manageru.

  • Přisuzování infrastruktury. Sledujte, kteří zákazníci jsou nasazeni na jakou infrastrukturu. Sledování je důležité pro přesné plánování kapacity a přiřazení nákladů. Infrastrukturu zákazníků můžete sledovat centrálně v databázi zákazníků nebo pro vyhrazenou infrastrukturu používat metadata prostředků Azure se skupinami prostředků a značkami prostředků specifických pro zákazníky. Další informace najdete v tématu Organizace prostředků pro úlohy SaaS.

Doporučení k návrhu

Doporučení Výhoda
Sestavte automatizaci infrastruktury pomocí kanálů nasazení, skriptů nebo šablon pomocí nástrojů, které už váš tým dobře zná. Použití známých nástrojů snižuje riziko chyb, protože automatizace infrastruktury může být rušivá, pokud nástroje nerozumí.
Pokud je to možné, nasaďte infrastrukturu pomocí IaC. Ruční údržba infrastruktury se stává rizikovým a náročnějším, jak roste množství infrastruktury.
Oddělte základní infrastrukturu od infrastruktury na úrovni zákazníka. Různé typy infrastruktury mají odlišné životní cyklus a aktivity správy. Když je rozdělíte, můžete každou sadu spravovat nezávisle podle vlastního plánu.
Použití spravovaných aplikací Azure k nasazení a správě prostředků nasazených zákazníkem Spravované aplikace Azure poskytují řadu funkcí, které umožňují nasadit a spravovat prostředky v rámci předplatného Azure zákazníka.

Plánování nasazení aplikací

Pravidelně aktualizujte kód a konfiguraci aplikace, aby se zlepšily funkce. Zákazníci očekávají konzistentní dobu provozu během aktualizací a bezpečných zavedení, aby minimalizovali riziko výpadků.

Aspekty návrhu

  • Standardizace nástrojů a procesů Osvědčené nástroje DevOps zajišťují konzistenci napříč funkcemi a vyspělostí procesů pro správu nasazení aplikací. Vývoj vlastních nástrojů se ve většině situací považuje za antipattern.

    Projděte si postupy vývoje softwaru OE:03.

    Kompromis: Složitost a náklady. Používání známých nástrojů DevOps může být nákladově efektivní z hlediska peněz a dovedností. Přidává ale provozní zátěž při správě jednotlivých nástrojů samostatně. Je důležité zůstat otevřený novým technologickým inovacím, které by mohly pro vaši úlohu přinést výhody.

  • Postupně nasazovat aktualizace. Postupně zavádět aktualizace pro podmnožinu zákazníků, které uživatele dělí na logické seskupení. U změn konfigurace použijte stejnou rigorii, protože můžou změnit chování kódu a způsobit výpadky. Při těchto změnách postupujte podle procesu nasazení.

  • Přijměte strategii správy verzí. Když zákazníkům umožníte zvolit si svou verzi aplikace, získáte flexibilitu, ale komplikuje vaše operace. Nastavte jasná očekávání pro vyřazení starých verzí a nastínit, co se stane, když už nejsou podporované.

  • Automatizace. Ruční nasazení jsou náchylná k rizikům způsobeným lidskými chybami a nedostatkem konzistence. I když se nasazení aktivují ručně, měl by být proces nasazení co nejvíce automatizovaný a měl by vyžadovat minimální zásah člověka. Zvažte kroky procesu nasazení a postup, jak je nejlépe automatizovat.

  • Test: Proveďte integraci testování do procesu nasazení spuštěním příkazu:

    • Testování jednotek během sestavování kódu
    • Integrační testy po nasazení
    • Pravidelné testy výkonnosti
    • Pravidelné testy zabezpečení a průniku

Rozhodněte se o akcích, které se mají provést, pokud nějaké testy v libovolné fázi selžou.

  • Neúspěšná nasazení Naplánujte selhání nasazení zvážením nezbytných akcí a přípravou strategie vrácení zpět.

  • Přístup k zákaznickým prostředím Pokud nasadíte prostředky do zákaznických prostředí, porozumíte tomu, jak můžete v těchto prostředích použít aktualizace. Zvažte možnosti poskytované spravovanými aplikacemi Azure, jako je nasazení aktualizací do aplikací.

Doporučení k návrhu

Doporučení Výhoda
Použijte zavedené a osvědčené nástroje a procesy DevOps ke správě nasazení aplikací. Vývoj vlastních nástrojů se ve většině situací považuje za antipattern.

Další informace najdete v tématu OE:03 Postupy vývoje softwaru.
Můžete zajistit efektivní nasazení technického týmu tím, že se nemusíte učit vlastní vytvořené nástroje.
Proaktivně informujte zákazníky o všech nadcházejících nebo dokončených nasazeních. Můžete zajistit, aby se ve vašich zákaznících nastavily správná očekávání ohledně změn přicházejících do vaší aplikace.
Využijte postupy bezpečného nasazení, které nasazují aktualizace do skupin zákazníků pomocí strategií, jako je progresivní expozice, modely stavu a další. Začněte s méně citlivými nebo dřívějšími zákazníky, než přejdete na důležitější zákazníky.
Další informace najdete v tématu Doporučení pro postupy bezpečného nasazení.
Tento přístup pomáhá identifikovat problémy dříve, než ovlivní všechny zákazníky.
Zacházení s konfigurací jako s kódem. Můžete snížit pravděpodobnost výpadků a přijmout konzistentní proces pro produkční změny. To umožňuje centralizované provozní odpovědnosti, jako je testování změn a postupné zavádění aktualizací konfigurace a kódu.
Definujte proces správy změn a sdělte zásady aktualizace verzí, abyste měli jistotu, že zákazníci vědí, kdo spouští aktualizace, jejich četnost a podmínky.

Pokud si zákazníci můžou zvolit svou verzi aplikace, nastavte jasné pokyny pro vyřazení starých verzí. Minimalizujte počet verzí aplikací spuštěných v produkčním prostředí.
Udržování starších verzí způsobuje neefektivitu provozu. Poskytněte zákazníkům potřebnou kontrolu a vyhněte se přetížení týmu nastavením jasných očekávání a zásad.
Vyhněte se přizpůsobení aplikací pro jednoho zákazníka.

Pokud chcete podporovat různé potřeby zákazníků, můžete buď vytvořit různé úrovně vašeho řešení, nebo použít příznaky funkcí k povolení konkrétních funkcí pro určité uživatele.
Vyhněte se nejednoznačnosti toho, které funkce se nasazují do které verze, a snižte zatížení údržby.
Máte plán vrácení zpět pro neúspěšná nasazení, včetně kritérií pro aktivaci a potřebná schválení. Plány vrácení zpět pomáhají zajistit, abyste se mohli zotavit z chyb nasazení i za nepředvídatelných okolností.
Pravidelně testujte aplikaci a v několika fázích procesu vývoje softwaru. Osvojte si "posun doleva" myšlení a zachyťte chyby a odchylky v rané fázi životního cyklu. Pomozte zabránit kritickým chybám, aby to ovlivnilo vaše zákazníky.

Další materiály

Víceklientská architektura je základní obchodní metodologie pro navrhování úloh SaaS. V těchto článcích najdete další informace o přijetí postupů DevOps:

Další krok

Seznamte se s aspekty správy incidentů pro implementaci procesů a nástrojů, které podporují řešení SaaS v Azure.