A DevOps módszertan:

A DevOps módszertan két területet egyesít – a szoftverfejlesztést és az informatikai (IT) üzemeltetést. A DevOps módszertan elsődleges célja a gyors termékkiadás, amelyet automatizálással, kommunikációval és folyamatos munkafolyamatokkal érnek el.

A DevOps fő alapelvei a keresztképzés, az együttműködés, a folyamatos fejlesztés, az elszámoltathatóság, az átláthatóság és az automatizálás. A DevOps-csapatok ezeket az elveket alkalmazzák a DevOps-folyamat kialakításakor, amely jellemzően hét fázisból áll – tervezés, kódolás, építés, tesztelés, szállítás, telepítés és felügyelet.

Ebben a cikkben megtudhatja:

  • Mi a DevOps módszertan?
  • 6 alapvető DevOps-elv
  • Mi a DevOps-folyamat?
  • DevOps vs Agile: összehasonlítás

Mi a DevOps módszertan?

A DevOps módszertan olyan gyakorlatok összessége, amelyek a szoftverfejlesztési életciklus (SDLC) során a fejlesztési és üzemeltetési csapatok együttműködését igénylik. Magába foglalja az agilis gyakorlatokat, és a csapatsilók lebontására, a manuális feladatok automatizálására és a termelékenység folyamatos visszajelzéssel történő növelésére összpontosít.

A DevOps-csapatok alkalmazásakor a szervezetek gyakran egyszerre több gyakorlatot és eszközt is bevezetnek. Ezek közé tartozik:

  • Folyamatos integráció / folyamatos telepítés (CI/CD) – olyan folyamatok összessége, amelyek az automatizálást kihasználva javítják a hatékonyságot, a minőséget és a sebességet a szoftverfejlesztési életciklusban. A CI a kódbázisok gyakori, kis módosításait foglalja magában, amelyeket a lehető leghamarabb tesztelnek és integrálnak. A CD magában foglalja az új kód gyakori kiadását a termelésbe, manuális frissítések vagy javítások nélkül.
  • Felhőalapú pipelines – a pipelines a CI/CD-hez hasonló munkafolyamatok végrehajtásához használt eszközláncok. Ezek az eszközláncok gyakran felhőben hosztolt szolgáltatásokból és erőforrásokból épülnek fel, lehetővé téve a felhő-natív fejlesztést és az elosztott csapatok nagyobb támogatását.
  • Mikroszolgáltatások – a felhő-natív alkalmazásoknál használt architektúra, amely nagyobb skálázhatóságot, rendelkezésre állást és rugalmasságot tesz lehetővé. A mikroszolgáltatások lehetővé teszik a csapatok számára, hogy lazán összekapcsolt és könnyen módosítható vagy frissíthető alkalmazásokat és csővezetékeket építsenek.
  • Infrastructure as code (IaaC) – egy olyan módszer, amely lehetővé teszi a csapatok számára, hogy szoftvereken és kódolt definíciós fájlokon keresztül biztosítsák, konfigurálják és kezeljék az infrastruktúrát. Ez a módszer lehetővé teszi számos infrastrukturális feladat automatizálását, és támogatja a tömeges telepítéseket anélkül, hogy jelentősen több csapat erőforrást igényelne.

A DevOps alapelvei

A DevOps-módszertan kialakításakor és működtetésekor több alapelvet is érdemes figyelembe venni.

Keresztképzés

A DevOpsban erőfeszítéseket tesznek a csapattagok keresztképzésére az SDLC valamennyi folyamatára vonatkozóan. Ez nem jelenti azt, hogy minden csapattagnak egyformán képzettnek kell lennie, de mindenkinek ismernie kell az alkalmazott folyamatokat, eszközöket és készségeket.

Ha a csapattagok tudása ilyen módon átfedésben van, a csapattagok számára könnyebb a kommunikáció. Ez elősegíti az újszerű megoldásokat, mivel a tagok kevésbé vannak “csapdába esve” a dolgok elvégzésének elvárásai által. A keresztképzéssel megelőzhetők a másokra való támaszkodás miatti szűk keresztmetszetek is, ami felgyorsítja a termelékenységet.

Collaboration

A DevOps kulcseleme az együttműködés és az ehhez szükséges kommunikáció. Ez a módszertan a csapattagok zökkenőmentes együttműködésére és a visszajelzésekre való reagálásra támaszkodik, ha valami nem az elvárásoknak megfelelően működik. Ha a csapattagok nem tudnak együttműködni, a munka silóvá válik, és a termelékenységet korlátozza a szakaszok befejezése.

Folyamatos fejlesztés

