A DevOps-alkalmazások életciklusának felfedezése
Bár a DevOps-eljárások nagy hatókörrel rendelkeznek, elsődleges céljuk az alkalmazás életciklus-felügyeletének optimalizálása. A fiktív vállalati példában egy meglévő alkalmazásból egy frissített funkciókkal rendelkező új alkalmazásba való migráláshoz újra kell gondolni az alkalmazás életciklusának minden fázisát. Ebből a cikkből megtudhatja, hogy a DevOps alapelvei hogyan módosíthatják jelentősen az egyes fázisok implementálását a tervezéstől a fejlesztésen és a teljesítésen át a műveletekig. Ebben a leckében ezen implementációk magas szintű áttekintését tekintheti át.
Alkalmazás életciklusának fázisai
Az alkalmazás életciklusának fázisai közé tartozik a tervezés, a fejlesztés, a teljesítés és a műveletek.
Tervezés
A tervezési fázis magában foglalja az ügyfelek igényeinek áttekintését a fejlesztendő szoftver funkcióinak és képességeinek felvázolásához és meghatározásához. Az ilyen szoftverek az egyes mikroszolgáltatásoktól a több termékből álló portfóliókig terjedhetnek. Az eredmény meghatározza az alkalmazás fejlesztési és üzembe helyezési szoftverkövetelményeit, hatókörét és mérföldköveit. A DevOps szempontjából ebben a fázisban az elsődleges szempontok közé tartozik az agilitás, az ügyfélközpontú összpontosítás, az igazítás és a láthatóság.
Fejlődés
A fejlesztési fázis az alkalmazáskód fejlesztésének minden aspektusát lefedi. Ezek közé tartoznak a programozás, a tesztelés és a kódellenőrzések. A DevOps-eljárásoknak való megfelelés érdekében a kódnak egy forrásvezérlő rendszerben kell lennie, amely elősegíti az együttműködést, és támogatja a verziószámozást. A kód egy működő verziója a későbbi teljesítéshez megfelelő összetevők létrehozására szolgál. Az ilyen összetevők lehetnek végrehajtható bináris fájlok, szoftvertárak, tárolólemezképek, telepítőcsomagok, konfigurációs fájlok, üzembehelyezési szkriptek vagy akár dokumentációk.
Ebben a fázisban a módosításokat kis lépésekben kell alkalmazni automatizált teszteléssel és buildeléssel, amelyet folyamatos integrációnak (CI) nevezünk, ami felgyorsítja a fejlesztési folyamatot, és javítja az agilitást.
Kézbesítés
A szállítás a fejlesztési szakaszban létrehozott műtermékek konzisztens és megbízható üzembe helyezésének folyamata a production környezetekbe. Bár ebben a fázisban a végső cél a folyamatos teljesítés (CD) teljes automatizálása, egyes szervezetek, különösen a DevOps bevezetésének korai szakaszában, dönthetnek úgy, hogy manuális jóváhagyásokat vagy ellenőrzéseket hajtanak végre. A DevOps-eljárások iránti bizalom növekedésével általában teljesen automatizálhatóak ezek az ellenőrzések. Például a tesztkörnyezetbe történő üzembe helyezés sikeres, felügyelet nélküli ellenőrzése alapot képezhet az éles környezetbe való előrelépéshez. Az automatizálással skálázhatóvá, megismételhetőbbé és rugalmasabbá teheti a kézbesítési folyamatokat (az emberi hibák lehetőségének minimalizálásával). Egy ilyen megközelítés sikeres megvalósításának kulcsa a DevOps-gyakorlatok követése, beleértve a megfelelő tesztelést, a megfigyelhető mérések használatát és a folyamatos tanulást.
A teljesítés során figyelembe kell venni a célkörnyezet infrastruktúrájának IaC-vel történő kiépítését és konfigurálását is. Az infrastruktúra kódként való kezelése számos előnyt kínál, beleértve a konzisztenciát, a reprodukálhatóságot és az agilitást.
Műveletek
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. A DevOps szempontjából az elsődleges célok ebben a szakaszban a stabilitás és a megbízhatóság, a gyors incidenskezelés, a biztonság és a megfelelőség, valamint az ügyfelek elégedettsége. Bizonyos mértékig ezeknek a célkitűzéseknek a elérése a megfelelően végrehajtott mérhető eredményektől függ. A DevOps-folyamatok úgynevezett visszajelzési hurkokra is támaszkodnak, amelyek az üzembe helyezett alkalmazás aktuális állapotát tükröző adatokat szolgáltatnak, például teljesítménymetrikákat, válaszképességet és általános felhasználói élményt, beleértve a továbbfejlesztett vagy csökkentett funkcionalitást.
Ebben a fázisban fontos biztosítani a fejlesztési, üzemeltetési és biztonsági csapatok közötti együttműködés maximális szintjét. Ez a fázis a folyamatos tanulás alapvető forrása is.
Mi az alkalmazás életciklusának utolsó szakasza?
Ahogy a név is jelzi, és a kép az egység elején látható, az alkalmazás életciklusa terv szerint körkörös folyamat. A kezdeti és leszerelési események határozzák meg az alkalmazás élettartamának determinisztikus kezdetét és végét. A kezdeti üzembe helyezést (vagy gyakran még korábban) követően azonban a felhasználók visszajelzései és a monitorozási adatok tájékoztatják a későbbi frissítéseket és az alkalmazás fejlődését.
Jegyzet
Ne feledje, hogy annak ellenére, hogy ebben a leckében csak néhányszor említették a biztonságot, a DevSecOps alapelvei szerint a szerepköre az alkalmazás teljes életciklusa alatt érvényesül. Gyakorlatilag minden fázisban figyelembe kell venni a biztonsággal kapcsolatos szempontokat, a kezdeti tervezés kezdetétől kezdve.