Szerkesztés

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


Kék/zöld környezetek alkalmazásokhoz az Azure Spring Appsben

Azure Spring Apps
GitHub
Azure DevOps

Ez a cikk egy magas rendelkezésre állású kék/zöld üzembe helyezési megoldást ismertet az Azure Spring Apps-alkalmazásokhoz.

A kék/zöld üzembe helyezési minta magában foglalja az alkalmazás meglévő verziójának élőben tartását (az úgynevezett kék verziót), miközben az alkalmazás új verziója (az úgynevezett zöld verzió) üzemel. Ez az üzembe helyezés lehetővé teszi az új alkalmazásverzió önálló újraindítását, bemelegítését és tesztelését. Az alkalmazás új verziójának futtatása után átválthat rá, és átirányíthatja az új bejövő forgalmat. Az alkalmazás felhasználója számára az új verzió üzembe helyezése látható állásidő nélkül történik. A kék/zöld üzembe helyezés megkönnyíti az új verzió elhagyását anélkül, hogy az hatással lenne az élő verzióra, ha egy új üzembe helyezés nem a várt módon működik.

Architektúra

Az alábbi ábra a megközelítés architektúrájának szemléltetését mutatja be:

A GitHubot, a GitHub Actionst és az Azure Spring Appst használó kék/zöld üzembe helyezés architektúráit bemutató ábra.

Töltse le az architektúra Visio-fájlját.

Összetevők

Ez a megoldás a következő összetevőket használja:

  • Az Azure Spring Apps egy modern mikroszolgáltatási platform Java Spring Boot és Steeltoe .NET Core-alkalmazások futtatásához. A szolgáltatás kiküszöböli a mikroszolgáltatások futtatásához szükséges sablonkódot, és segít a robusztus alkalmazások gyors fejlesztésében a felhőben. Az Azure Spring Apps használatával alkalmazásonként is üzembe helyezheti a kódot.

  • A GitHub egy kódüzemeltetési platform, amely verziókövetést és együttműködést biztosít. A GitHub git elosztott verziókövetést, forráskódkezelést és egyéb funkciókat biztosít.

  • A GitHub Actions segítségével automatizálhatja a szoftverfejlesztési és üzembehelyezési munkafolyamatokat egy adattárból. A platformmal teljesen automatizált folyamatos integrációt és folyamatos kézbesítést (CI/CD) hozhat létre. A GitHub Actions használatával olyan környezeteket is létrehozhat, amelyekhez olyan szabályokat konfigurálhat, mint a véleményezők megkövetelése.

Munkafolyamat

A megoldásarchitektúra a következő munkafolyamatot valósítja meg:

  1. Egy fejlesztő módosít egy alkalmazást. A GitHub-adattár tartalmazza az Azure Spring Appsben üzembe helyezendő alkalmazáskódot. Az alkalmazáskód minden módosítása a forráskövetés alatt történik. A GitHub a következő feladatokat hajtja végre:

    • Győződjön meg arról, hogy a módosítások felülvizsgálatra kerülnek.

    • Megakadályozza a nem szándékos vagy jogosulatlan módosításokat.

    • Győződjön meg arról, hogy a minőségellenőrzés befejeződött.

  2. A GitHub-adattár egy GitHub Actions-munkafolyamatot is tartalmaz a kódmódosítások létrehozásához és a szükséges minőségi ellenőrzések elvégzéséhez. A kód fordítása után a GitHub Actions munkafolyamat üzembe helyezi az alkalmazáskód legújabb verzióját az Azure Spring Appsben. A GitHub Actions munkafolyamat a következő lépéseket tartalmazza:

    1. Határozza meg az aktuális aktív éles környezetet.

    2. Helyezze üzembe a kódot egy nem gyártási környezetben. Ha egy nem gyártási környezet nem létezik, hozza létre a környezetet.

      Az üzembe helyezés ezen pontján az alkalmazás régi (kék) verziója továbbra is minden éles forgalmat fogad.

    3. Várja meg az új alkalmazás üzembe helyezési felülvizsgálatát és jóváhagyását.

      Ez a lépés időt ad az újonnan üzembe helyezett alkalmazásnak (a zöld verziónak) az indításra és a bemelegítésre.

      Jóváhagyás előtt az alkalmazás nem gyártási URL-címével ellenőrizheti az új verziót, és meggyőződhet arról, hogy készen áll.

    4. A jóváhagyás után váltsa át az éles üzembe helyezést és a nem termelési üzembe helyezést.

      Az összes éles forgalom most az alkalmazás új verziójára irányítja.

      Feljegyzés

      Ha elutasítja az új üzembe helyezést, a GitHub nem váltja át a környezeteket. Az előző verzió továbbra is megkapja az éles forgalmat.

    5. A jóváhagyás és a forgalomváltás után törölje a régi éles üzembe helyezést.

      Ez a tisztítási lépés költséghatékonyabb beállítást eredményez.