A DevOps iteratív folyamatot használ kis változtatásokkal, amelyeket addig finomítanak, amíg a változás át nem megy az ellenőrzési küszöbökön. Amint egy változtatás elfogadásra kerül, máris indul a következő. Ezt a folyamatos javítást a DevOps minden aspektusára alkalmazzák, beleértve a termékfejlesztést, a csővezeték teljesítményét és a folyamatok hatékonyságát.

Az elszámoltathatóság

A DevOps-modell megköveteli az elszámoltathatóságot minden feladatért – legyenek azok fejlesztési vagy üzemeltetési feladatok -, és mindkettőnek egyformán a szervezet minden tagjának tulajdonában kell lennie. Ez kiküszöböli a hagyományos “valaki más problémája” gondolkodást, segít biztosítani, hogy a csapatok körültekintően járjanak el, akár a fejlesztéssel, akár az üzemeltetéssel kapcsolatosak. Emellett segít a csapaton belüli kapcsolatok kiépítésében és megszilárdításában is, mivel minden tag egyenlő erőfeszítést és felelősséget vár el.

Átláthatóság

A folyamatok, konfigurációk, eszközök és elvárások átláthatósága mind fontos a DevOps-ban. Átláthatóság nélkül a csapatok nem tudnak hatékonyan együttműködni, és megmarad a “mi vs. ők” érzés. Ez akadályozza a kommunikációt, és megnehezíti a többiek felelősségre vonását. Az átláthatóság révén a csapat minden tagja segíthet a felmerülő problémák azonosításában, és az összkép összefüggésében javításokat javasolhat.

Automatizálás

A DevOps automatizálása segíti a csapatokat a munka racionalizálásában és szabványosításában. Segít az átláthatóság megteremtésében is, mivel megköveteli az eljárások meghatározását és dokumentálását. Az unalmas vagy időigényes feladatok automatizálásával a DevOps-csapatok a magasabb szintű munkára koncentrálhatnak. Ez a fókuszálás javíthatja a minőséget és ösztönözheti az innovációt.

A DevOps-folyamat

Míg a DevOps-folyamaton belül az egyes eljárások változhatnak, az általános folyamat meglehetősen egységes lépéseket követ. Ezek a lépések egy ciklusban történnek, és a visszacsatolási hurkoktól függően változhatnak vagy visszatérhetnek az előző lépésekhez. Egy DevOps-életciklus jellemzően a következő lépéseket tartalmazza:

  • Tervezés – egy projekt, sprint/iteráció vagy nap kezdetén a munkát megtervezik és rangsorolják. Ez segít biztosítani, hogy a csapat minden tagja megértse az aktuális célokat, és meghatározza az elvárt munkát.
  • Kód – a fejlesztők olyan kódváltozásokat vagy kiegészítéseket hoznak létre és nyújtanak be, amelyek megfelelnek az aktuális iterációra meghatározott feladatoknak. Ezek egy mester kódbázisra épülnek, amelyhez minden fejlesztőnek hozzáférése van. Ez a lépés magában foglalja a kód felülvizsgálatát és a szükséges pontosításokat vagy kiigazításokat is. Ha a benyújtott kód nem felel meg a tesztelésnek, akkor módosításra visszakerül ebbe a lépésbe.
  • Az építéssel benyújtott kódot lefordítják, egységtesztelik és csomagolják. Általában ez az első automatizált lépés a CI/CD csővezetékben. Ha a build sikertelen, visszajelzést küldünk a fejlesztőnek, és a benyújtott módosítást elutasítjuk. Ha a build sikeres, a kódot további tesztelésre továbbítják.
  • A sikeres buildeket tesztek sorozatán vezetik át a funkcionalitás, a minőség és gyakran a biztonság biztosítása érdekében. Ideális esetben a leggyorsabb vagy legkritikusabb teszteket hajtják végre először. Így, ha egy teszt sikertelen, a kiinduló kódváltozást a lehető leghamarabb vissza lehet küldeni visszajelzéssel, és nem veszik kárba az erőfeszítés. Ha minden teszt átmegy, a build átadásra kerül, és a módosítások beolvadnak a master kódágba. Ez biztosítja, hogy minden fejlesztő továbbra is ugyanabból az alapból dolgozzon.
  • Deliver – az utolsó sikeres buildet karbantartják és készenlétben tartják a telepítéshez.
  • Deploy-a build telepíthető egy tesztkörnyezetbe további tesztelésre, például felhasználói elfogadásra. Vagy átadható staging vagy termelési környezetbe kiadásra.
  • Monitor – a kiadást követően a verziókat monitorozzák, hogy azonosítsák a kihagyott problémákat, és olyan felhasználási adatokat gyűjtsenek, amelyeket a jövőbeli fejlesztésekhez lehet alkalmazni. A DevOps monitorozásról többet megtudhat cikkünkben: DevOps Monitoring: The Abridged Guide.

