Trace Id is missing
Ugrás a tartalomra

Mi az a DevOps?

Megtudhatja, hogyan egyesíti a DevOps az embereket, a folyamatokat és a technológiát ahhoz, hogy jobb termékeket lehessen gyorsabban szállítani az ügyfeleknek.

A DevOps definíciója

A DevOps a „development” (azaz fejlesztés, Dev) és az „operations” (üzemeltetés, Ops) szavakból tevődik össze, és az emberek, a folyamatok és a technológia egyesülését jelenti, célja pedig az, hogy folyamatosan értéket lehessen kínálni az ügyfeleknek.

Mit jelent a DevOps a csapatok számára? A DevOps lehetővé teszi, hogy a korábban egymástól elszigetelten működő (fejlesztési, IT-üzemeltetési, minőségmérnöki és biztonsági) szerepkörök összehangoltan működjenek együtt, és így jobb és megbízhatóbb termékeket lehessen szállítani. A DevOps-kultúra, a DevOps-gyakorlatok és az ezekhez használható eszközök alkalmazásával a csapatok jobban reagálhatnak az ügyfelek igényeire, növelhetik az általuk fejlesztett alkalmazások megbízhatóságát, és gyorsabban képesek elérni az üzleti célokat.

A DevOps előnyei

A DevOps kultúráját, gyakorlatát és eszközeit használó csapatok kiváló teljesítményt nyújtanak, jobb termékeket hoznak létre gyorsabban, és így javítják az ügyfelek elégedettségét. Ez a továbbfejlesztett együttműködés és hatékonyság abban is kulcsfontosságú szerepet játszik, hogy elérhessék például az alábbi üzleti célokat:

Gyorsabb piacra jutás

Alkalmazkodás a piachoz és a versenyhez

A rendszer stabilitásának és megbízhatóságának fenntartása

A helyreállítás átlagos idejének javítása

A DevOps és az alkalmazások életciklusa

A DevOps a tervezési, a fejlesztési, a szállítási és az üzemeltetési szakaszban befolyásolja az alkalmazások életciklusát. Minden fázis támaszkodik a többire, és egyik sem szerepkör-specifikus. A valódi DevOps-kultúrában valamilyen mértékben mindegyik szerepkör részt vesz mindegyik fázisban.

Tervezés

A tervezési fázis során a DevOps-csapatok megismerik, definiálják és jellemzik a létrehozandó alkalmazások és rendszerek funkcióit és képességeit. Az előrehaladást mind alacsony, mind magas szintű részletességgel nyomon követik a különálló termékfeladatoktól kezdve az olyan feladatokig, amelyek több terméket magában foglaló portfólióra terjednek ki. A DevOps-csapatok által a rugalmasságot és a láthatóságot szem előtt tartó munkához használt módszerek között található egyebek mellett a teendőlisták létrehozása, a hibák követése, az agilis szoftverfejlesztés Scrum és Kanban-táblák használatával, valamint az előrehaladás irányítópultokon történő vizuális megjelenítése is.

Fejlesztés

A fejlesztési fázishoz tartozik a kódolás minden aspektusa (az írás, a tesztelés, az ellenőrzés és a kód integrálása a csapattagok által), valamint ennek a kódnak a beépítése olyan munkadarabokba, amelyeket különféle környezetekben üzembe lehet helyezni. A DevOps-csapatok célja, hogy gyors innovációt végezhessenek, anélkül, hogy ehhez fel kellene áldozniuk a minőséget, a stabilitást vagy a termelékenységet. Ezért kiemelkedő hatékonyságú eszközöket használnak, automatizálják a hétköznapi és a manuális lépéseket, és kis lépésekben dolgoznak automatikus tesztelést és folyamatos integrációt használva.

Szállítás

A szállítás azt a folyamatot jelenti, amelynek során az alkalmazásokat éles környezetekben helyezik üzembe konzisztens és megbízható módon. A szállítási fázisnak az is része, hogy üzembe helyezik és konfigurálják a teljes mértékben szabályozott alapinfrastruktúrát, amely ezeket a környezeteket alkotja.

