Azure-technológiák a buildelési folyamathoz

Befejeződött

Ebben a leckében megismerheti az innovációs folyamat és az iparág egyes technológiáinak kapcsolatát, amelyek segítségével új funkciókat építhet alkalmazásokba.

DevOps

Miután elindította az innovációs hipotézis érvényesítéséhez szükséges buildelési fázist, a szükséges fejlesztési, integrációs és üzembehelyezési ciklusoknak a lehető leggördülékenyebbnek kell lenniük. Ebben a fázisban érkezik a DevOps. A DevOpsot "folyamatokként és eszközökként definiálhatja a szoftverfunkciók gyors és megbízható biztosításához". A definíció részletei a következők:

  • Folyamatok és eszközök: A DevOps és az innovációs folyamat egésze olyan kulturális mintákon alapul, amelyek ösztönzik a változást. Az Azure és a GitHub nagyszerű eszközöket kínál a DevOps körül, de a licenc vásárlása nem elég. A folyamatoknak és a szervezeti kultúrának fejlődnie kell a változás és az innováció használatához.

  • Szoftverfunkciók gyors biztosítása: A DevOps-folyamatok és -eszközök a gyors sikertelenség fogalmát is magukban foglalják. MVP-k vagy prototípusok létrehozása annak gyors ellenőrzéséhez, hogy az a funkció, amelyen dolgozik, a megfelelő irányba halad-e, a DevOps koncepciójának alapvető eleme.

  • A szoftverfunkciók megbízható kézbesítése: A változás-averse szervezetek gyakran társítják a gyors módosításokat az állásidővel. A DevOps azonban pontosan az ellenkezőjét ígéri: gyors változási arányt és magas szintű megbízhatóságot. Ezt a megbízhatóságot úgy lehet lehetővé tenni, hogy a tesztelést a fejlesztési ciklus korai szakaszában integráljuk egy "balra tolódás" nevű folyamatba.

    Ha egy funkció fejlesztése a teljes idő alatt balról jobbra haladó vonalként jelenik meg. Ezt követően egy örökölt fejlesztési folyamat a fejlesztési ciklus végén elvégzi a felhasználóérvényesítést és a minőség-ellenőrzést. A sor "jobb" végén. A DevOps azt javasolja, hogy a lehető leghamarabb tesztelje és ellenőrizze az adott idővonal "bal oldalán".

A DevOps az egészséges innovációs kultúra alapvető fogalmait testesíti meg. Módszertanának bevezetése kulcsfontosságú az agilis innovációs ciklus eléréséhez.

Mikroszolgáltatás-architektúrák

A modularitás egy jól ismert technika az összetett rendszerek tervezésének összetettségének csökkentésére. Ha a rendszer sok olyan elem összetett interakciója, amelyet nem lehet szétválasztani (gyakran "monolitnak" is nevezik), a szoros összetevők közötti kölcsönhatások megnehezítik a rendszer fejlesztését. Minden módosítást ellenőrizni kell a rendszer többi részével, így a tesztelési folyamat összetett.

Ha a rendszer moduláris, elkülönítheti kisebb alrendszerekre, amelyek jól meghatározott interfészeken keresztül kommunikálnak egymással. Ezen alrendszerek egyikében egyszerűbb változtatásokat bevezetni, mert amíg a többi modullal való felülete állandó marad, az általános rendszer továbbra is működik.

A mikroszolgáltatási architektúrák olyan alkalmazásminták, amelyek kihasználják a modularitást. Az alkalmazások különálló, kis összetevőkre vannak felosztva, amelyek egymástól függetlenül fejleszthetők, akár különböző programozási nyelvek használatával is. Minden összetevő vagy mikroszolgáltatás önállóan működhet. Igény szerint skálázhatja, egyetlen egységként elháríthatja, a többi mikroszolgáltatástól függetlenül módosíthatja.

A szervezetek által gyakran feltett kérdés az, hogy mi a teendő, ha egy alkalmazás monolitikus. Az innováció bevezetése előtt újra kell-e terveznie a szervezetnek az alkalmazást mikroszolgáltatás-architektúrává, vagy párhuzamosan futhatnak az innovációs és újratervezési folyamatok? Erre a kérdésre nincs egyetlen válasz sem. Ez a vizsgált alkalmazás összetettségétől és üzleti relevanciájától függ.

A Tailwind Traders ezzel a kérdéssel szembesült, amikor az innovációt az e-kereskedelmi platformján tekinti át. A vállalat úgy döntött, hogy elindít egy projektet az e-kereskedelmi alkalmazás mikroszolgáltatás-architektúrává való újratervezéséhez, mivel az alkalmazás üzleti kritikussága indokolta ezt az erőfeszítést. Ha nem rendelkezik moduláris alkalmazással, az jelentősen rontaná a Tailwind Traders azon képességét, hogy reagáljon az online piac változó trendjeire.

A Tailwind Traders azonban úgy döntött, hogy a platform néhány jelentős hiányosságát egyszerre kezeli. Ha az alkalmazás újratervezési projektje befejeződik, azzal jelentős piaci részesedést veszítene az új startupok számára, amelyek jelenleg zavarják az e-kereskedelmi piacot.