DevOps vs. Agile: Mi a különbség és hogyan kapcsolódnak egymáshoz?

A DevOps módszertanról beszélve gyakran az Agile módszertanhoz társítják. Ennek van értelme, ha figyelembe vesszük, hogy sok DevOps-csapat alkalmazza az agilis gyakorlatokat. Emellett mindkét módszertan a sebesség, a hatékonyság és a minőség javítására összpontosít. Ennek ellenére a módszertanok különböznek, és az egyik nem feltétlenül követeli meg a másikat.

Kommunikáció

Az agilis módszertanokban a hangsúly a csapatok közötti kommunikáción és az ügyfelek bevonásán van a projektfolyamatba. Hasonlóképpen, az agilis folyamatokban a legtöbb visszajelzés az ügyfelektől származik.

A DevOps-ban a kommunikáció a fejlesztőkre és a műveletekre összpontosul. Az ügyfelek visszajelzései szerepet játszanak a tervezési és a szállítási lépésekben, de a köztes lépések során általában nincsenek jelen. Ehelyett a csapatok az eszközök és más csapattagok visszajelzéseire támaszkodnak a munka irányításában.

Teamstruktúra

Az agilis és a DevOps egyaránt prioritásként kezeli a készségek megosztását és a keresztképzést. A DevOps azonban hajlamos ezeket a készségeket inkább a kommunikáció és az együttműködés, mint a felelősségvállalás terén alkalmazni. A DevOps-csapatokban a fejlesztők felelősek a kód létrehozásáért, a tesztelési és üzemeltetési csapatok (az úgynevezett DevOps-csapatok) pedig a csővezeték-kezelésért, a környezet konfigurálásáért és a telepítésért.

Ezzel szemben az agilis csapatokban gyakran elmosódnak a felelősségi körök közötti határok. Egy agilis csapaton belül mindenkit arra ösztönöznek, hogy vállalja el a szükséges feladatokat, és a szerepek kevésbé vannak elkülönítve. Ennek eredményeképpen az Agile általában jobban működik kisebb csapatoknál, míg a DevOps jobban biztosítja a nagyobb csapatok számára szükséges struktúrát.

Az időbeosztás

Az agilis módszertanok egy sprintet vagy időben korlátozott iterációt követnek. A projekt befejezéséig több sprintet hajtanak végre, mindegyikben meghatározott feladatokkal és célokkal. A sprinteket és az elvárt munkát gyakran a csapat teljesítményéhez igazítják.

A DevOps megvalósításokban a cél az, hogy mindig legyen egy szállítható termék. A csapatok azonban sprinteket vagy iterációkat használhatnak arra, hogy meghatározzák az adott kiadáshoz elvárt munkát. Emellett a DevOps-csapatok gyakran pontosabb határidőkhöz és referenciaértékekhez vannak kötve, és kevésbé rugalmasan határozzák meg, hogy mikor készül el egy termék.

Automatizálás a DevOps-módszertanhoz: Continuous Operations, Monitoring, and Feedback With StackPulse

Mivel vállalkozásaink egyre inkább digitálisakká válnak, az ezeket lehetővé tevő szoftverszolgáltatások megbízhatósága üzleti szempontból kritikus kérdéssé válik. Minden szoftverrendszerben, függetlenül attól, hogy mennyire jól megtervezett, lesznek termelési riasztások. Ezek vagy olyan helyi problémák lesznek, amelyek a végfelhasználókra alig vagy egyáltalán nem hatnak, vagy olyan kritikus problémák, amelyek a szolgáltatás rendelkezésre állását befolyásolják a felhasználók számára.

Mindkét esetben a problémákat az illetékes tulajdonosoknak kell kivizsgálniuk, elemezniük és szükség esetén javítaniuk. Megfelelő automatizálás nélkül az incidensek és riasztások nagy száma a legtöbb szervezetnél:

  • Az R&D és DevOps csapatok termelékenységére gyakorolt negatív hatáshoz vezet
  • “Riasztási fáradtság” a tulajdonosok és a támogató csapatok számára
  • A termelési szolgáltatások hosszabb állásideje.

A StapPulse egy automatizálási platform a DevOps ciklus üzemeltetési, felügyeleti és visszacsatolási szakaszaihoz. Lehetővé teszi a DevOps és a mérnöki csapatok számára, hogy kodifikált playbookokat határozzanak meg ezekhez a folyamatokhoz. Ez lehetővé teszi a szervezet számára, hogy a folyamatokat megismételhető és mérhető módon automatizálja, és olyan gyakran indítsa el őket, amilyen gyakran csak szükséges, további kézi munka nélkül.

Szerezzen korai hozzáférést a StackPulse-hoz, és legyen az elsők között, akik kipróbálhatják DevOps / SRE automatizálási platformunkat.

Leave a Reply