Gyakori kérdések: Mi a kapcsolat az SRE és a DevOps között?

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.