DevOps – następca Agile?

Październik 29, 2015 Krzysztof Piskorski

Amazon oszczędza miliony dolarów dzięki błyskawicznym testom A/B. Facebook bezboleśnie wypuszcza każdego dnia nową wersję. HP zredukowało koszt produkcji firmware’u o 40%. Wszystko dzięki przełomom w tworzeniu oprogramowania, o których eksperci PGS Software często opowiadają na konferencjach i warsztatach. Co więcej, stosują je na co dzień w projektach.

Historia świetnie radzi sobie z niewydajnymi procesami. Przykład: przez tysiące lat przesyłanie informacji wymagało wynajęcia posłańców lub hodowania pocztowych gołębi. Wieści podróżowały powoli. Czasem nigdy nie docierały do celu.

Technologia rozwiązała ten problem. Kolejno pojawił się telegraf, telefon, e-mail oraz internetowe komunikatory. Nagle możemy komunikować się z każdym na ziemi – wydaje się to oczywiste, choć w skali historii otrzymaliśmy taką możliwość niedawno.

Podobne przełomy zdarzają się często: fizyczne nośniki muzyki zastąpione przez serwisy streamingowe, dalekie podróże biznesowe zastąpione przez teleobecność. Wiele z tych przełomów ma wspólny mianownik – z pomocą technologii skracają czas konieczny, by coś gdzieś dostarczyć.

Podobny przełom rozpoczął się w IT w okolicach roku 2008, kiedy narodził się termin DevOps. Było to naturalne rozwinięcie filozofii Agile, spopularyzowane prędko przez wydarzenia takie jak konferencja DevOps Days.

DevOps 1

DevOps

Co znaczy DevOps? Nawet w świecie IT wiele osób nie jest do końca pewnych, istnieje bowiem dużo definicji. My proponujemy taką, krótką i zwięzłą:

DevOps to zestaw praktyk z dziedziny tworzenia oprogramowania, który pomaga firmom osiągać sukces, zapewniając najściślejszą współpracę między programistami, zespołami operacyjnymi oraz specjalistami QA. Te trzy grupy razem partycypują w całym cyklu życia oprogramowania: od projektowania, przez development, po wsparcie gotowego produktu. Zakres DevOps jest bardzo szeroki i dotyka zarówno specyficznych, technologicznych rozwiązań, jak i wewnętrznej kultury organizacji oraz jej procesów biznesowych.

Warto dodać, że tego typu podejście zostało przyjęte przez wiele z firm z listy Fortune 100 w zaledwie kilka lat. DevOps jest również bardzo ważnym tematem dla PGS Software. Zauważyliśmy, że nasi klienci często chcą o nim rozmawiać, i dlatego od dawna dokładamy starań, żeby zbudować świetne zespoły doświadczonych praktyków.

Niedawno, jeden z naszych głównych ekspertów w tym temacie, Krzysztof Rolak (Head of Programme Delivery), mówił wyczerpująco o DevOps podczas Polsko-Szwajcarskiego Spotkania Sektora ICT w Rapperswil, w Szwajcarii.

Najważniejszy punkt jego prezentacji? Nasze organiczne, osobiste doświadczenia z DevOps, Continuous Delivery oraz innymi praktykami, które wykiełkowały w ostatnich latach z ruchu Agile.

Continuous Delivery

Podczas gdy DevOps to bardziej ogólny zbiór zasad, Continuous Delivery jest jednym z jego praktycznych zastosowań. Celem Continuous Delivery jest skrócenie cyklu tworzenia oprogramowania poprzez zapewnienie ciągłych, małych i szybkich deploymentów.

Continuous Delivery powstało w odpowiedzi na nowe potrzeby rynku IT. A konkretnie:

  • Rosnącą wagę szybszego wprowadzania produktów na rynek,
  • Coraz większą awersję do kosztów, ryzyka i pracochłonności tradycyjnych releasów,
  • Dążenia do eliminacji powtarzalnych, manualnych zadań związanych z releasami.

Continuous Delivery osiąga swoje cele dzięki eliminowaniu nieefektywnych procesów z całego cyklu tworzenia oprogramowania oraz dzięki automatyzacji powtarzalnych elementów tego cyklu. Konkretny poziom automatyzacji zależy od szczegółów projektu oraz użytej technologii, ale zazwyczaj obejmuje zautomatyzowaną integrację kodu, kontrolę jakości, deployment oraz automatyczne zarządzanie infrastrukturą.

DevOps Article 2

Jak to się sprawdza w praktyce?