A szállítási fázisban a csapatok a kiadáskezelési folyamatot egyszerűen érthető, manuális jóváhagyási szakaszokkal határozzák meg. Automatikus kapukat is beállítanak, amelyekkel az alkalmazásokat lehet a szakaszok között mozgatni, egészen addig, amíg azt az ügyfél rendelkezésére nem bocsátják. Ha automatizálják ezeket a folyamatokat, akkor azok skálázhatóak, megismételhetőek és szabályozottak lesznek. Ilyen módon a DevOps-gyakorlatot használó csapatok egyszerűen, megbízhatóan és nyugodtan szállíthatnak nagyobb gyakorisággal.

Üzemeltetés

Az üzemeltetési fázis része az éles környezeti alkalmazások karbantartása, monitorozása és hibaelhárítása. A DevOps-gyakorlatok bevezetésekor a csapatok gondoskodnak a rendszer megbízhatóságáról és a magas rendelkezésre állásról, és az a céljuk, hogy teljesen elkerüljék az üzemkimaradásokat, miközben megerősítik a biztonságot és az irányítást. A DevOps-csapatok a problémákat még azelőtt azonosítani szeretnék, hogy azok hatással lehetnének az ügyfelekre, és azokat a felmerülésük idején azonnal el szeretnék hárítani. Az ilyen fokú körültekintés mindenre kiterjedő telemetriát és döntéshez használható riasztásokat követel meg, és teljes láthatóságra van szükség mind az alkalmazásokra, mind a mögöttes rendszerre vonatkozóan.

DevOps-kultúra

Noha a DevOps-gyakorlatok bevezetése automatizálja és optimalizálja a folyamatokat a technológián keresztül, minden a szervezeten belüli kultúrával kezdődik, és természetesen azokkal az emberekkel, akik ebben részt vesznek. A DevOps-kultúra bevezetéséhez mélyreható változások szükségesek a munkavégzésben és az együttműködésben. Ha azonban a szervezet bevezeti a DevOps-kultúrát, akkor olyan környezetet alakíthatnak ki, amelyben a csapatok nagy teljesítmény mellett képesek a fejlesztésre.

Együttműködés, láthatóság és összehangolás

Az egészséges DevOps-kultúra egyik alapvető mutatója a csapatok közötti együttműködés, amely a láthatósággal kezdődik. A különféle csapatok, például a fejlesztési és az IT-üzemeltetési csapatok megosztják egymással a DevOps-folyamataikat, a prioritásaikat és a problémáikat. A csapatoknak emellett együtt kell kidolgozniuk a munkaterveket, és össze kell hangolniuk a célokat és a sikerességi mutatókat is, mivel ezek kapcsolódnak az üzleti tevékenységhez.

A hatókör és a felelősség kiterjesztése

A csapatok az összehangolásnál tulajdonosokká válnak, és részesei lesznek az életciklus további fázisainak is, nem pedig csak azoknak, amelyek a saját szerepkörükben a legfontosabbak. A fejlesztők például nem csupán a fejlesztési fázisban előkerülő innovációért és minőségért felelősek, hanem azért a teljesítményért és stabilitásért is, amelyet az ő általuk végzett változások idéznek elő az üzemeltetési fázisban. Ugyanakkor az IT-üzemeltetők is ügyelnek rá, hogy a tervezési és fejlesztési fázisban figyelembe vegyék az irányítási, a biztonsági és a megfelelőségi szempontokat is.

Rövidebb kiadási ciklusok

A DevOps-csapatok rugalmassága úgy tartható fenn, hogy a szoftvereket rövid ciklusokban adják ki. Rövidebb kiadási ciklusok használatával egyszerűbbé válik a tervezés és a kockázatkezelés, mivel az előrehaladás fokozatos, ami egyúttal a rendszer stabilitására gyakorolt hatást is csökkenti. A rövidebb kiadási ciklusok azt is lehetővé teszik, hogy a szervezet reagálni tudjon az újonnan megjelenő ügyféligényekre és a verseny nyomására.

Folyamatos tanulás

A kiváló teljesítményű DevOps-csapatok elkötelezettek a növekedés iránt. A fail fast megközelítés használatával építik be a tanulságokat a folyamatokba, és állandóan fejlődnek, javítják az ügyfél-elégedettséget, és felgyorsítják az innovációt és a piaci alkalmazkodást. A DevOps egy folyamat, így mindig van helye a növekedésnek.

Megtudhatja, hogy a Microsoft különböző munkacsoportjai miképpen honosították meg a DevOps-kultúrát
További információ

DevOps-gyakorlatok

