DevOps a felhőben

DevOps a felhőben

A növekvő verseny és a piaci kereslet vezérelte gyors reagálás kritikus jelentőségű a vállalatok számára. Infrastrukturális szempontból az elmúlt években jól látható módon irányult a fókusz az on-premise megoldásokról a cloud alapú architektúrák irányába. A cloud felé való terjeszkedéssel az operatív költségek optimalizálhatóak, a megoldások elasztikusan méretezhetőek, a katasztrófa utáni helyreállítás és a magas rendelkezésre állás könnyedén javítható, az információbiztonság, a különböző szabályozásoknak való megfelelés követhetőbb, és még hosszasan sorolhatnánk az előnyöket.

Másik oldalról szemlélve a cloud alkalmazásával a digitális megoldások fejlesztéséhez kapcsolódó – az elmúlt években jelentősen megváltozott – módszertan alkalmazása is gördülékenyebbé válhat, különösen igaz ez a szoftveralkalmazásokra. Arról az átalakulásról beszélünk, aminek eredménye többek között a szolgáltatások gyorsabb piacra kerülése, a gyakoribb, akár automata módon kiadott release-ek, a valós idejű figyelés és a tesztelés, valamint a változó igényekhez való azonnali igazodás. Ezen eredmény eléréséhez a fejlesztési és üzemeltetési csapatok szoros együttműködése szükséges – itt lép a képbe a DevOps.

Mi is az a DevOps és a cloud?

A DevOps az elmúlt évek technológiai fejlődésének eredményeként elsősorban a gyakran és gyorsan változó összetett rendszerek hatékonyabb és átláthatóbb működtetéséhez biztosít módszertani megoldásokat. A DevOps nem egy szabvány vagy keretrendszer, hanem inkább több különböző építőelem – ITIL, Lean, Agile – egy egységgé történő tudatos és megfelelő összeépítése. Támogatja az automatizálást, a szolgáltatások folyamatos üzembe állítását, valamint ösztönzi a szervezeten belüli együttműködési és tanulási kultúrát.

Hogy tisztábban lássuk a két terület összefonódását, a DevOps fenti meghatározása mellett először is találjunk fogást magán a cloud-on is. A NIST definíciója szerint egy cloud rendszer az alábbi ismérvekkel rendelkezik:

  • Önkiszolgálás: A felhasználók a szolgáltató segítsége nélkül vehetik igénybe az általa kínált infrastruktúra, platform és egyéb szolgáltatásokat.
  • Hálózati hozzáférés: A cloud szolgáltatások a hálózaton keresztül szabványos módon elérhetőek.
  • Erőforráskezelés: A cloud szolgáltató az általa használt erőforrásokat egyesíti, a különböző fizikai és virtuális erőforrásokkal kombinálva – ezeket dinamikusan kiosztva és újraosztva – szolgálja ki az igényeket.
  • Rugalmasság: A szolgáltatások gyorsan méretezhetőek, skálázhatók az igényekhez igazodva.
  • Mérés: A cloud szolgáltató automatikusan ellenőrzi és optimalizálja az erőforrás-felhasználást a szolgáltatás típusának megfelelő szinten (például storage, feldolgozás, sávszélesség), ez az erőforrás-felhasználás nyomon követhető, ellenőrizhető és riportolható.

A DevOps és a felhő kapcsolódási pontjai

Ha a fenti definíció elemeit a DevOps céljai és működési modellje mellé helyezzük, azonnal látszanak azok a kapcsolódási pontok, amik végeredménye mind a szolgáltató, mind a felhasználó oldali értékteremtés. Az alábbiakban – a teljesség igénye nélkül – emelnénk ki párat:

A DevOps egyik nagyon fontos eleme, hogy a fejlesztés és az ezzel kapcsolatos infrastrukturális tevékenységek kéz a kézben járnak. Ez annyit jelent, hogy magának az infrastruktúrának a konfigurálása is része a kódnak, azaz szebben fogalmazva az infrastruktúra is kód (Infrastructure as Code). Ha ehhez hozzávesszük a DevOps alapelvek közül az automatizálást, akkor el is jutottunk oda, hogy ennek zökkenőmentes megvalósítása cloud nélkül szinte lehetetlen, hiszen az infrastruktúra automatizált, szükséges méretezés szerinti létrehozása megbízhatóbb, ezáltal jobb teljesítményt produkál.

Ennek egyenes következménye az is, hogy cloud alapú erőforrásokat használva automatizáltan, könnyen létrehozhatóak az egyforma környezetek, így gyakorlatilag kiküszöbölhető a környezetek eltéréséból adódó hibalehetőség: az összes issue, bug kezelhető élesítés előtt a fejlesztői, illetve tesztkörnyezetben. A tesztelési környezetek egyszerűen és gyorsan létrehozhatóak a fizikai hardverek költségei és adminisztrációja nélkül, az automata tesztek elvégezhetőek az élő környezettől megkülönböztethetetlen szimulált környezetben.

