Megosztás a következőn keresztül:


Mi az a DevOps?

A DevOps egyesíti a fejlesztést (Dev) és az operatív műveleteket (Ops), hogy egyesítse az embereket, a folyamatokat és a technológiát az alkalmazástervezésben, fejlesztésben, kézbesítésben és műveletekben. A DevOps lehetővé teszi az olyan korábban silózott szerepkörök közötti koordinációt és együttműködést, mint a fejlesztés, az informatikai műveletek, a minőségfejlesztés és a biztonság.

A Teams devOps-kultúrát, gyakorlatokat és eszközöket alkalmaz az általuk épített alkalmazásokba vetett bizalom növelése, az ügyfelek igényeinek jobb kielégítése és az üzleti célok gyorsabb elérése érdekében. A DevOps segítségével a csapatok folyamatosan értéket biztosíthatnak az ügyfeleknek jobb, megbízhatóbb termékek előállításával.

A DevOps és az alkalmazás életciklusa

A DevOps a tervezési, fejlesztési, kézbesítési és üzemeltetési fázisok során befolyásolja az alkalmazás életciklusát. Minden fázis a többi fázisra támaszkodik, és a fázisok nem szerepkörspecifikusak. A DevOps-kultúra bizonyos mértékig minden szerepkört magában foglal az egyes fázisokban.

Az alábbi ábra a DevOps-alkalmazás életmódjának fázisait mutatja be:

A DevOps alkalmazás életciklusát szemléltető elméleti diagram.

DevOps-célok és előnyök

Amikor egy csapat devOps-kultúrát, gyakorlatokat és eszközöket alkalmaz, lenyűgöző dolgokat érhet el:

Gyorsabb piacra jutási idő

A nagyobb hatékonyság, a továbbfejlesztett csapatmunka, az automatizálási eszközök és a folyamatos üzembe helyezés révén a csapatok gyorsan csökkenthetik a termék bevezetésétől a piaci bevezetésig eltelt időt.

Alkalmazkodás a piachoz és a versenyhez

A DevOps-kultúra megköveteli, hogy a csapatok az ügyfélközpontúságra összpontosítsanak. Az agilitás, a csapatmunka és az ügyfélélményre való összpontosítás révén a csapatok folyamatosan értéket biztosíthatnak ügyfeleiknek, és növelhetik versenyképességüket a piactéren.

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

A folyamatos fejlesztési eljárások alkalmazásával a csapatok nagyobb stabilitást és megbízhatóságot építhetnek ki az általuk üzembe helyezendő termékek és szolgáltatások számára. Ezek a gyakorlatok segítenek csökkenteni a hibákat és a kockázatokat.

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

A helyreállítás átlagos ideje metrika azt jelzi, hogy mennyi ideig tart a helyreállítás egy hibából vagy incidensből. A szoftverhibák, a biztonsági incidensek és a folyamatos fejlesztési tervek kezelése érdekében a csapatoknak mérnie kell és dolgoznia kell a metrikák fejlesztésén.

DevOps-kultúra bevezetése

A DevOps teljes körű implementálásához devOps-kultúrát kell alkalmaznia. A DevOps-kultúra ápolásához mélyreható változásokra van szükség az emberek munka és együttműködés terén. Amikor a szervezetek elkötelezik magukat egy DevOps-kultúra mellett, létrehoznak egy környezetet a nagy teljesítményű csapatok fejlődéséhez. A DevOps-gyakorlatok alkalmazása automatizálja és optimalizálja a folyamatokat a technológián keresztül, anélkül, hogy a szervezeten és a munkatársain belül a DevOps-kultúrára váltanak, nem fogja kihasználni a DevOps előnyeit.

Az alábbi kép a Microsoft élő webhelykultúrájának főbb aspektusait rögzíti.

A Microsoft élő webhelykultúrájának diagramja.

