Close

Ready for ITSM at high velocity?

Świadczenie wsparcia IT według zasad DevOps

Jak wskazuje praktyka, wdrożenie zasad DevOps w zespołach technicznych i usługowych IT prowadzi do znacznej poprawy jakości obsługi i morale zespołu, usprawnienia rozwiązywania problemów oraz zwiększenia produktywności firmy. Firmy, które wdrożyły zasady DevOps, deklarują średnio o 45% większe zadowolenie klientów, o 43% większą wydajność pracowników, o 41% niższe wskaźniki defektów i obniżenie kosztów związanych z IT o 38%.

Przy takich statystykach wdrożenie zasad DevOps w procesie zarządzania usługami IT oznacza dla firm dużą korzyść. Jednak dla zespołów może się to wydawać skomplikowaną zmianą. Jest jednak dobra wiadomość. Nie jest to aż tak złożone, jak mogłoby się wydawać. Sposoby na osiągnięcie wyższej wydajności usług są tak proste, że mogą Cię zaskoczyć.

DevOps — o co chodzi?

Na czym właściwie polega DevOps? Jest to zbiór praktyk umożliwiających zbliżenie dwóch często odizolowanych od siebie zespołów, które mają za sobą długą historię spięć: programistycznego i operacyjnego. Celem jest nawiązanie współpracy, otwartej komunikacji i znalezienie sposobów, które pozwoliłyby obydwu działom realizować założone przez nie cele.

Jak wyjaśniają nasi eksperci: „DevOps to zestaw praktyk, które pozwalają zautomatyzować procesy zachodzące między zespołami programistów a zespołami IT, dzięki czemu mogą oni kompilować, testować i wydawać oprogramowanie w sposób szybszy i bardziej niezawodny. Koncepcja DevOps opiera się na stworzeniu kultury współpracy między zespołami, które wcześniej funkcjonowały we względnej izolacji. Wśród obiecanych korzyści można wskazać zwiększone zaufanie, szybsze udostępnianie nowych wydań oprogramowania, możliwość szybkiego rozwiązywania krytycznych zgłoszeń oraz lepsze zarządzanie nieplanowaną pracą”.

Dlaczego warto stosować DevOps w zespołach wsparcia IT?

Z perspektywy biznesowej liczby mówią same za siebie. O 45% większe zadowolenie klientów. O 43% większa wydajność pracowników. O 38% niższe koszty związane z obsługą IT. Ruch DevOps w istotny sposób przyczynił się do poprawy wyników biznesowych. Prawdopodobnie dlatego 4 na 5 firm przyznaje, że stosuje przynajmniej niektóre zasady DevOps.

Dla samych zespołów równie przekonujący jest fakt, że dobrze wdrożone zasady DevOps prowadzą do poprawy zadowolenia pracowników oraz zespołu, jakości współpracy oraz większego uznania. To podejście pozwala usprawnić problematyczne procesy, przyspieszyć realizację zadań i wyeliminować warstwę biurokratyczną, która od dawna powodowała napięcia między zespołami IT, programistycznymi oraz innymi powiązanymi zespołami.

W sytuacjach, w których zespoły operacyjne były sfrustrowane nowymi wydaniami, o których nic nie wiedziały i nie były przygotowane do ich wspierania (co z kolei, według raportu Gartnera, było przyczyną 85–87% incydentów), podejście DevOps otwiera kanały komunikacyjne i przygotowuje zespoły operacyjne IT na nadchodzące zmiany. Natomiast frustracja zespołów programistycznych związana z oporem działu operacyjnego będącego przyczyną opóźnień wdrożenia, zostaje wyeliminowana dzięki współpracy, co pozwala szybciej wdrażać oprogramowanie bez ryzyka niedotrzymania zobowiązań SLA i celów SLO.

DevOps w usługach IT: najlepsze praktyki

Przede wszystkim zmiana kulturowa

Największym wyzwaniem związanym z integracją DevOps jest zmiana kulturowa.