A projektek az innovációk üzleti értékével vezérelve kommunikálnak egymással. Az újratervezési erőfeszítések a legkritikusabb alkalmazási területekre összpontosítanak, ahol a legnagyobb szükség van az ügyfélélmény javítására irányuló módosításra.

Tárolók

A tárolók technológiája nem kizárólagos a mikroszolgáltatás-architektúrákra, de a fogalmak együttműködnek. A tárolók segítségével beágyazhatók az alkalmazáskódok és azok függőségei, így bármilyen platformon könnyedén üzembe helyezhetők.

A hagyományos alkalmazástelepítések megkövetelik, hogy a szervezet először telepítse a szoftvereket, például az alkalmazás futtatókörnyezetét, a programozási kódtárakat vagy a külső összetevőket. Ez a megközelítés gyakran "működik a gépemen" problémát eredményez: nehéz ugyanazt a környezetet replikálni a fejlesztés, a tesztelés, az előkészítés és az éles környezet között. Az alkalmazásfüggőségek telepítésének kis eltérései miatt az alkalmazás a tesztelés során jól működik, de az éles környezetben történő üzembe helyezéskor meghiúsul.

A tárolók megváltoztatják a játék szabályait. Az alkalmazásfüggőségek az alkalmazáskóddal együtt vannak csomagolva egy tárolórendszerkép nevű autonóm üzembehelyezési egységben. Függetlenül attól, hogy az alkalmazástároló egy fejlesztő laptopján vagy több száz csomópontot tartalmazó éles fürtben van-e üzembe helyezve, a függőség kezelése ugyanaz. A tároló pontosan ugyanúgy működik, így az alkalmazástesztelés megbízhatóbb és megbízhatóbb.

A tárolók hosszú utat tettek meg, mióta a Docker 2013-ban nyílt forráskód adta ki a kódját. A tárolók mostantól támogatják a Linux és a Windows rendszert, valamint a különböző CPU-architektúrákat. Az Azure-ban számos olyan ajánlat létezik, amely lehetővé teszi a tárolóalapú számítási feladatok futtatását. Ebben a leckében néhányat megismerhet.

Kubernetes és Red Hat OpenShift

A tároló futtatókörnyezete az a technológia, amely tárolókat indít el a számítógépen, de éles környezetben több logikára van szükség. Ki helyez üzembe több tárolót, ha nagyobb teljesítményre van szükség? Ki indítja újra a tárolókat, ha probléma merül fel? Ha több számítógép is rendelkezésre áll, ki dönti el, hogy melyik tárolót kell elindítani? Ezek és más feladatok egy tárolóvezénylési platform feladata.

A Kubernetes első verziója 2015-ben jelent meg, és hamarosan a tárolóvezénylés de facto szabványává vált. A Kubernetes-fürtök több feldolgozó csomópontból állnak. Minden feldolgozó csomópont rendelkezik tároló-futtatókörnyezetpel, így olyan tárolókat futtathat, ahol a Kubernetes vezérlősíkja ütemezi a tárolóalapú alkalmazások üzembe helyezését. Ez a vezérlősík általában magcsomópontok halmazában fut. Feladata az alkalmazás megfelelő működésének fenntartása, az alkalmazás fel- vagy leskálázása, valamint a szükséges frissítések végrehajtása.

A Kubernetes népszerűségének egyik fő oka a tárolók által biztosított hardverfüggőség. Mivel a tárolóalapú alkalmazások megbízhatóan üzembe helyezhetők bármely tároló-futtatókörnyezetben, a Kubernetes különböző hipervizorokat használó felhőkben is futtatható. Az üzembe helyezett alkalmazásoknak hasonlóan kell viselkedniük (feltéve, hogy a mögöttes hardvererőforrások is hasonlóak). Számos szervezet absztrakciós rétegként alkalmazta a Kubernetes-t, amely lehetővé teszi a helyszíni és a nyilvános felhőkben egyaránt konzisztens alkalmazástelepítési folyamatokat.

A Kubernetes azure-beli futtatása egyszerű. Az Azure Kubernetes Service egyszerűen üzembe helyezhető és költséghatékony, mivel az ügyfélnek csak a feldolgozó csomópontok költségeiért kell fizetnie. A Microsoft az alapvető összetevőket tartalmazó vezérlősík költségeit és működését végzi. A Microsoft kijavítja és frissíti a feldolgozó csomópontok operációs rendszerét, és tovább csökkenti a Kubernetes-fürt Linux- és Windows-tárolók futtatásához való kezelésének működési összetettségét.

Az OpenShift egy Kubernetesen alapuló alkalmazás-üzembehelyezési platform, amelyet a Red Hat fejlesztett ki és támogat. Számos más funkciót is magában foglal. Egyes szervezetek, amelyek úgy döntenek, hogy openshiften futtatják az alkalmazásaikat, a Red Hat által biztosított további funkciók és támogatás miatt teszik ezt. Az OpenShift azure-on való futtatása ismét egyszerű. Az Azure Red Hat OpenShift egy OpenShift-fürtből áll, amelynek számos aspektusát a Microsoft kezeli, beleértve a fürt teljes életciklusát is.

