Zarówno DevOps jak i SRE to metodyki, które odpowiadają na potrzeby organizacji w zakresie zarządzania działaniem produktu. Wbrew powszechnemu przekonaniu, że obie są przeciwnikami, DevOps i SRE nie są dwiema konkurencyjnymi metodami, a raczej uzupełniają się, przełamując bariery organizacyjne, aby szybciej dostarczać lepsze oprogramowanie. Cele DevOps i SRE dość mocno się jednak pokrywają.

Czym jest DevOps?

DevOps to kultura inżynierii oprogramowania i praktyka współpracy pomiędzy różnymi zespołami, takimi jak rozwój i operacje, QA i bezpieczeństwo. DevOps to ramy ITSM, które zachęcają do komunikacji i współpracy między rozwojem oprogramowania i operacjami IT w całym cyklu życia usługi. Integruje deweloperów i zespoły operacyjne w celu poprawy współpracy i produktywności poprzez automatyzację infrastruktury, automatyzację przepływów pracy i ciągłe mierzenie wydajności aplikacji. DevOps nie jest technologią ani narzędziem; jest to raczej koncepcja wykorzystywana w zarządzaniu cyklem życia aplikacji i upewnianiu się, że zespoły programistów i zespoły operacyjne pracują ze sobą w synchronizacji. Celem jest zbudowanie zaufania i zmniejszenie tarcia w tych handoffach między deweloperami i zespołami operacyjnymi. Zespół programistów przekaże aplikację zespołowi operacyjnemu do realizacji, a zespół operacyjny będzie monitorował aplikację i przekazywał odpowiednie informacje zwrotne zespołowi programistów.

Co to jest SRE?





SRE, skrót od Site Reliability Engineering, to dyscyplina, która łączy aspekty inżynierii oprogramowania i operacji w celu wypełnienia luki między podażą a popytem. SRE to metodologia inżynierii oprogramowania, która jest rozszerzeniem wielu wcześniejszych koncepcji, które obejmują, ale nie tylko, DevOps, inżynierię backend, inżynierię systemów, administrację systemami, operacje i tak dalej. SRE to „dziedzina skupiona na pracy artystycznej w celu doprowadzenia do strony internetowej, która działa konsekwentnie dobrze.” Jest to specjalizacja skupiająca się na niezawodności oprogramowania. Chociaż zasady SRE zostały po raz pierwszy ustanowione przez Google w 2003 roku, przed ruchem DevOps, model ten jest nieco innym ujęciem wielu istniejących pomysłów. Benjamin Treynor, założyciel Google’s Site Reliability Team, mówi w książce Google’s Site Reliability Engineering: „SRE jest tym, co się dzieje, gdy poprosisz inżyniera oprogramowania o zaprojektowanie zespołu operacyjnego.” Biorąc pod uwagę sukces Google z niezawodnością, idea ta podchwyciła wiele firm.

Różnica między DevOps a SRE

Definicja

– DevOps to ramy ITSM, które zachęcają do komunikacji i współpracy między rozwojem oprogramowania i operacjami IT w całym cyklu życia usługi. Jest to kultura inżynierii oprogramowania i praktyka współpracy pomiędzy różnymi zespołami, takimi jak rozwój i operacje, QA i bezpieczeństwo. Site Reliability Engineering (SRE) jest rozszerzeniem wielu koncepcji z przeszłości, które mają zastosowanie do wielu ról, w tym, ale nie tylko, DevOps, inżynierii systemów, inżynierii backend, administracji systemów, operacji i tak dalej. SRE to ramy dla niezawodnego działania dużych systemów krytycznych dla misji.

Rola



– DevOps to zestaw praktyk i kultura organizacyjna zaprojektowana w celu wypełnienia luki między deweloperami, operatorami i innymi częściami organizacji w celu poprawy współpracy i produktywności oraz upewnienia się, że zespoły są ze sobą idealnie zsynchronizowane. SRE, podobnie jak DevOps, jest często używany do opisania ról, które obejmują szeroką różnorodność pracy. Tak więc, jeśli myślisz o DevOps jako filozofii, SRE jest sposobem realizacji tej filozofii. SRE to specjalizacja skupiona na niezawodności oprogramowania.



Cel

– DevOps i SRE nie są dwiema konkurencyjnymi metodami, ale raczej uzupełniają się, przełamując bariery organizacyjne, aby szybciej dostarczać lepsze oprogramowanie. DevOps polega na przełamaniu muru między deweloperami a operatorami w celu skrócenia czasu dostawy dla użytkowników końcowych. Celem jest zbudowanie zaufania i zmniejszenie tarcia w kontaktach między deweloperami i operatorami. SRE jest specyficzną implementacją DevOps z kilkoma świetnymi rozszerzeniami. Celem jest tworzenie skalowalnych i wysoce niezawodnych systemów oprogramowania, aby uczynić IT niezawodnym, solidnym i satysfakcjonującym.

Zakres

– W ramach przedsiębiorstwa, DevOps ma ograniczony zakres, który zaczyna się od zaczyna się od rozwoju oprogramowania i porusza się poprzez check-in kodu źródłowego do zautomatyzowanego wdrożenia. Zakres DevOps jest minimalny poza wdrożeniem w przedsiębiorstwach. SRE jest szansą na wykorzystanie impetu zapoczątkowanego przez DevOps i kontynuowanie wysiłków przez resztę cyklu życia po wdrożeniu. DevOps uwzględnia fakt, że żaden system nie jest w 100 procentach niezawodny, a awarie są czymś, co musi się zdarzyć. SRE zachęca do znalezienia sposobów, aby upewnić się, że nie ma zbyt wielu awarii.

Podsumowanie



Cele DevOps i SRE dość mocno się pokrywają. Można postrzegać SRE jako specyficzną implementację DevOps z pewnymi rozszerzeniami. DevOps to zestaw praktyk i kultura, która redukuje bariery pomiędzy deweloperami i operatorami, aby skrócić czas dostawy. Podobnie jak DevOps, SRE jest często używane do opisania ról, które obejmują szeroką różnorodność pracy. Jeśli DevOps jest filozofią, SRE polega na znalezieniu sposobów realizacji tej filozofii. SRE to specjalizacja skupiona na niezawodności oprogramowania.