Az alábbi eljárások a DevOps-kultúra fő összetevői:

  • Együttműködés, láthatóság és igazítás: Az egészséges DevOps-kultúra egyik jellemzője a csapatok közötti együttműködés. Az együttműködés láthatósággal kezdődik. A fejlesztési, informatikai és egyéb csapatoknak meg kell osztaniuk egymással a DevOps-folyamataikat, prioritásaikat és aggályaikat. A közös munka megtervezésével jobban igazodnak az üzleti célokhoz és a sikerhez.
  • A hatókör és az elszámoltathatóság eltolódása: A csapatok egymáshoz igazodva átveszik a tulajdonjogot, és más életciklus-fázisokban is részt vesznek – nem csak a szerepköreik szempontjából központi szerepet játszókban. A fejlesztők például nem csak a fejlesztési fázisban létrehozott innováció és minőség, hanem a működési fázisban végbemenő teljesítmény és stabilitás miatt is elszámoltathatók lesznek. Ugyanakkor az informatikai operátorok minden bizonnyal belefoglalják a szabályozási, biztonsági és megfelelőségi folyamatokat a tervbe és a fejlesztési fázisba.
  • Rövidebb kiadási ciklusok: A DevOps-csapatok agilisak maradnak, ha rövid ciklusokban bocsátanak ki szoftvereket. A rövidebb kiadási ciklusok megkönnyítik a tervezést és a kockázatkezelést, mivel az előrehaladás növekményes, ami szintén csökkenti a rendszer stabilitására gyakorolt hatást. A kiadási ciklus lerövidítésével a szervezetek alkalmazkodhatnak és reagálhatnak a változó ügyféligényekre és a versenyterhelésre.
  • Folyamatos tanulás: A nagy teljesítményű DevOps-csapatok növekedési gondolkodásmódot hoznak létre. Gyorsan meghiúsulnak, és a folyamatukba beépítik a tanulást. Arra törekszenek, hogy folyamatosan fejlessze, növelje az ügyfelek elégedettségét, és felgyorsítsa az innovációt és a piac alkalmazkodóképességét.

DevOps-eljárások implementálása

A DevOps implementálásához kövesse a DevOps-eljárásokat (az alábbi szakaszokban leírtak szerint) az alkalmazás teljes életciklusa során. Ezen eljárások némelyike segít felgyorsítani, automatizálni és javítani egy adott fázist. Mások több fázisra is kiterjednek, így a csapatok zökkenőmentes folyamatokat hozhatnak létre, amelyek javítják a termelékenységet.

Folyamatos integráció és folyamatos teljesítés (CI/CD)

A folyamatos integráció (CI) a fejlesztői csapatok által a kód automatizálására, egyesítésére és tesztelésére használt gyakorlat. A CI segít elkapni a hibákat a fejlesztési ciklus korai szakaszában, ami kevésbé költséges a javításukhoz. Az automatizált tesztek a CI-folyamat részeként futnak a minőség biztosítása érdekében. A CI-rendszerek artifaktumokat hoznak létre, és a kiadási folyamatoknak megfelelően táplálják őket, hogy gyakori üzembe helyezéseket hajtsanak végre.

A folyamatos szállítás (CD) egy olyan folyamat, amelyben a kód felépítésre kerül, tesztelésre kerül, és telepítésre kerül egy vagy több tesztelési és éles környezetbe. A több környezetben történő üzembe helyezés és tesztelés növeli a minőséget. A CD-rendszerek üzembe helyezhető összetevőket hoznak létre, beleértve az infrastruktúrát és az alkalmazásokat is. Az automatizált kiadási folyamatok ezeket az összetevőket felhasználva új verziókat és javításokat bocsátanak ki a meglévő rendszerekre. A rendszerek, amelyek a monitorozást és riasztások küldését végzik, folyamatosan futnak, hogy növeljék a láthatóságot a teljes CD-folyamat során.

Verziókövetés

A verziókövetés a kódok verziókban való kezelésének gyakorlata– a korrektúrák és a változáselőzmények nyomon követése, hogy a kód könnyen áttekinthető és helyreállítható legyen. Ezt a gyakorlatot általában verziókövetési rendszerek, például a Git használatával implementálják, amelyek lehetővé teszik, hogy több fejlesztő együttműködjön a kódkészítésben. Ezek a rendszerek egyértelmű folyamatot biztosítanak az azonos fájlokban előforduló kódmódosítások egyesítéséhez, az ütközések kezeléséhez és a korábbi állapotok módosításainak visszaállításához.