Azure App Service

Azure-alkalmazás szolgáltatás olyan platform, ahol a szervezetek anélkül futtathatják webes számítási feladataikat, hogy vezénylőt vagy mögöttes operációs rendszert kellene kezelniük. Az egyetlen követelmény az alkalmazáskód feltöltése a szolgáltatásba a számos elérhető üzembe helyezési módszer egyikével. Az Azure elvégzi a többit: az alkalmazás horizontális fel- és kiskálázása, a mögöttes virtuális gépek javítása és karbantartása, és még sok más, a Kubernetes tanulási görbéjének megkövetelése nélkül.

Azure-alkalmazás szolgáltatás támogatja a tárolóalapú számítási feladatokat, így az alkalmazáskód helyett feltöltheti a tárolórendszerképet. Linux- és Windows-számítási feladatokat és számos különböző alkalmazás-futtatókörnyezetet is támogat.

Azure-alkalmazás szolgáltatás különböző díjszabási modelleket támogat, beleértve a kiszolgáló nélküli, úgynevezett Azure Functions. Az Azure Functionsben csak az alkalmazáshasználat számít fel díjat. Nincsenek fix költségek.

A kiszolgáló nélküli modell az innováció szempontjából érdekes, mivel lehetővé teszi új mikroszolgáltatások üzembe helyezését anélkül, hogy magas havi számlákat váltana ki, ha a piac nem fogadja el őket. Ez a modell egy másik példa a feladat-gyors stratégiára, ahol az innováció nem feltétlenül jelent magas költségeket.

Azure-alkalmazás Szolgáltatás olyan funkciókat is kínál, amelyek támogatják a DevOps-orientált üzemelő példányokat, például a webalkalmazás-tárolóhelyeket. A tárolóhelyek olyan átmeneti területek, ahol az éles környezet befolyásolása nélkül telepíthet új funkciókat. A tárolóhelyek innovációs szempontból nagyszerűek, mivel az ügyfelek egy kis részét átirányíthatja az alkalmazás új verziójára. Ezután ellenőrizheti, hogy az innovációs hipotézis helyes-e. Végül, ha elő szeretné mozdítani az új kódot éles környezetben, "felcserélheti" a tárolóhelyeket, hogy az előkészítési környezet éles verzióvá váljon.

Összesítés

Ebben a leckében megtanulta, hogyan támogathatja a technológia az innovációt:

  • A DevOps-folyamatok és -eszközök nagy erőforrást biztosítanak a fejlesztési és üzemeltetési csapatoknak az új funkciók gyors és megbízható biztosításához.
  • Az alkalmazásokat mikroszolgáltatásokká alakíthatja át, hogy lehetővé tegye az egyes összetevők innovációját anélkül, hogy az hatással van a többire.
  • A tárolók megbízható alkalmazástelepítést tesznek lehetővé több platformon és környezetben.
  • A Kubernetes egy felhőalapú vezénylési platform tárolóalapú alkalmazások futtatásához.
  • Azure-alkalmazás szolgáltatás minimális felügyeleti többletterheléssel futtathat webes számítási feladatokat. Számos funkciót kínál, például kiszolgáló nélküli vagy alkalmazáshelyeket, hogy felgyorsítsa az innovációs ciklust.

A Tailwind Traders úgy döntött, hogy az e-kereskedelmi alkalmazás újratervezését mikroszolgáltatás-architektúrává alakítja. Az első alkalmazásalrendszer, amelyet elválaszt a "monolith" szolgáltatástól, a fizetési szolgáltatás, mivel kritikus területként azonosította, ahol a verseny jobb értéket kínál az ügyfelek számára.

A fizetési alrendszer után további alkalmazásösszetevők lesznek független mikroszolgáltatásokká alakítva. A mikroszolgáltatások REST API-kkal kommunikálhatnak. Az egyes mikroszolgáltatások alkalmazáskódját tárolóba kell tenni, a fejlesztési és üzemeltetési szervezeteknek pedig a DevOps ajánlott eljárásait kell alkalmazniuk.

Mivel a Tailwind Traders nem szeretne egy adott nyilvános felhőtől függeni, úgy döntött, hogy házon belül létrehozza a Kubernetes-szakértelmet, és üzembe helyezi az alkalmazást az Azure Kubernetes Service-fürtökön. Ha új mikroszolgáltatásokat kell fejleszteni, a vállalat úgy döntött, hogy az Azure Functionst az MVP üzembe helyezésének platformjaként tekinti a fejlesztési költségek csökkentése érdekében.

Hol keresse meg a következőt?

Az egységben szereplő fogalmak közül sok további tagolt a felhőadaptálási keretrendszer cikkekben, amelyek lehetővé teszik a digitális találmányok és a Kubernetes használatát a felhőadaptálási keretrendszer.