Fontos megemlíteni, hogy mindez fókuszált feladatvégéshez segítheti a DevOps csapatok tagjait, mert megszabadulhatnak a monoton feladatoktól, és így erőforrásaikat olyan tevékenységekre fordíthatják, ahol a szakértelmükre van igazán nagy szükség.

A DevOps – szemléletmódjából adódóan – cross-funkcionális, önszerveződő csapatok révén lehet igazán hatékony. A cloud önkiszolgáló volta pont arra tudja ösztönözni a csapatokat, hogy a DevOps gyakorlatait önállóan tudják megvalósítani.

A DevOps egyik alapvető eleme a mérés, aminek eredményei folyamatosan visszacsatolásra kerülnek. A mérés és a monitorozás nemcsak a hatékony eredmények elérésében segít, hanem a problémák elhárításában vagy éppen a megelőző intézkedések végrehajtásában is, a cloud segítségével a mért adatok könnyebben jutnak el az együttműködők számára.

Az alkalmazások felépítése, architektúrája is jelentős változásokon ment keresztül az elmúlt évtized(ek)ben. Előtérbe került a microservice alapú felépítés, vele párhuzamosan a konténerizáció, melyek együttes használatával gyorsan felépíthető, elasztikusan méretezhető és könnyen adminisztrálható szolgáltatások hozhatók létre, melyeknek egyúttal magas rendelkezésre állásra és hibatűrésre is szükségük van. Ennek kialakítása nehezen oldható meg cloud nélkül.

A teljes együttműködés jegyében mindegyik publikus cloud szolgáltató kínál DevOps szolgáltatásokat is, így az alkalmazások életciklus-fázisai és a cloud erőforrások hatékonyan kezelhetők ugyanazon a platformon.

Az Azure DevOps főbb szolgáltatásai

A Microsoft az elmúlt években óriási hangsúlyt fektetett a cloud szolgáltatások fejlesztésére és népszerűsítésére, így egyre nagyobb részesedést szereznek a publikus felhőszolgáltatók és -szolgáltatások piacán.

Az Azure DevOps szolgáltatásai: Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans, Azure Artifacts

Az alábbiakban röviden áttekintést adunk az Azure DevOps szolgáltatásairól:

  • Azure Boards: a fejlesztési feladatok tervezésére és kezelésére szolgál. Ide kerülnek rögzítésre a követelmények, user story-k, epic-ek, becsléssel együtt. Itt kezeljük a sprint-eket, kapunk valós képet az elvégzett és hátralevő feladatokról.
  • Azure Repos: elosztott verziókezelő, ami emellett különféle más verziókezelőket is támogat (Azure Git, GitHub, a GitHub Enterprise, a Microsoft Team Foundation Version Control).
  • Azure Pipelines: a Continuous Integration és Continuous Delivery megvalósítását teszi lehetővé. Külön Release pipeline-ok is létrehozhatók, melyek a megfelelő gatekeeper-ek alkalmazásával az éles környezetbe való automata telepítést is elvégezhetik.
  • Azure Test Plans: feladata a manuális és automata tesztesetek tervezése és végrehajtása, a tesztriportok kialakítása. A legfontosabb azonnali visszacsatolást adja az addig elvégzett munkáról.
  • Azure Artifacts: kezeli a privát NuGet, npm, Maven, Python package-eket, integrált fejlesztőkörnyezetekből elérhető szabványos módon.

A DevOps gyakorlatok bevezetése során a csapatok hamar beleütközhetnek abba a problémába, hogy ha a futtatási környezet vagy a platform nem érhető el megfelelő időben, akkor az összes automatizálási folyamat leáll.

Innen szemlélve – s visszacsatolva a gondolatok elejére – a digitális transzformáció során az egyik elvégzendő házi feladat pont a szűk keresztmetszetek felkutatása és azok hatékony lekezelése.

Ennélfogva a DevOps gyakorlatok bevezetése, valamint a cloud alkalmazása a gyorsabb és hatékonyabb erőforrás kiszolgálás érdekében hatalmas mértékben könnyítheti meg a szervezetek digitális transzformációját. Nem is beszélve arról, hogy a publikus cloud szolgáltatók több száz különböző szolgáltatást nyújtanak, amelyek felhasználhatók az alkalmazások kialakításában, és ráadásul hatékonyabbá is teszik azokat.

Nyugodtan kijelenthetjük, hogy a DevOps és a cloud tökéletesen kiegészítik egymást, ez az együttműködés pedig a bevezetési sebesség növekedéséhez, ezáltal a termék gyorsabb piacra kerüléséhez, összességében pedig magasabb szintű szolgáltatásokhoz vezet.

Kapcsolódó tanfolyam

  1. Azure DevOps Engineer (AZ-400) vizsgafelkészítő workshop

Vissza a hírekhez