A verziókövetés használata alapvető DevOps-gyakorlat, amely segít a fejlesztői csapatok együttműködésében, a kódolási feladatok csapattagok közötti megosztásában, és szükség esetén az összes kód tárolásában a könnyű helyreállítás érdekében. A verziókövetés más eljárások, például a folyamatos integráció és az infrastruktúra kódként való használatához is szükséges elem.

Agilis szoftverfejlesztés

Az Agile egy szoftverfejlesztési megközelítés, amely a csapat együttműködését, az ügyfelek és a felhasználók visszajelzéseit, valamint a rövid kiadási ciklusok közötti változáshoz való nagy alkalmazkodóképességet hangsúlyozza. Az Agile-t gyakorló csapatok folyamatosan módosítják és fejlesztik az ügyfeleket, összegyűjtik visszajelzéseiket, majd az ügyfelek igényeinek és igényeinek megfelelően tanulnak és alkalmazkodnak. Az agilis lényegesen eltér más hagyományos keretrendszerekhez képest, mint például a vízesés modell, ami szekvenciális fázisok által meghatározott hosszú kiadási ciklusokat tartalmaz. A Kanban és a Scrum az Agile két népszerű keretrendszere.

Infrastruktúra mint kód

A kódként használt infrastruktúra leíró módon határozza meg a rendszererőforrásokat és a topológiákat, így a csapatok úgy kezelhetik ezeket az erőforrásokat, ahogyan azok kódolódnának. Ezek a definíciók a verziókövetési rendszerekben is tárolhatók és módosíthatók, ahol áttekinthetők és visszaállíthatók – például kód.

Az infrastruktúra kódként való gyakorlásával a csapatok megbízható, megismételhető és szabályozott módon helyezhetik üzembe a rendszererőforrásokat. Az infrastruktúra kódként is segít automatizálni az üzembe helyezést, és csökkenti az emberi hibák kockázatát, különösen összetett nagy környezetek esetén. Ez az ismételhető, megbízható megoldás a környezetek telepítéséhez lehetővé teszi, hogy a csapatok olyan fejlesztési és tesztelési környezeteket tartsanak fenn, amelyek megegyeznek az éles környezettel. A környezetek különböző adatközpontokra és felhőplatformokra való duplikálása hasonlóképpen egyszerűbbé és hatékonyabbá válik.

Konfigurációkezelés

A konfigurációkezelés az erőforrások állapotának kezelését jelenti egy rendszerben, beleértve a kiszolgálókat, a virtuális gépeket és az adatbázisokat. A konfigurációkezelési eszközök használatával a csapatok szabályozott, szisztematikus módon hozhatják létre a módosításokat, csökkentve a rendszerkonfiguráció módosításának kockázatát. A csapatok konfigurációkezelő eszközöket használnak a rendszerállapot nyomon követésére, és segítenek elkerülni a konfigurációs eltéréseket, amely révén a rendszererőforrások konfigurációja idővel eltérhet a számukra meghatározott kívánt állapottól.

A kódként szolgáló infrastruktúra mellett könnyen templatizálható és automatizálható a rendszerdefiníció és a konfiguráció, ami segít a csapatoknak összetett környezetek nagy léptékű üzemeltetésében.

Folyamatos monitorozás

A folyamatos monitorozás azt jelenti, hogy teljes, valós idejű láthatóságot biztosít a teljes alkalmazásverem teljesítményének és állapotának. Ez a láthatóság az alkalmazást futtató mögöttes infrastruktúrától a magasabb szintű szoftverösszetevőkig terjed. A láthatóság a telemetriai adatok és metaadatok gyűjtésével, valamint az előre definiált feltételekre vonatkozó riasztások beállításával érhető el, amelyek egy operátor figyelmét teszik szükségessé. A telemetriai adatok a rendszer különböző részeiből gyűjtött eseményadatokból és naplókból állnak, amelyek ott vannak tárolva, ahol elemezhetők és lekérdezhetők.