A DevOps-kultúra megalapozásán túl a csapatok a DevOps-ot azzal is életre keltik, hogy bizonyos gyakorlatokat az alkalmazás életciklusának teljes egészén megvalósítanak. Ezek közül néhány egy-egy fázist segít felgyorsítani, automatizálni és javítani. Mások több fázisra is kiterjednek, és abban segítik a csapatokat, hogy gördülékeny folyamatokat hozhassanak létre, és ezzel javíthassák a hatékonyságot.

Folyamatos integráció és terjesztés (CI/CD)

A konfigurációkezelés egy rendszer erőforrásainak – köztük a kiszolgálók, a virtuális gépek és az adatbázisok – állapotának kezelését jelenti. A konfigurációkezelési eszközök használatával a csapatok a változásokat szabályozott és szisztematikus módon tudják kibocsátani, és ezzel csökkenthető a rendszerkonfiguráció módosításának kockázata is. A csapatok a konfigurációkezelési eszközökkel a rendszerállapotot követik nyomon, és ezek segítenek nekik elkerülni a konfigurációeltéréseket is, azaz azt, hogy a rendszer erőforrás-konfigurációja idővel az előre definiált és kívánatos konfigurációtól eltérjen.

Ha ezt az infrastruktúrával mint kóddal együtt használjuk, akkor egyszerűbben lehet sablonokkal kezelni és automatizálni mind a rendszerdefiníciót, mind a rendszerkonfigurációt, így a csapatok nagy méretekben is egyszerűbben tudnak összetett környezeteket működtetni.

Verziókövetés

A verziókövetés a kód verziókban történő kezelési gyakorlata, azaz a változatok és a változási előzmények nyomon követése azzal a céllal, hogy a kódot könnyebb legyen áttekinteni és visszaállítani. Ezt a gyakorlatot általában verziókövetési rendszer, például a Git használatával valósítják meg, amely lehetővé teszi, hogy több fejlesztő működjön együtt a kód fejlesztésében. Ezek a rendszerek világosan átlátható folyamatot az ugyanazon fájlokban végbemenő kódváltozások egyesítésére, az ütközések kezelésére, és a változásokat korábbi állapotokra való visszaállítását.

A verziókövetés használata alapvető fontosságú a DevOps-gyakorlatban is, hiszen segíti a fejlesztői csapatokat az együttműködésben, hogy feloszthassák a kódolási feladatokat a csapattagok között, és hogy a kódot úgy tárolják, hogy azt szükség esetén egyszerűen vissza lehessen állítani.

A verziókövetés más gyakorlatokban is fontos szerepet kap, például a folyamatos integrációban és az infrastruktúrában mint kódban is.

Agilis szoftverfejlesztés

Az agilis szoftverfejlesztési megközelítés a csapatok együttműködésére, az ügyfelek és a felhasználók visszajelzéseire, valamint a változásokhoz rövid kiadási ciklusokkal való rendkívül jó alkalmazkodásra helyezi a hangsúlyt. Az agilis megközelítést alkalmazó csapatok folyamatosan teszik elérhetővé a változásokat és a továbbfejlesztéseket az ügyfelek számára, visszajelzéseket gyűjtenek tőlük, és ezeket megfontolva végeznek módosításokat az ügyfelek kívánalmainak és szükségleteinek kielégítése céljából. Az agilis megközelítés alapvetően különbözik a többi, hagyományosabb módszertől, például a vízeséses megközelítéstől, amelyben egymásra épülő fázisok határozzák meg a hosszú kiadási ciklusokat. Az agilis megközelítéshez kapcsolódó két népszerű keretrendszer a Kanban és a Scrum.

Infrastruktúra mint kód

Az infrastruktúra mint kód a rendszererőforrásokat és a topológiákat jellemezéssel definiálja, ami lehetővé teszi, hogy a csapatok ezeket az erőforrásokat úgy kezelhessék, ahogyan a kódot szokták. Ezek a definíciók tárolhatók és verziókövetéssel kezelhetők egy verziókövetési rendszerben is, ahol ellenőrizhetők és visszaállíthatóak, ismét csak a kódhoz hasonlóan.

Az infrastruktúra mint kód használata lehetővé teszi a csapatok számára, hogy a rendszer-erőforrásokat megbízható, megismételhető és szabályozott módon helyezzék üzembe. Az infrastruktúra mint kód ezen kívül segít az üzembe helyezések automatizálásában is, és csökkenti az emberi hibák kockázatát, különösen összetett és nagy környezetek esetén. A környezetekben való üzembe helyezésnek ez a megismételhető és megbízható megoldása lehetővé teszi a csapatok számára, hogy olyan fejlesztési és tesztelési környezetet tartsanak fenn, amely teljesen azonos az éles környezettel. Emellett a környezetek különböző adatközpontokba és felhőplatformokba való duplikálása is egyszerűbben és hatékonyabban elvégezhető.