Alternatívák

Ez a megoldás a GitHub Actions használatával automatizálja az üzembe helyezést. Alternatív megoldásként használhatja az Azure Pipelinest vagy bármely más CI/CD automatizálási rendszert is. A Forgatókönyv üzembe helyezés szakaszában megadott minta a lehető legnagyobb mértékben használja az Azure CLI-utasításokat, így ezt a beállítást egyszerűen lefordíthatja egy másik automatizálási eszközre. Egy CI/CD-eszközzel beállíthat egy környezetet, és jóváhagyási folyamatot hozhat létre rajta.

Ez az architektúra az Üzembe helyezésekkel rendelkező Azure Spring Appst használja célszolgáltatásként. Alternatív megoldásként használhatja a Azure-alkalmazás szolgáltatás átmeneti tárolóhelyeit. A pont tartalmazza az alkalmazás új verzióját, amely újra betölthető, bemelegíthető és tesztelhető a pontcserélés előtt. A pontcserék az új verziót éles környezetben helyezik üzembe. Ez a folyamat be van építve a szolgáltatásba, így a beállítás egyszerű.

Másik lehetőségként bármely olyan Azure-szolgáltatást elhelyezhet, amely webes végpontokat üzemeltet egy terheléselosztási megoldás mögött. Ha ezt a módszert használja, elindíthatja az Azure-szolgáltatás egy második példányát, ahol üzembe helyezheti az alkalmazás új verzióját. Következő lépésként nulla állásidős üzembe helyezést hozhat létre, ha a terheléselosztási megoldás forgalmát az alkalmazás új verzióját tartalmazó Azure-szolgáltatásra állítja. Ne feledje, hogy a kék/zöld üzembe helyezés ezen megközelítése jelentős felügyeleti többletterhelést igényel.

Forgatókönyv részletei

Egyes felhőalkalmazások esetében a lehető legnagyobb üzemidő fenntartása kritikus fontosságú. Az egyik megoldás a magas rendelkezésre állású konfiguráció használata, amely megduplázhatja a költségeket. Egy másik megoldás egy vészhelyreállítási terv, amely egy kimaradás után ismét egy másik régióban hozza létre az alkalmazást. Az utóbbi költsége alacsonyabb lehet, de a teljes alkalmazás online állapotba hozása újra időt vesz igénybe.

Ez a cikk az alkalmazás új verziójának üzembe helyezése során a magas rendelkezésre állás biztosításának folyamatát ismerteti. Hagyományos konfiguráció esetén az alkalmazás új bitjei az alkalmazást üzemeltető szolgáltatásban lesznek üzembe helyezve. Ez a konfiguráció gyakran az alkalmazás újratöltéséhez és újraindításához vezet. A folyamat során az alkalmazás nem érhető el.

Ez a megoldás az Azure Spring Apps használatával valósítja meg a kék/zöld üzembe helyezést, és kezeli az alkalmazások üzembe helyezésének automatizálását.

Lehetséges használati esetek

Ez a megoldás minden olyan szervezet számára előnyös lehet, amely magas rendelkezésre állást igényel. A megoldás különösen alkalmas olyan iparágak számára, mint az e-kereskedelem és a játék, ahol az állásidő az üzletmenet és a bevétel elvesztéséhez vezethet.

A rendelkezésre állási idő nélküli üzemelő példányok implementálásával tovább javíthatja a rendelkezésre állást. További információkért tekintse meg a cikk Alternatívák szakaszát.

Megfontolások

Az alábbi megoldási szempontok implementálják az Azure Well-Architected Framework alappilléreit. Ez a keretrendszer a számítási feladatok minőségének javítására használható vezérelvek készlete. További információ: Microsoft Azure Well-Architected Framework.

Elérhetőség

Ez a megoldás segít fenntartani az alkalmazás rendelkezésre állását az új verzió üzembe helyezése során. Nem növeli az Azure Spring Apps által biztosított általános SLA-t. A platform szolgáltatáshibái továbbra is hatással lehetnek az alkalmazásra.

Ha azt szeretné, hogy egy megoldás növelje a konfiguráció általános SLA-ját, tekintse meg egy magas rendelkezésre állású Azure Spring Apps-szolgáltatás beállítását több régióban. Ebben a megközelítésben egy globális terheléselosztási megoldással irányítja elő a konfigurációt.

Méretezhetőség

Ez a megoldás alkalmazásonként működik, így jól használható mikroszolgáltatás-alkalmazásokhoz. Emellett lehetővé teszi, hogy az alkalmazáscsapatok a többi alkalmazáscsapattól függetlenül működjenek anélkül, hogy befolyásolják az általános megoldás üzemidejét.