A nagy teljesítményű DevOps-csapatok biztosítják, hogy végrehajtható, értelmes riasztásokat állítsanak be, és gazdag telemetriát gyűjtsenek, hogy hatalmas mennyiségű adatból nyerhessenek megállapításokat. Ezek az elemzések segítenek a csapatnak valós időben elhárítani a problémákat, és látni, hogyan javíthatja az alkalmazást a jövőbeli fejlesztési ciklusokban.

Planning

A tervezési fázisban a DevOps csapatai ötletelik, definiálják és ismertetik az általuk létrehozni kívánt alkalmazások és rendszerek funkcióit és képességeit. A csapatok alacsony és magas részletességi szinten követik nyomon a tevékenységek előrehaladását, az egyes termékektől kezdve a több termékportfólióig. A Teams a következő DevOps-eljárásokat használja a rugalmasság és a láthatóság tervezéséhez:

A Microsoft által a vállalat szoftvercsapatai számára a DevOps-tervezés támogatásához alkalmazott számos tanulság és gyakorlat áttekintéséért lásd: Hogyan tervezi a Microsoft a DevOps használatát.

Fejlődés

A fejlesztési fázis magában foglalja a szoftverkód fejlesztésének minden aspektusát. Ebben a fázisban a DevOps-csapatok a következő feladatokat hajtják végre:

A DevOps csapatai a minőség, a stabilitás és a termelékenység feláldozása nélkül szeretnének gyorsan újítani:

A Microsoft által a DevOpsra való áttérésük támogatásához alkalmazott fejlesztési gyakorlatok áttekintéséért lásd: Hogyan fejleszt a Microsoft a DevOps segítségével.

Szállít

Az alkalmazások éles környezetekbe való megbízható és következetes üzembe helyezésének folyamata a szoftverszállítás, amelyet ideális esetben folyamatos szállítás (CD) révén valósítanak meg.

A kézbesítési fázisban a DevOps csapatai:

  • Adjon meg egy kiadáskezelési folyamatot egyértelmű manuális jóváhagyási fázisokkal.
  • Automatizált kapuk beállítása az alkalmazások fázisok közötti áthelyezéséhez a végső kiadásig az ügyfelek számára.
  • Automatizálhatja a kézbesítési folyamatokat, hogy skálázhatóvá, megismételhetővé, vezérelhetővé és jól tesztelhetővé tegye őket.

A kézbesítés magában foglalja a kézbesítési környezet alapvető infrastruktúrájának üzembe helyezését és konfigurálását is. A DevOps-csapatok olyan technológiákat használnak, mint az infrastruktúra kódként (IaC),tárolók és mikroszolgáltatások teljes mértékben szabályozott infrastruktúra-környezetek biztosításához.

A biztonságos üzembehelyezési eljárások azonosítani tudják a problémákat, mielőtt hatással lennének az ügyfélélményre. Ezek a gyakorlatok megkönnyítik a DevOps-csapatok számára, hogy könnyedén, magabiztosan és nyugodtan teljesíthessenek.

A Microsoft kifejlesztette alapvető DevOps alapelveket és folyamatokat a hatékony kézbesítési rendszerek biztosítása érdekében, amelyek leírásra kerülnek a Hogyan végez a Microsoft szoftverszállítást DevOpsszal.

Operations

Az üzemeltetési fázis magában foglalja az alkalmazások karbantartását, monitorozását és hibaelhárítását éles környezetben, beleértve a hibrid vagy nyilvános felhőket, például az Azure-t. A DevOps-csapatok célja a rendszer megbízhatósága, magas rendelkezésre állás, erős biztonság és nulla állásidő.

Az automatizált kézbesítési és biztonságos üzembe helyezési eljárások segítenek a csapatoknak a problémák gyors azonosításában és elhárításában. Az éberség fenntartása gazdag telemetriát, végrehajtható riasztást, valamint az alkalmazások és a mögöttes rendszerek teljes körű láthatóságát igényli.

A Microsoft által az összetett online platformok üzemeltetésére használt eljárásokat a Microsoft megbízható rendszerek DevOps-nal való üzemeltetése című cikkben ismertetjük.

Következő lépések

Egyéb erőforrások

Képzések és minősítések