Tradycyjne organizacje IT często działają w izolacji. Zespół programistyczny pracuje we własnym odseparowanym ekosystemie, a po wdrożeniu zmiany pałeczkę przejmuje zespół operacyjny, który często nawet nie wie o wprowadzanych zmianach systemowych lub ma o nich jedynie nikłe pojęcie.

Natomiast organizacje DevOps kładą nacisk na współpracę i komunikację międzyzespołową (stosując praktyki i narzędzia, takie jak wydarzenia typu Hack Day, spotkania stand-up czy pokoje na czacie).

Osiągnięcie takiej zmiany oznacza konieczność wdrożenia nowych narzędzi, nowych procesów oraz nowej perspektywy kulturowej, w której priorytetem jest komunikacja międzyzespołowa i wspólny sukces.

Automatyzacja w miarę możliwości

Zwiększenie produktywności w wyniku wdrożenia zasad DevOps wynika przynajmniej częściowo z filozofii, w której nacisk kładzie się na automatyzację. Stosowanie podejścia DevOps oznacza zachęcanie zespołów do ciągłego zadawania pytania: co jeszcze możemy zautomatyzować?

Czy można zautomatyzować przeglądanie kodu pod kątem często spotykanych błędów? Czy można zautomatyzować systemy tak, aby problemy, incydenty i wnioski były łączone ze zmianami lub wydaniami, które mogły je wyzwolić? Czy można zautomatyzować sprawdzenia i bilanse, które uniemożliwiają wydawanie kodu niespełniającego wymagań prawnych lub związanych z bezpieczeństwem? Czy można zautomatyzować systemy tak, aby nowe wydania były wstrzymywane, gdy zaczynamy się niebezpiecznie zbliżać do docelowych wskaźników SLO?

Istnieją dziesiątki sposobów na automatyzację i poprawę wskaźników DevOps. Trzy najczęściej spotykane to:

  • przepływ pracy (np. szybsze przechodzenie zgłoszeń wsparcia przez dział obsługi);
  • wiedza (gdy dochodzi do incydentu, narzędzie do zarządzania usługami powinno automatycznie wyświetlić odpowiednie informacje i dokumentację);
  • eskalacja (jeśli w organizacji są tylko dwie osoby, które mogą rozwiązać problem, inteligentny system powinien eskalować problem prosto do nich, zamiast podążania sztywnymi, liniowymi ścieżkami eskalacji).

Śledzenie ważnych wskaźników

Gdy zespoły programistyczne i operacyjne IT współpracują ze sobą, dobrym rozwiązaniem jest również monitorowanie przez nie efektów takiej współpracy.

Typowe kluczowe wskaźniki wydajności (KPI) DevOps obejmują średni czas między awariami (MTBF), średni czas odzyskiwania, naprawy, reakcji lub rozwiązywania (MTTR), średni czas do wystąpienia awarii (MTTF) oraz średni czas do potwierdzenia (MTTA). Wiele firm opiera się również na takich wartościach, jak liczba alertów lub wniosków wygenerowanych w określonym przedziale czasu, koszt przestoju na minutę lub koszt wsparcia na każde połączenie / każdy wniosek.

Wskaźniki, które zespoły będą musiały śledzić zależą od nich samych, zobowiązań wobec klientów zawartych w umowach SLA, celów SLO uzgodnionych z organizacją oraz wszelkich konkretnych obszarów problemów, z jakimi się stykają. Ważne jest również uświadomienie sobie, że wskaźniki są ruchomym celem. W miarę jak w firmie będzie zachodzić zmiana — od produktów obsługiwanych przez dział IT, poprzez potrzeby interesariuszy, aż po zewnętrzne zobowiązania prawne i związane z bezpieczeństwem — rodzaj śledzonych wskaźników, a także sposób ich śledzenia mogą ulec zmianie.

Nacisk na udostępnianie

DevOps stanowi próbę wypełnienia luki między tworzeniem a utrzymaniem, między twórcami a obsługą rozwiązań. Chodzi o wypracowanie wspólnych poglądów, celów, procesu i słownictwa. Chodzi o dzielenie się wiedzą i komunikację. Chodzi o wspólne zestawy narzędzi, zasoby i bazy kodu. I, co chyba najważniejsze, chodzi o wspólną własność, która oznacza wspólną odpowiedzialność oraz wspólne sukcesy.

