Megosztás a következőn keresztül:


API-k közzététele a DevOps és a CI/CD használatával

A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint

A vállalati API-k stratégiai értékével a DevOps folyamatos integrációs (CI) és üzembe helyezési (CD) technikák bevezetése az API-fejlesztés fontos aspektusává vált. Ez a cikk az API-k kezelésére vonatkozó DevOps-alapelvek elfogadásához szükséges döntéseket ismerteti.

Az API DevOps három részből áll:

Az API DevOps-folyamatot bemutató ábra.

Az API DevOps-folyamat minden részét az alábbiakban tárgyaljuk.

API-definíció

Az API-fejlesztők egy API-definíciót írnak egy specifikáció, a beállítások (például a naplózás, a diagnosztika és a háttérbeállítások) és az API-ra alkalmazandó szabályzatok megadásával. Az API-definíció az API Azure API Management szolgáltatáson való kiépítéséhez szükséges információkat tartalmazza. A specifikáció alapja lehet egy szabványalapú API-specifikáció (például WSDL, OpenAPI vagy GraphQL), vagy az Azure Resource Manager (ARM) API-k (például az API-t és a műveleteket leíró ARM-sablon) használatával határozható meg. Az API-definíció idővel megváltozik, és "forráskódnak" kell tekinteni. Győződjön meg arról, hogy az API-definíció forráskód-vezérlés alatt van tárolva, és megfelelő felülvizsgálatot kapott a bevezetés előtt.

Az API-definíció létrehozásához több eszköz is rendelkezésre áll:

  • Az Azure APIOps Toolkit egy Git-forráskódvezérlő rendszerre (például GitHubra vagy Azure Reposra) épülő munkafolyamatot biztosít. Egy kitermelő használatával hoz létre egy API-definíciót, amelyet aztán egy közzétevő alkalmaz egy cél API Management szolgáltatásra. Az APIOps jelenleg a REST és a GraphQL API-kat támogatja.
  • A dotnet-apim eszköz egy jól formázott YAML-definíciót alakít át ARM-sablonná későbbi üzembe helyezéshez. Az eszköz a REST API-kra összpontosít.
  • A Terraform az Azure Resource Manager alternatíva az erőforrások Azure-ban való konfigurálásához. Létrehozhat egy Terraform-konfigurációt (szabályzatokkal együtt), hogy az API-t ugyanúgy implementálja, mint egy ARM-sablont.

IDE-alapú eszközöket is használhat szerkesztőkhöz, például a Visual Studio Code-hoz az API definiálásához szükséges összetevők előállításához. A Visual Studio Code Marketplace-en például több mint 30 beépülő modul használható OpenAPI-specifikációs fájlok szerkesztéséhez. Az összetevőket kódgenerátorokkal is létrehozhatja. A CADL-nyelv lehetővé teszi, hogy egyszerűen magas szintű építőelemeket hozzon létre, majd lefordítsa őket egy szabványos API-definíciós formátumba, például az OpenAPI-ba.

API-jóváhagyás

Az API-definíció létrehozása után a fejlesztő elküldi az API-definíciót felülvizsgálatra és jóváhagyásra. Ha git-alapú forráskódvezérlő rendszert (például GitHubot vagy Azure Repost) használ, a beküldés lekéréses kérelemmel is elvégezhető. A lekéréses kérelem tájékoztatja a többi felhasználót az API-definícióban javasolt módosításokról. A jóváhagyási kapuk megerősítése után a jóváhagyó egyesíti a lekéréses kérelmet a fő adattárban, hogy jelezhesse, hogy az API-definíció üzembe helyezhető az éles környezetben. A lekéréses kérelem folyamata lehetővé teszi a fejlesztő számára, hogy elhárítsa a jóváhagyási folyamat során felmerülő problémákat.

A GitHub és az Azure Repos egyaránt lehetővé teszi a lekéréses kérelmek elküldésekor futó jóváhagyási folyamatok konfigurálását. A jóváhagyási folyamatokat úgy konfigurálhatja, hogy olyan eszközöket futtasson, mint például:

Az automatizált eszközök futtatása után az API-definíciót az emberi szem áttekinti. Az eszközök nem fogják elkapni az összes problémát. Az emberi felülvizsgáló biztosítja, hogy az API-definíció megfeleljen az API-k szervezeti feltételeinek, beleértve a biztonsági, adatvédelmi és konzisztencia-irányelvek betartását.

API-kiadvány

Az API-definíció egy kiadási folyamaton keresztül lesz közzétéve egy API Management szolgáltatásban. Az API-definíció közzétételéhez használt eszközök az API-definíció létrehozásához használt eszköztől függnek:

  • Az Azure APIOps Toolkit használata esetén az eszközkészlet tartalmaz egy közzétevőt, amely az API-definíciót a célszolgáltatásba írja.
  • Ha dotnet-apimot használ, az API-definíció ARM-sablonként jelenik meg. Az Azure Pipelineshoz és a GitHub Actionshez elérhető feladatok ARM-sablon üzembe helyezéséhez.
  • A Terraform használata esetén a CLI-eszközök üzembe helyezik az API-definíciót a szolgáltatásban. Az Azure Pipelineshoz és a GitHub Actionshez számos feladat érhető el.

Használhatok más forráskód-vezérlőt és CI/CD-rendszereket?

Igen. A leírt folyamat bármilyen forráskód-vezérlő rendszerrel működik (bár az APIOps megköveteli, hogy a forráskód-vezérlő rendszer git-alapú legyen). Hasonlóképpen bármilyen CI-/CD-platformot használhat, feltéve, hogy egy bejelentkezés aktiválja, és futtatja az Azure-ral kommunikáló parancssori eszközöket.

Ajánlott eljárások

Az API-k közzétételére szolgáló DevOps-folyamat beállításához nincs iparági szabvány, és az említett eszközök egyike sem fog minden helyzetben működni. Azt azonban látjuk, hogy a legtöbb helyzetet az alábbi eszközök és szolgáltatások kombinációjával fedjük le:

Láttuk a legnagyobb sikert az ügyfelek üzembe helyezésében, és az alábbi eljárásokat javasoljuk:

  • Állítsa be a GitHubot vagy az Azure Repost a forráskódvezérlő rendszerhez. Ez a választás határozza meg a folyamatfuttató kiválasztását is. A GitHub használhatja az Azure Pipelinest vagy a GitHub Actionst, míg az Azure Reposnak Azure Pipelinest kell használnia.
  • Állítson be egy Azure API Management szolgáltatást minden API-fejlesztőhöz, hogy az API-szolgáltatással együtt API-definíciókat is fejleszthessenek. A szolgáltatás létrehozásakor használja a használatot vagy a fejlesztői termékváltozatot.
  • Szabályzattöredékek használatával csökkentheti a fejlesztők által az egyes API-khoz írandó új szabályzatokat.
  • Névvel ellátott értékek és háttérrendszerek használatával győződjön meg arról, hogy a szabályzatok általánosak, és bármely API Management-példányra alkalmazhatók.
  • Az Azure APIOps Toolkit használatával kinyerhet egy működő API-definíciót a fejlesztői szolgáltatásból.
  • Állítson be egy API-jóváhagyási folyamatot, amely minden lekéréses kérelemen fut. Az API jóváhagyási folyamatának tartalmaznia kell a kompatibilitástörő változásészlelést, a lintinget és az automatizált API-tesztelést.
  • Az Azure APIOps Toolkit publisher használatával tegye közzé az API-t az éles API Management szolgáltatásban.

Az Azure Architecture Center APIOps használatával történő automatizált API-üzemelő példányaival kapcsolatos további részletekért tekintse át, hogyan konfigurálhat és futtathat CI/CD üzembehelyezési folyamatot az APIOps használatával.

Hivatkozások