Ez a megoldás alkalmazásonként is a legjobban működik, ahol minden alkalmazás saját kék/zöld üzembe helyezési munkafolyamatokkal rendelkezik. Ha ugyanabban a munkafolyamatban egyesíti az alkalmazásokat, ez a konfiguráció gyorsan összetetté válik, ezért nem javasoljuk ezt a megközelítést.

Biztonság

A biztonság biztosítékokat nyújt a szándékos támadások és az értékes adatokkal és rendszerekkel való visszaélés ellen. További információ: A biztonsági pillér áttekintése.

Az adattárengedélyek beállításán kívül fontolja meg a következő biztonsági intézkedések implementálását az Azure Spring Appsben üzembe helyezni kívánt kódot tartalmazó Git-adattárakban:

  • Ágvédelem. Védje meg az alkalmazás éles állapotát képviselő ágakat attól, hogy a módosítások közvetlenül hozzájuk legyenek küldve. Minden módosítási javaslatot lekéréses kérelemként (PR) kell benyújtani. A PRs használatával automatikus ellenőrzéseket végezhet. Az ellenőrzések magukban foglalhatják az összes kód összeállítását és az egységtesztek futtatását azon a kódon, amelyet a lekéréses kérelem létrehoz vagy módosít.

  • PR-felülvizsgálat. A négyszemű elv érvényesítéséhez megkövetelheti, hogy a PRS-ek legalább egy felülvizsgálóval rendelkezzenek. A GitHub-kódtulajdonosok funkcióval olyan személyeket vagy csapatokat is meghatározhat, akik az adattár adott fájljainak áttekintéséért felelősek.

  • Nem módosítható előzmények. Csak új véglegesítések engedélyezése a meglévő módosításokon felül. A nem módosítható előzmények naplózási szempontból különösen fontosak.

  • További biztonsági intézkedések. A GitHub-felhasználóktól megkövetelheti a többtényezős hitelesítés aktiválását. Emellett csak aláírt véglegesítéseket engedélyezhet, amelyek később nem módosíthatók.

Azt is javasoljuk, hogy csak egy Azure Spring Apps-szolgáltatásban telepítsen. Éles környezetben először tesztelje a kódot más környezeteken, mielőtt éles környezetben üzembe helyezené. Az éles környezetnek lehetőleg a fejlesztési és tesztelési környezettől eltérő környezetben kell lennie.

Az Azure Spring Apps szolgáltatás extra biztonságáról az Azure Spring Apps üzembe helyezése virtuális hálózaton című témakörben olvashat. Ha implementálja az ajánlott üzembe helyezést, nem használhatja a GitHub által üzemeltetett futókat. Az üzembe helyezési munkafolyamathoz saját futót kell használnia.

DevOps

Ennek a beállításnak a GitHub Actions-munkafolyamatokon keresztüli automatizálása növeli a DevOps hatékonyságát. Az egyik leg hasznosabb funkció a váratlanul viselkedő változások gyors visszaállításának lehetősége. Csak utasítsa el az új üzembe helyezést.

A Teams gyakran több környezetet kezel ugyanahhoz az alkalmazáshoz. Általában egy alkalmazás több verziója van üzembe helyezve különböző Azure Spring Apps-szolgáltatásokban. A Git-adattár, amely az igazság egyetlen forrása, azt mutatja, hogy az alkalmazások mely verziói vannak jelenleg üzembe helyezve egy fürtben.

Költségoptimalizálás

A költségoptimalizálás magában foglalja a szükségtelen kiadások csökkentésének és a működési hatékonyság javításának módját. További információ: A költségoptimalizálási pillér áttekintése.

Az Azure díjkalkulátorával megbecsülheti költségeit.

Az Azure Spring Apps alapszintű és standard szintű. További részletekért tekintse meg az Azure Spring Apps díjszabását. A kék/zöld üzembehelyezési stratégia használatakor csak rövid ideig kell fizetnie a virtuális SPU-kért, amíg az üzembe helyezés fut.

A GitHub ingyenes szolgáltatást kínál. A speciális, biztonsággal kapcsolatos funkciók, például a kódtulajdonosok vagy a szükséges felülvizsgálók használatához azonban szüksége van a Csapat csomagra. További információt a GitHub díjszabási oldalán talál.

Forgatókönyv üzembe helyezése

Ennek a konfigurációnak a mintájáért tekintse meg az Azure Spring Apps-alkalmazások GitHub-adattárának automatikus kék/zöld üzembe helyezését. Az adattár tartalmazza az Azure Spring Apps-szolgáltatás Bicep-sablonnal történő beállításának lépéseit is.

Közreműködők

A Microsoft fenntartja ezt a tartalmat. A következő közreműködő fejlesztette ki az eredeti tartalmat.

Fő szerző:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.

Következő lépések