Konfigurációkezelés

A konfigurációkezelés egy rendszer erőforrásainak – köztük a kiszolgálók, a virtuális gépek és az adatbázisok – állapotának kezelését jelenti. A konfigurációkezelési eszközök használatával a csapatok a változásokat szabályozott és szisztematikus módon tudják kibocsátani, és ezzel csökkenthető a rendszerkonfiguráció módosításának kockázata is. A csapatok a konfigurációkezelési eszközökkel a rendszerállapotot követik nyomon, és ezek segítenek nekik elkerülni a konfigurációeltéréseket is, azaz azt, hogy a rendszer erőforrás-konfigurációja idővel az előre definiált és kívánatos konfigurációtól eltérjen.

Ha ezt az infrastruktúrával mint kóddal együtt használjuk, akkor egyszerűbben lehet sablonokkal kezelni és automatizálni mind a rendszerdefiníciót, mind a rendszerkonfigurációt, így a csapatok nagy méretekben is egyszerűbben tudnak összetett környezeteket működtetni.

Folyamatos monitorozás

A folyamatos monitorozás azt jelenti, hogy teljes körű, valós idejű rálátással rendelkezünk a teljes alkalmazásstack teljesítményére és állapotára – az alkalmazást futtató mögöttes infrastruktúrától kezdve egészen a magas szintű szoftverösszetevőkig. Ennek a láthatóságnak a része a telemetriák és metaadatok gyűjteménye, valamint mindazok a riasztásbeállítások, melyek előre meghatározott feltételekre alapulnak, és amelyek egy operátor beavatkozását igénylik. A telemetria eseményadatokat és olyan naplókat tartalmaz, amelyek a rendszer különféle részeiből származnak, és amelyeket ott tárolunk, ahol azokat elemezni és lekérdezni is lehet.

A jól teljesítő DevOps-csapatok ügyelnek rá, hogy döntésekhez használható és fontos riasztásokat állítsanak be, és hogy részletes telemetriát gyűjtsenek, hogy nagy mennyiségű adatból nyerhessenek ki információkat. Ezek az információk segítenek abban, hogy a csapat valós időben foglalkozhasson a problémákkal, és hogy megtalálja a módját annak, hogy javítsa az alkalmazást a későbbi fejlesztési ciklusokban.

Vissza a lapokra

DevOps-eszközök

A csapatok számos olyan DevOps-eszközt használhatnak, amelyek segítenek kialakítani a DevOps-kultúrát a szervezetben. A legtöbb csapat egyszerre több eszközt is használ, és olyan egyéni eszközláncokat hoz létre, amelyek megfelelnek az alkalmazás életciklusának egyes fázisaival kapcsolatos igényeiknek. Noha az egyes eszközök vagy technológiák használatba vétele nem egyenlő a DevOps megvalósításával, mégis, ha a DevOps-kultúra már megjelent, és a folyamatok már definiálva vannak, a DevOps-gyakorlatok megvalósítását és testre szabását a megfelelő eszközök kiválasztásával lehet véghez vinni. A DevOps gyakorlati megvalósításához használható eszközök beszerzése:

A DevOps és a felhő

A felhőre való áttérés gyakorlatilag megreformálta azt a módot, ahogyan a csapatok az alkalmazásokat fejlesztik, üzembe helyezik és üzemeltetik. A DevOps használatával kiegészítve így a csapatoknak több lehetősége van arra, hogy javítsák gyakorlatukat, és jobban kielégítsék az ügyfelek elvárásait.

A felhő rugalmassága

Mivel a csapatok gyorsan ki tudnak építeni és konfigurálni tudnak több régióra kiterjedő felhőkörnyezeteket korlátlan erőforrásokkal, a rugalmasságuk is növekszik az alkalmazások üzembe helyezésénél. Ahelyett, hogy fizikai kiszolgálókat kellene vásárolni, konfigurálni és karbantartani, a csapatok komplex felhőkörnyezeteket hoznak létre percek alatt, majd ha már nincs szükségük rájuk, leállítják őket.

Kubernetes

