Üzembe helyezés magabiztosan

Befejeződött
Kiszámíthatósággal érheti el a kívánt üzembe helyezési állapotot.

Olyan számítási feladatok ellátási láncának létrehozása, amely lehetővé teszi, hogy következetesen elérje a kiszámíthatóság célját az összes környezetben, a számítási feladatok üzemeltetési platformjaiban, az alkalmazásokban, az adatokban és a konfigurációs erőforrásokban. Az üzembehelyezési mechanizmusnak képesnek kell lennie automatizálásra, tesztelésre, monitorozásra és verziószámozásra. Modulárisnak kell lennie, és készen kell állnia az igény szerinti végrehajtásra. Nem lehet monolitikus végpontok közötti folyamatként ábrázolni. Az ellátási lánc nem feltétlenül a gyorsabb végrehajtáshoz, hanem több iteráció konzisztenciájának és öndokumentációjának eléréséhez szükséges.

A számítási feladatokért felelős csapat felelős az ellátási láncért, mivel az a saját számítási feladatához kapcsolódik.

Példaforgatókönyv

A Contoso Manufacturing kifejlesztett egy Java-alapú alkalmazást, amely a gyártási folyamatok monitorozására és optimalizálására szolgál. A számítási feladat nemrég migrálva lett az Azure-ba, és most az Azure Spring Appsben, az Azure Database for MySQL-ben és az Azure IoT Hubon fut.

Infrastruktúra üzembe helyezése kóddal

Az infrastruktúra mint kód (IaC) használatával definiálhatja az éles üzemre kész ellátási lánc megismételhető aspektusait. A deklaratív megközelítéseket részesítse előnyben az imperatív módszerekkel szemben.

A deklaratív IaC-technológiák automatizálást és újrafelhasználhatóságot szem előtt tartva lettek kialakítva. Az infrastruktúra-telepítéseket ki lehet kapcsolni az egyénektől az eszközhasználatba, és konzisztens minőséget érhet el.

Az infrastruktúra szempontjából a kevesebb technológiai lehetőség kiküszöböli az eszközhasználat varianciáját, és megkönnyíti a konfigurációs eltérés észlelését. A karbantartás is egyszerűbb lesz. Ha a lehetőségeket a csapat meglévő készségkészletéhez igazítja, a csapat könnyen elfogadhatja őket.

A Contoso kihívása

  • A számítási feladat helyszíni verziója szkriptek és manuális lépések kombinációját használta az infrastruktúra kiépítéséhez és az alkalmazás környezetek közötti üzembe helyezéséhez. Az Azure-migrálás folyamatának korai szakaszában a csapat módosította a meglévő imperatív szkripteket, hogy megcélozza az új platformot, hogy a lehető legtöbb meglévő automatizálási kódbázist újra felhasználhassák. Ezt a megközelítést azért is alkalmazták, mert nem rendelkezik szakértelemmel az Azure-ral és az IaC-technológiákkal, például a Bicep-lel.
  • Ahogy a migrálás haladt, és a csapat jobban megismerte a platformot, meggyőződtek arról, hogy az IaC-megközelítés használata a Bicepvel hosszabb távon jobb megoldás lesz.

A megközelítés és az eredmények alkalmazása

  • A házon belüli tudás hiányában a csapat a számítási feladat üzembehelyezési automatizálási szkriptjeinek migrálására és kiterjesztésére vállalta a munkát tapasztalt alvállalkozók számára, akik a projekt kezdeti fázisaiban beágyazottak a fejlesztői csapattal, miközben tudásátvitelt biztosítottak a csapat többi tagjának.
  • Az eredményként kapott Bicep-alapú implementáció megbízhatóbb, kezelhetőbb és hatékonyabb módot kínál az infrastruktúra Azure-ban való kiépítésére. A kód mostantól olvashatóbb és karbantarthatóbb, és a VSCode nagyszerű eszköztámogatást nyújt. Ez is teljesen idempotens, és leegyszerűsíti az állapotkezelést, amelyet soha nem tudtak teljes mértékben elérni az előző/imperatív verzióval.

Az IaC kezelése ugyanúgy, mint az alkalmazáskód

Kövesse az IaC-fejlesztésre és -karbantartásra vonatkozó szoftverjavaslatokat: Moderálással modularizáljon, kerülje az egyéni vagy alacsony értékű absztrakciókat, és kövesse a rétegzett megközelítést a különböző életciklusok tükrözése érdekében. Alaprétegek létrehozása, ahol az alsó rétegek állandóak maradnak, és a felső rétegek szükség szerint változnak.

Az üzembehelyezési összetevők, például az alkalmazás bináris fájljai, az IaC-sablonok és a paraméterek a támadási felület részét képezik. Biztosítékokat alkalmazhat, például a titkos kódok kezelését, a hozzáférés-vezérlést és a biztonsági pillér egyéb alapelveit.

Az összetevők ugyanolyan szintű mérnöki szigort tapasztalnak, mint az alkalmazáskód. A minőségellenőrzések a társértékelések és a tesztelés révén megbízhatóságot biztosítanak az üzembe helyezésben.

