Számos gyakori kérdés merül fel a hely megbízhatósági mérnöki és a DevOps közötti kapcsolat körül, beleértve a "Hogyan azonosak? Mi a különbség közöttük? Lehet mindkettő a szervezetünkben?". Ez a cikk megkísérli megosztani az SRE és DevOps közösségek által kínált válaszokat, amelyek közelebb visznek minket a kapcsolat megértéséhez.
Hogy azonosak?
Az SRE és a DevOps egyaránt modern üzemeltetési eljárások, amelyeket a következő kihívásokra válaszul hoztak létre és fejlesztettek ki:
- éles környezeteink és fejlesztési folyamataink egyre összetettebbé válása
- ezen környezetek üzleti függőségének növekedése
- a munkaerő lineáris méretezésének nehézsége a környezetek méretével együtt
- a gyorsabb mozgás szükségességét, miközben továbbra is megőrzi a működési stabilitást
Mindkét üzemeltetési gyakorlat fontosnak tartja az olyan témákra való figyelmet, amelyek elengedhetetlenek az ilyen kihívások kezeléséhez, például a monitorozáshoz/ megfigyelhetőséghez, az automatizáláshoz, a dokumentációhoz és az együttműködésen alapuló szoftverfejlesztési eszközökhöz.
Az SRE és a DevOps között jelentős átfedés van az eszközök és a munkaterületek között. Ahogy a Webhely-megbízhatósági munkafüzet fogalmaz, "az SRE ugyanabban a dologban hisz, mint a DevOps, de kissé eltérő okokból."
A két műveleti gyakorlat összehasonlításának három különböző módja
Az SRE és a DevOps közötti hasonlóságok egyértelműek. Ahol ez lesz igazán érdekes, hogy a kettő különbözik, vagy eltérnek. Itt három módszert kínálunk arra, hogy a kapcsolatukra úgy gondoljunk, mint egy kis árnyalatot erre a kérdésre. Lehet, hogy nem ért egyet ezekkel a válaszokkal, de mindegyik jó kiindulópontot biztosít a vita számára.
"az SRE osztály implementálja a DevOps felületet"
A webhely-megbízhatósági munkafüzet (az erőforráskönyvek listájában szerepel) első fejezetében az SRE-t és a DevOps-t tárgyalja. Ez a fejezet a "class SRE implements interface DevOps" kifejezést használja alcímként. Ez arra utal (egy fejlesztőknek szóló kifejezés használatával), hogy az SRE a DevOps-filozófia konkrét implementációjának tekinthető. Ahogy a fejezet rámutat: "A DevOps viszonylag csendes a műveletek részletes szinten történő futtatásáról", míg az SRE jelentősen leíróbb a gyakorlatában. A kettő kapcsolatának egyik lehetséges válasza tehát az SRE, amely a DevOps számos lehetséges implementációjának egyike lehet.
Az SRE a megbízhatóság, mivel a DevOps a kézbesítés
Ez az összehasonlítás kissé zavaros, mert az SRE-re és a DevOpsra is több definíció létezik, de még mindig hasznos lehet. Azzal a kérdéssel kezdődik, hogy "Ha minden egyes műveleti gyakorlatot egy vagy két szóra kellene lepárlania, amely tükrözi az alapvető aggodalmat, mi lenne az?"
Ha az SRE definícióját a hely megbízhatósági mérnöki központjából használjuk:
A Site Reliability Engineering olyan szoftvermérnöki szemlélet, amelynek a célja, hogy fenntarthatóan biztosítsa egy szervezet rendszereinek, szolgáltatásainak és termékeinek megfelelő szintű megbízhatóságát.
akkor könnyű lenne azt mondani, hogy az SRE szó a "megbízhatóság". Miután a név közepén van, kiváló bizonyítékokat is kínál erre az állításra.
Ha a DevOps ezen definícióját használjuk az Azure DevOps Erőforrásközpontból:
A DevOps emberek, folyamatok és termékek egyesülése a végfelhasználók számára történő folyamatos értékközvetítésért.
akkor a DevOpshoz hasonló lepárlás lehet a "szállítás".
Ezért "az SRE a megbízhatóság, mivel a DevOps a kézbesítés".
A figyelem iránya
Ezt a választ Thomas Limoncelli idézete vagy kissé parafrázisa adja az erőforráskönyv-listában említett Kereső SRE könyvhez. Megjegyzi, hogy a DevOps mérnökei nagyrészt a szoftverfejlesztési életciklus-folyamatra összpontosítanak, alkalmi éles üzemeltetési feladatokkal, míg az SRE-k az alkalmi SDLC-folyamatokkal járó éles műveletekre összpontosítanak.
De ami még fontosabb, egy diagramot is rajzol, amely az egyik oldalon a szoftverfejlesztési folyamattal kezdődik, a termelési műveletek pedig a másikon. A kettőt a szokásos folyamat köti össze, amely egy fejlesztőtől veszi át a kódot, végigvezeti a kívánt számú teszten és fázison, majd ezt a kódot éles környezetbe helyezi.
Limoncelli megjegyzi, hogy a DevOps mérnökei a fejlesztési környezetben indulnak, és automatizálják az éles környezet felé vezető lépéseket. A befejezés után visszatérnek a szűk keresztmetszetek optimalizálásához.
Az SRE-k viszont az éles műveletekre összpontosítanak, és a végső eredmény javítása érdekében mélyen a folyamatba jutnak (alapvetően az ellenkező irányba dolgoznak).
Ez a különbség az SRE és a DevOps fókusz irányában, ami segíthet megkülönböztetni őket.
Együttélés ugyanabban a szervezetben
Az utolsó kérdés, a következőt szeretnénk megválaszolni: "Rendelkezik-e SRE-t és DevOps-t is ugyanabban a szervezetben?"
A válasz erre a kérdésre egy empatikus "igen!".
Reméljük, hogy az előző válaszok némi képet adnak arról, hogy a két műveleti gyakorlat hogyan fedi egymást, és ha nem fedi egymást, hogyan lehet egymást kiegészíteni a fókuszban. A bevált DevOps-gyakorlattal rendelkező szervezetek kis léptékben kísérletezhetnek az SRE-gyakorlatokkal (például SRE-k és SLO-k kipróbálása), anélkül, hogy SRE-pozíciókat vagy csapatokat kellene létrehozniuk. Ez egy meglehetősen gyakori SRE bevezetési minta.
Következő lépések
Szeretne többet megtudni a webhely megbízhatósági tervezéséről vagy a DevOpsról? Tekintse meg a webhely megbízhatósági mérnöki központját és az Azure DevOps Resource Centert.