Ma, amikor egyre több alkalmazás használja a tárolótechnológiát, a Kubernetes egyre inkább olyan iparági megoldássá válik, amellyel nagy méretekben is lehet tárolókat vezényelni. A Kubernetes korában a tárolók CI/CD-folyamatok használatával történő létrehozásának és üzembe helyezésének folyamata, valamint ezeknek a tárolóknak az éles környezeti monitorozása elengedhetetlen folyamatokká váltak.

Kiszolgáló nélküli számítástechnika

Mivel az infrastruktúrakezelési feladatok többsége már a felhőszolgáltatót terheli, a csapatok saját alkalmazásaikra fókuszálhatnak ahelyett, hogy a mögöttes infrastruktúrával kellene foglalkozniuk. A kiszolgáló nélküli számítástechnika lehetővé teszi, hogy az alkalmazásokat anélkül lehessen futtatni, hogy kiszolgálót kellene konfigurálni és karbantartani. Egyes lehetőségek csökkentik az üzembe helyezés és az üzemeltetés bonyolultságát és az azokkal járó kockázatokat is.

Kezdje el a DevOps-szal való ismerkedést

Mivel számos gyakorlat és megoldás létezik, a DevOps első látásra bonyolultnak tűnhet. A megoldás az, ha kis lépésekkel kezdi, és másoktól is tanul.

Gyakori kérdések

  • A DevOps a szervezeten belül különféle szerepkörökben használatos, és szükségessé teszi, hogy ezek szorosan együttműködjenek. Legtöbbször a fejlesztés, az IT, az üzemeltetés, a biztonság és a támogatás szerepel a DevOps-szerepkörök között.

    Útmutató a DevOps-gyakorlatok kialakításához

  • A DevOps nem korlátozódik egyetlen szerepkörre. Mindenkinek, aki részt vesz az alkalmazás életciklusának egyes fázisaiban, magáévá kell tennie a DevOps-kultúrát. Egyes szervezeteknél van azonban néhány munkatárs vagy csapat, akiknek kizárólag az automatizálás, a gyakorlatok definiálása vagy a CI/CD-folyamatok megvalósítása a feladata. Ezeknek a szerepköröknek néha a DevOps-mérnök vagy a DevOps-specialista a hivatalos megnevezése.

  • Egy nagy szervezetnél rendkívül nehéz is lehet a DevOps bevezetése. Ahhoz, hogy megváltoztassuk egy nagy szervezet kultúráját, és hogy szabványosítsuk a folyamatokat és az eszközöket, türelemre és kitartásra van szükség. A legtöbb nagy szervezetnél a DevOps-gyakorlatokat először csak a korai felhasználóknál vezetik be. Amint ezek a gyakorlatok kiforrottabbá válnak, és már eredményeket érnek el vele, más csapatok is követik őket, és ők is elindulnak a DevOps bevezetésének útján.

    Megtudhatja, hogy a Microsoft különböző munkacsoportjai miképpen honosították meg a DevOps-kultúrát.

  • A DevOps lényegi célja az, hogy folyamatosan értéket tudjunk nyújtani az ügyfeleknek. A DevOps bevezetésének eredményeit az üzleti célokkal összevetve kell mérni. A DevOps-csapatok ezeknek a céloknak rendelik alá a tevékenységeiket, és azokat rövid kiadási ciklusokban érik el. Ezek a ciklusok lehetővé teszik a rugalmas reagálást a piaci történésekre és a folyamatos tanulást az ügyfelek visszajelzései alapján.

  • Mind a DevOps, mind az agilis megközelítés modern szoftverfejlesztési keretrendszer, és mindkettőnek a termék, a piacra kerülés vagy a kiadás a célja. A DevOps egy kultúra, amely az együttműködést segíti elő a szoftverek fejlesztésében és karbantartásában résztvevő összes szerepkör között. Az agilis fejlesztés egy fejlesztési módszertan, melynek célja, hogy fenntartsa a termelékenységet, és hogy a kiadásokat a változó igényekhez tudja igazítani. A DevOps és az agilis fejlesztés nem zárja ki egymást, és gyakran együtt is használják a kettőt.

    Megtanulhatja a DevOps és az Agilis fejlesztés beépítését.

  • A folyamatos integráció mellett a folyamatos terjesztés és a folyamatos üzembe helyezés is olyan eljárás, amellyel a szoftverszállítás fázisait lehet automatizálni.