A rétegzett megközelítés megkönnyíti a karbantartást, és olyan határokat hoz létre, amelyek egyértelmű felelősségi vonalakat hoznak létre.

A biztonsági vezérlők összetevőkhöz való hozzáadása segít a rendszer megerősítésében az üzembe helyezési folyamat során.

A Contoso kihívása

  • A projektcsapat a migrálási munka elején nagyvonalú költségvetéssel rendelkezett, ezért nagyon tapasztalt alvállalkozókat alkalmaztak, amelyek magas minőségben és rövid idő alatt teljesítettek. A alvállalkozók külön adattárat használtak a fejlesztésükhöz, és az adattárat nem auditálták rendszeresen biztonsági okokból, míg a fő alkalmazáskód-adattár.
  • A csapat készen áll a megoldás jelentős újratervezésének kiadására, és az üzembehelyezési kódnak jelentős változásokra van szüksége. A fejlesztési erőforrások szűkössége miatt a legújabb módosításokat két gyakornok végzi. Amikor a csapat egyik vezető fejlesztőjét meghívják, hogy segítsenek a gyakornokoknak, több olyan véglegesítést észlel az adattárban, amelyek nincsenek összhangban a csapat fejlesztési szabványaival, beleértve az alkalmazás titkos kulcsait, például az API-kulcsokat a kódbázisban.

A megközelítés és az eredmények alkalmazása

  • A csapat úgy dönt, hogy a build- és üzembehelyezési kódbázist az alkalmazáskódhoz használt adattárba helyezi át, és a kódbázis más területeihez hasonló mérnöki szigort alkalmaz. A kód az első véglegesítés előtt kerül a csapatszabványok közé, eltávolítja az alkalmazás titkos kulcsait, és minden más csapatminőségi szabványt és eszközt alkalmaz rá.
  • Ennek eredményeképpen a csapat biztosította a kódbázis ezen szakaszát a kódminőség növelése mellett. A jövőben a kódbázis ezen területén végzett módosítások ugyanazokat a szabványokat követik, és ugyanazokat az eszközöket használják, amelyeket az alapvető alkalmazáskódbázishoz használnak, beleértve a társkód-felülvizsgálatokat és a kód automatikus vizsgálatát minőségi és biztonsági eszközökkel.

Üzemelő példányok egységesítése egyetlen jegyzékben

Dolgozzon ki egy általános üzembehelyezési jegyzékfájlt, amelyet minden környezetben használnak. Használja ezt a jegyzékfájlt alapértelmezett mechanizmusként zöldmezős projektekhez, növekményes számítási feladatok frissítéséhez vagy vészhelyreállításhoz.

Ennek a módszernek a alkalmazása lehetővé teszi, hogy eltávolítsa a több eszköz karbantartásának többletterhelését.

Ha katasztrófa történik, a helyreállítás gyors és megbízható lesz, mert rögtönzött környezet létrehozása helyett üzembe helyezhet egy kipróbált és tesztelt jegyzékfájlt.

A Contoso kihívása

  • A Contoso Manufacturing egy teljesen automatizált folyamatot használ az infrastruktúra, az alkalmazáskód és a konfiguráció változásainak üzembe helyezéséhez a fejlesztési és éles környezetben. Az alkalmazás úgy van konfigurálva, hogy egyetlen régióban legyen magas rendelkezésre állású. A legtöbb alkalmazásösszetevő állapot nélküli, kivéve a MySQL-adatbázist. Az adatbázis biztonsági mentése a létrehozott RTO/RPO által diktált módon történik, a biztonsági mentés pedig egy másodlagos régióba lesz replikálva.
  • Ha jelentős vagy katasztrofális hiba történik az elsődleges régióban, a csapat új környezetet tervez létrehozni az alkalmazás másodlagos régióban való üzemeltetéséhez. A DR-eljárások tesztelésére tervezett részletezés során az üzembehelyezési szkriptek sikertelenek lesznek, amikor megpróbálják újra létrehozni a környezetet a másodlagos régióban, mivel számos erőforrás és egyéb szolgáltatáskorlátozás nem áll rendelkezésre.

A megközelítés és az eredmények alkalmazása

  • A csapat enyhíti a másodlagos régióban történő üzembe helyezés során tapasztalt problémákat, mivel egyes erőforrások használatát a mindkét régióban elérhető egyenértékű termékváltozatokra cseréli, és konfigurálhatóvá tesz bizonyos beállításokat, hogy egy másik, de érvényes értéket lehessen használni a másodlagos régióban.
  • A gyakorlat növelte a csapat megbízhatóságát abban, hogy képesek lesznek helyreállni a jelentős infrastruktúrahibákból.

Tesztelje tudását

1.

Hogyan segíthet az infrastruktúra kódként való üzembe helyezése a magabiztos üzembe helyezésben?

2.

Hogyan segített a Contoso csapatának magabiztos üzembe helyezésében az IaC-kód ugyanabba az adattárba való áthelyezése, mint az alkalmazáskód?

3.

Az alábbiak közül melyik segíthet a DR-környezet hatékony üzembe helyezésében?