Automatizace nasazení rozhraní API pomocí APIOps

Azure API Management
Azure DevOps
Azure Pipelines

APIOps je metodologie, která používá koncepty GitOps a DevOps pro nasazení rozhraní API. Stejně jako DevOps pomáhá APIOps členům týmu snadno provádět změny a nasazovat je iterativním a automatizovaným způsobem. Tato architektura ukazuje, jak můžete zlepšit celý životní cyklus rozhraní API a kvalitu rozhraní API pomocí APIOps.

Architektura

Diagram architektury pro automatizovaná nasazení rozhraní API využívající APIOps v Azure

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

  1. Operátory rozhraní API spustí kanál extraktoru pro synchronizaci úložiště Git s instancí služby API Management a naplní úložiště Git objekty SLUŽBY API Management v požadovaném formátu.

  2. Pokud se v instanci služby API Management zjistí změna rozhraní API, vytvoří se žádost o přijetí změn pro operátory ke kontrole. Operátory sloučí změny do úložiště Git.

  3. Vývojáři rozhraní API naklonují úložiště Git, vytvářejí větev a vytvářejí definice rozhraní API pomocí specifikace OpenAPI nebo nástrojů podle svého výběru.

  4. Pokud vývojář odešle změny do úložiště, vytvoří se žádost o přijetí změn ke kontrole.

  5. Žádost o přijetí změn je možné automaticky schválit nebo zkontrolovat v závislosti na požadované úrovni kontroly.

  6. Po schválení a sloučení změn kanál publikování nasadí nejnovější změny do instance služby API Management.

  7. Operátory rozhraní API vytvářejí a upravují zásady služby API Management, diagnostiku, produkty a další relevantní objekty a pak změny potvrdí.

  8. Změny se zkontrolují a po schválení se sloučí.

  9. Po sloučení změn kanál publikování nasadí změny pomocí procesu definic rozhraní API.

Komponenty

  • Azure API Management vytváří konzistentní moderní brány rozhraní API pro back-endové služby. Kromě směrování volání rozhraní API do back-endů tato platforma také ověřuje přihlašovací údaje, vynucuje kvóty využití a metadata protokolů.

  • Azure DevOps je služba pro správu kompletního životního cyklu vývoje, včetně plánování a řízení projektů, správy kódu a pokračování v sestavování a vydávání.

  • Azure Pipelines umožňuje kontinuální integraci (CI) a průběžné doručování (CD) otestovat a sestavit kód a odeslat ho do libovolného cíle.

  • Azure Repos je sada nástrojů pro správu verzí, včetně standardního Gitu, které můžete použít ke správě kódu.

Alternativy

Toto řešení využívá Azure Repos k poskytování funkcí Gitu a Azure Pipelines poskytuje kanály. Můžete použít jakékoli srovnatelné technologie.

Podrobnosti scénáře

APIOps používá ke správě rozhraní API správu verzí a vytvoření záznamu auditu změn rozhraní API, zásad a operací.

Vývojáři rozhraní API, kteří používají metodologii APIOps, kontrolují a auditují rozhraní API dříve a častěji, zachytává a řeší odchylky od standardů rozhraní API rychleji, aby zlepšili specifikace a kvalitu rozhraní API. Čím více rozhraní API sestavíte a nasadíte pomocí přístupu APIOps, tím větší je konzistence mezi rozhraními API.

Tato architektura APIOps používá azure API Management jako platformu API Management. Azure DevOps organizuje správu rozhraní API. Azure Repos poskytuje funkce Gitu a Azure Pipelines vytvoří kanál CI/CD.

Potenciální případy použití

  • Jakákoli organizace, která vyvíjí a spravuje rozhraní API
  • Vysoce regulovaný průmysl: pojištění, bankovnictví, finance, vláda

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, sadu hlavních principů, které můžete použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

Toto řešení poskytuje několik výhod souvisejících se zabezpečením. Jednotliví vývojáři (a dokonce i operátoři) nemají přímý přístup k instanci služby API Management, aby mohli použít změny nebo aktualizace. Místo toho uživatelé nasdílí změny do úložiště Git a kanály extrakce a publikování načtou a použijí je u instance služby API Management. Tento přístup se řídí osvědčeným postupem zabezpečení nejnižšího oprávnění tím, že týmům neuděluje oprávnění k zápisu do instance služby API Management. Ve scénářích diagnostiky nebo řešení potíží můžete udělit zvýšená oprávnění po omezenou dobu pro případ.

Abyste měli jistotu, že instance služby API Management používají osvědčené postupy zabezpečení, můžete toto řešení rozšířit tak, aby vynucování osvědčených postupů rozhraní API používaly nástroje třetích stran a testování jednotek. Týmy můžou prostřednictvím žádosti o přijetí změn poskytnout včasnou zpětnou vazbu, pokud navrhované změny rozhraní API nebo zásad porušují standardy.

Kromě úlohy nastavení oprávnění úložiště zvažte implementaci následujících bezpečnostních opatření v úložištích Git, která se synchronizují s instancemi služby API Management:

  • Kontrola žádosti o přijetí změn: Používejte větve a chraňte větve, které představují stav instancí služby API Management, aby do nich byly přímo vloženy změny. Vyžadovat, aby žádosti o přijetí změn měly alespoň jeden kontrolor, aby vynutil zásadu čtyř očí.
  • Neměnná historie: Umožňuje pouze nová potvrzení nad existujícími změnami. Neměnná historie je zvláště důležitá pro účely auditování.
  • Vícefaktorové ověřování: Vyžaduje, aby vaši uživatelé aktivovali dvojúrovňové ověřování.
  • Podepsaná potvrzení: Povolte pouze podepsaná potvrzení, která nelze po faktu změnit.