Dla wielu tradycyjnych organizacji przejście na kulturę DevOps będzie oznaczało zmianę podejścia do definiowania, nagradzania i śledzenia tych wspólnych obowiązków oraz sukcesów. Czy cele zespołów programistycznych i operacyjnych są sprzeczne? Czy sukces jednego zespołu utrudnia osiągnięcie sukcesu drugiemu z nich?

Przykład: jeśli zespół programistyczny otrzyma zadanie jak najszybszego wdrożenia nowych funkcji, a zespół operacyjny IT będzie miał za zadanie zapewnić odpowiednią dostępność, te dwa cele mogą niekorzystnie wpływać na siebie nawzajem. Dział operacyjny może chcieć spowalniać programistów, aby przekroczyć docelowe wartości dostępności, podczas gdy programiści mogą mieć żal do zespołu operacyjnego za uniemożliwianie im realizacji ich celów wdrożeniowych.

W przypadku wielu zespołów DevOps rozwiązaniem bywa podejście SRE, które zakłada, że zespoły programistyczne mogą do woli wdrażać oprogramowanie, o ile dostępność mieści się w limitach celów SLO. Gdy dostępność zaczyna spadać poniżej dopuszczalnych poziomów, wszystkie wdrożenia są wstrzymywane, dopóki zespoły, współpracując ze sobą, nie przywrócą właściwego poziomu dostępności.

Porównanie ITIL i DevOps

Jeśli stosujesz wytyczne ITIL, być może zastanawiasz się, gdzie w tym wszystkim jest miejsce na DevOps. W przypadku wielu firm praktyki ITIL i DevOps można stosować równocześnie. W istocie w Atlassian spotykamy się z mnóstwem firm wykorzystujących zalety i mocne strony obydwu tych podejść.

Jak wyjaśniono w tym artykule na temat porównania DevOps i ITIL: „Obydwa są potrzebne. To elementy, które się uzupełniają, a nie konkurują ze sobą. Musimy być w stanie pracować szybciej i w sposób bardziej inteligentny, ale jednocześnie potrzebujemy procesu i kontroli. Nowoczesne wydajne zespoły i organizacje zaczynają to sobie uświadamiać i wykorzystują elementy obydwu podejść, wykraczając poza ultimatum „albo jedno albo drugie”.

ITIL koncentruje się przede wszystkim na najlepszych praktykach w zakresie operacji, wsparcia, nadzoru i innych podstawowych funkcji biznesowych. Z kolei DevOps wnosi kwestie, takie jak ciągłe dostarczanie, kultura eliminująca szukanie winnych, narzędzia do współpracy czy praktyki Agile, które bazują na praktykach od dawna wchodzących w skład wytycznych ITIL oraz rozszerzają je.

Narzędzia dla organizacji ukierunkowanych na DevOps

Wdrożenie podejścia DevOps może również oznaczać wprowadzenie nowych narzędzi do komunikacji, automatyzacji i współpracy międzyzespołowej.

Podejmując się oceny nowych narzędzi, należy zadać sobie między innymi następujące pytania:

  • Czy to narzędzie sprawdzi się w naszym środowisku i będzie można je zintegrować z dotychczasowymi narzędziami?
  • Czy spełnia ono nasze potrzeby?
  • Czy wszystkie nowe narzędzia współpracują ze sobą, tworząc kompleksowy, spójny zestaw narzędzi?

Być może nie jesteśmy obiektywni, ale w Atlassian wykorzystujemy Jira Service Management do zarządzania usługami IT, Jira Software do tworzenia oprogramowania oraz rozwiązanie Bitbucket w charakterze repozytorium kodu.

Te narzędzia sprawdzają się tak dobrze po części dlatego, że doskonale ze sobą współpracują. Gdy starasz się odejść od izolacji w strukturach zespołu, chcesz również odejść od izolacji narzucanej przez wybrane narzędzia.