W PGS Software interesowaliśmy się nowymi metodami tworzenia oprogramowania od samego początku. Continuous Delivery wydawało nam się bardzo obiecujące. Zbudowaliśmy odpowiednią bazę wiedzy i narzędzi, a potem szukaliśmy projektu, który pozwoliłby nam w pełni zastosować to podejście.

Właściwy projekt pojawił się w roku 2012. Było to ePoints – bardzo ambitna, modularna platforma, na którą składał się internetowy system lojalnościowy, kilka internetowych sklepów, porównywarka cen, wiele różnych baz produktów oraz gotowe rozwiązania e-commerce. Moduły te miały łącznie miliony użytkowników oraz produktów.

Ta wielka skala, w połączeniu z liczbą zależności sprawiały, że tradycyjne deploymenty były wolne. Tymczasem w błyskawicznie zmieniającym się sektorze, w którym działo ePoints, powolność była groźna.

Nasze rozwiązanie? Stopniowe i ostrożne przejście do pełnego modelu Continuous Delivery.

Zaczęliśmy od zbudowania zespołu produktowego, który w pracy intensywnie wykorzystywał Scrum. Stopniowo przenieśliśmy platformę do Amazon Cloud, wprowadzając proces automatycznego tworzenia buildów. Następnie zautomatyzowaliśmy integrację kodu, testy wydajnościowe, akceptacyjne oraz wiele innych zadań, osiągając po pewnym czasie poziom pełnego Continuous Delivery. Więcej informacji o całym procesie można znaleźć w naszym krótkim filmie.

Mierzalne rezultaty

W rezultacie zdołaliśmy zredukować nakład pracy zespołu QA podczas każdego deploymentu z 400 to zaledwie 30-40 godzin. To z kolei pozwoliło obciąć koszty deploymentu o 40% oraz zredukować koszty infrastruktury o 50%.

To nie jest jednak najbardziej zaskakujący rezultat! Jeszcze ciekawszym skutkiem ubocznym było to, że obecnie od ponad trzech miesięcy nie wykryliśmy żadnego błędu na serwerze produkcyjnym. Wszystkie są wyłapywane na wcześniejszych etapach dzięki malutkim, łatwym do opanowania deploymentom oraz ogromnemu arsenałowi uważnie zaprojektowanych, automatycznych testów.

Takie rezultaty świetnie wyglądają jako punkty w sprzedażowych prezentacjach, ale warto zaznaczyć jedno: nie był to szybki, prosty proces. Implementowanie praktyk DevOps oraz wprowadzanie zaawansowanych rozwiązań, takich jak Continuous Delivery, wymaga zarówno stopniowej zmiany kultury przedsiębiorstwa, jak i rozległego technologicznego doświadczenia. Podczas tego projektu – oraz innych podobnych – nauczyliśmy się, że w tej dziedzinie nie ma gotowych recept, które sprawdzą się w każdym przypadku.

Prawdopodobnie dlatego nikt nie stworzył jeszcze skutecznego poradnika „DevOps w weekend”.

By osiągnąć wszystkie założone rezultaty, potrzeba świetnego zespołu doświadczonych praktyków, którzy opanowali najnowsze technologie.

Na szczęście ten punkt mamy z głowy.

Perspektywy DevOps

Czy DevOps to przyszłość IT? Na pewno jego poszczególne elementy z czasem przenikną do niemal każdego projektu programistycznego. Raport „2014 State of DevOps” autorstwa Puppet Labs pokazuje, że dzieje się to już teraz. Przedsiębiorstwa, które traktują IT priorytetowo, od dłuższego czasu skręcają w stronę DevOps – i znacząco na tym korzystają.

W międzyczasie rozpędu nabiera koncepcja „sprytniejszego DevOps”, która intensywniej skorzysta z wirtualizacji oraz chmur obliczeniowych. Eksperci coraz częściej podnoszą też pomysł stworzenia ustandaryzowanego systemu certyfikacji IT, potwierdzającego praktyczne umiejętności związane z DevOps.

Będziemy na pewno obserwować te wydarzenia z zainteresowaniem. W międzyczasie zamierzamy nadal poszerzać wiedzę o praktykach DevOps u dużych i małych przedsiębiorstw z naszego regionu. Ogromne zainteresowanie tematem, które zobaczyliśmy podczas spotkania w Rapperswil, ostatecznie przekonało nas, że warto.

Zastanawiasz się, jak praktyki DevOps mogą pomóc w Twojej firmie lub w Twoim projekcie? Skontaktuj się z naszymi ekspertami!
Chcesz pracować z ekspertami DevOps? Sprawdź zakładkę Kariera i umów się z nami na spotkanie!

Najnowsze wpisy