Optimalizace nákladů

Optimalizace nákladů se týká snížení zbytečných výdajů a zlepšení efektivity provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

  • K odhadu nákladů použijte cenovou kalkulačku Azure.

  • Api Management nabízí následující úrovně: Consumption, Developer, Basic, Standard a Premium.

  • GitHub nabízí bezplatnou službu. Pokud ale chcete používat pokročilé funkce související se zabezpečením, jako jsou vlastníci kódu nebo požadované revidujícím, potřebujete týmový plán. Další informace najdete v tématu o cenách GitHubu.

Provozní dokonalost

Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.

APIOps může zvýšit produktivitu DevOps pro vývoj a nasazení rozhraní API. Jednou z nejužitečnějších funkcí je schopnost používat operace Gitu k rychlému vrácení změn, které se neočekávaně chovají. Graf potvrzení obsahuje všechna potvrzení, takže může pomoct s následnou analýzou.

Operátoři rozhraní API často spravují více prostředí pro stejnou sadu rozhraní API. Je typické mít několik fází rozhraní API nasazených do různých instancí služby API Management nebo ve sdílené instanci služby API Management. Úložiště Git, což je jediný zdroj pravdy, ukazuje, které verze aplikací jsou aktuálně nasazené do clusteru.

Když někdo vytvoří žádost o přijetí změn v úložišti Git, operátor rozhraní API ví, že má nový kód ke kontrole. Když například vývojář vezme specifikaci OpenAPI a sestaví implementaci rozhraní API, přidá tento nový kód do úložiště. Operátoři můžou žádost o přijetí změn zkontrolovat a ujistit se, že rozhraní API odeslané ke kontrole splňuje osvědčené postupy a standardy.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

ApiOps má mnoho výhod, ale s růstem prostředí API Management se tak složitost jejich správy mění. Toto řešení pomáhá řešit výzvy, jako jsou:

  • Přehled všech prostředí a instancí služby API Management
  • Sledování důležitých změn v rozhraních API a zásadách
  • Vytvoření záznamu auditu pro všechny nasazené změny

Nasazení tohoto scénáře

Nasazení tohoto řešení zahrnuje tyto kroky:

  • Vyvíjejte rozhraní API na portálu nebo proveďte změny specifikace OpenAPI pomocí nástroje podle vašeho výběru.

    • Pokud provedete změny na portálu, můžete spustit extraktor, který automaticky extrahuje všechna rozhraní API a další relevantní zásady, operace a konfigurace ze služby API Management. Tyto informace můžete synchronizovat s úložištěm Git.

    • Volitelně můžete k vytvoření nové žádosti o přijetí změn použít Azure DevOps CLI.

  • Pracovní postup extraktoru zahrnuje následující kroky:

  • V našem scénáři má kanál, který stáhne změny na portálu do instance služby API Management, následující fáze: extrakce sestavení, vytvoření artefaktů z portálu a vytvoření větve šablony.

    • Extrakce sestavení

      Tato fáze sestaví kód extraktoru.

    • Vytváření artefaktů z portálu

      Tato fáze spustí extraktor a vytvoří artefakty, které se podobají struktuře úložiště Git, jako je znázorněno na následujícím snímku obrazovky:

      Snímek obrazovky s automatizací APIM, který zobrazuje apim-instance a hierarchii složek

      • Vytvoření větve šablony

        Po vygenerování artefaktu tato fáze vytvoří žádost o přijetí změn se změnami extrahovanými pro tým platformy ke kontrole.

        Při prvním spuštění extraktoru načte všechno z úložiště Git. Vytvořená žádost o přijetí změn bude obsahovat všechna rozhraní API, zásady, artefakty atd.

        Pozdější extrakce mají pouze změny provedené před extrakcí v žádosti o přijetí změn. Někdy můžou být změny pouze specifikace rozhraní API, což je případ v následujícím příkladu žádosti o přijetí změn.

        Snímek obrazovky s ukázkovou žádostí o přijetí změn po extrakci, která zobrazuje navrhované změny souboru s názvem

  • Kontrolor přejde na žádosti o přijetí změn a zobrazí aktualizované žádosti o přijetí změn. Můžete také nakonfigurovat automatická schválení pro automatizaci tohoto kroku.

    Snímek obrazovky s ukázkou žádosti o přijetí změn, která zobrazuje změny obsahu v policy.xml a změny jenom prázdných znaků v jiných souborech

  • Po schválení žádosti o přijetí změn aktivuje jiný kanál, který se publikuje ze služby API Management na portál. V našem příkladu má následující fáze: tvůrce sestavení, ukončení sestavení a publikování instancí APIM.

    Snímek obrazovky fází v kanálu APIM-publish-to-portal

    • Fáze tvůrce sestavení zpracovává vytváření nových rozhraní API.
    • Fáze ukončení sestavení zpracovává všechny odstranění.
    • Fáze publikování instancí APIM publikuje změny v instanci služby API Management.

    Snímek obrazovky znázorňující úlohy v ukázkovém spuštění apiM-publish-to-portal, kanálu

    Po úspěšném spuštění tohoto kanálu publikuje změny v instanci služby API Management.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky