Czym jest DevOps?

Paulina Cirocka 17 czerwca 2022 6 min czytania
Contents

Szybki rozwój technologii wymaga również rozwoju metodologii, kultur i sposobów myślenia w zarządzaniu projektami. Jedną z najszybciej rozwijających się kultur jest kultura DevOps. W tym artykule dowiesz się, czym są podstawy ruchu DevOps, kim jest inżynier DevOps i jak może on pomóc na każdym etapie cyklu życia oprogramowania.

Czym jest DevOps?

Prosto mówiąc — DevOps to zestaw praktyk, narzędzi, frameworków itp., które łączą zespoły deweloperskie i operacyjne w procesie tworzenia oprogramowania. Pomaga to skrócić cały proces i zapewnić mu jak najlepszą jakość. Termin DevOps został zaprezentowany podczas DevOps Days w 2009 roku w Belgii przez Patricka Deboisa.

Debois pracował dla rządu belgijskiego przy migracji centrum danych i zauważył konflikty między programistami a administratorami systemów, które wpływały również na jego pracę. Zainspirowany konferencją O’Reilly Velocity 09 (w której uczestniczył zdalnie), postanowił zorganizować własną Velocity — DevOps Days.

Czym zajmują się inżynierowie DevOps?

Do ich głównych obowiązków należą między innymi:

  • zarządzanie infrastrukturą i środowiskiem pracy dla programistów i testerów,
  • dzielenie się wiedzą oraz aktywne przeglądanie pull requestów,
  • ciągłe monitorowanie zmian w projektach oraz trendów technologicznych,
  • automatyzacja procesów,
  • przegląd bezpieczeństwa i optymalizacja kosztów.
What do DevOps engineers do?

Istotną praktyką DevOps jest wdrażanie ciągłej integracji i automatyzacji wdrożeń (CI/CD). W tym procesie programiści wprowadzają niewielkie zmiany w kodzie, korzystając z różnych narzędzi, które następnie muszą zostać zintegrowane. Gdy rozpoczyna się proces dostarczania, wszystkie zmienione elementy są wdrażane na infrastrukturę, gotową do umieszczenia w środowisku testowym.

Biorąc pod uwagę te obowiązki, inżynier DevOps musi posiadać przynajmniej podstawową wiedzę z różnych obszarów IT, zaczynając od hybrydowych systemów chmurowych, narzędzi DevOps i pipeline’ów CI/CD. Powszechnym błędem jest przekonanie, że DevOps nie musi mieć umiejętności programowania. Nic bardziej mylnego! Podstawowe umiejętności programistyczne są konieczne, aby rozumieć proces tworzenia oprogramowania.

Metodologia Agile – jak działa?

Agile to podejście do zarządzania projektami i tworzenia oprogramowania, stworzone jako alternatywa dla metodologii Waterfall, która była zbyt sztywna, aby sprostać oczekiwaniom rozwijającej się technologii. Waterfall dzieli cały proces tworzenia oprogramowania na fazy, gdzie jedna musi zostać zakończona, zanim zacznie się kolejna. Utrzymuje to projekt w bardzo sztywnych ramach, co może utrudniać pracę zamiast pomagać. Dlatego w 2001 roku deweloperzy spotkali się w Snowbird w Utah i spisali tzw. Manifest Agile, zawierający 4 główne wartości:

  • Ludzie i interakcje ponad procesy i narzędzia
  • Działające oprogramowanie ponad obszerną dokumentację
  • Współpraca z klientem ponad negocjacje umów
  • Reagowanie na zmiany ponad podążanie za planem

Manifest zawiera także 12 zasad, które mocno akcentują współpracę, jakość i dynamikę.

Szczegółowo, Agile kładzie nacisk na automatyzację, współpracę zespołów deweloperskich oraz rozumienie przez członków zespołu wszystkich procesów. Jednak nadal istnieją różnice między zespołami Agile a DevOps. Najważniejsze z nich to:

Główna idea

W Agile – Dostarczanie małych ulepszeń przez rozwój i testowanie; skupienie na pisaniu kodu

W DevOps – Łączenie zespołów deweloperskich i operacyjnych w celu poprawy współpracy i produktywności; skupienie na ciągłym wdrażaniu i operacjach

Zastosowanie

W Agile – Każdy dział pracujący nad projektami

W DevOps – Specjalnie dla procesów inżynieryjnych i operacji IT

Sposób pracy

W Agile – Wprowadzanie zmian w trakcie projektu, by poprawić jakość oprogramowania

W DevOps – Ciągła integracja, rozwój i testowanie

Charakterystyka zespołu

W Agile – Mały zespół, członkowie o podobnych umiejętnościach

W DevOps – Duży zespół, członkowie z różnymi kompetencjami

Czas dostarczania

W Agile – Zazwyczaj cotygodniowe spotkania zwane sprintami i dodawanie usprawnień po każdym sprincie

W DevOps – Dostarczanie codziennie lub nawet co kilka godzin

Dokumentacja

W Agile – Lekka, minimalna, by nie utracić elastyczności projektu

W DevOps – Szczegółowa, by zapewnić dobrą współpracę zespołów, ale stawia komunikację ponad dokumentację

Informacja zwrotna

W Agile – Od klienta

W DevOps – Wewnętrzna

Podsumowanie – jak DevOps i Agile się uzupełniają?

Strategia DevOps bazuje w dużej mierze na Agile i stała się jego rozszerzeniem lub uzupełnieniem w operacjach IT. Agile pomaga optymalizować cykl życia tworzenia oprogramowania, podczas gdy DevOps skupia się na łączeniu zespołów deweloperskich i operacyjnych, co pomaga im lepiej rozumieć swoją pracę. W efekcie rośnie efektywność operacyjna, produkt końcowy jest wysokiej jakości i może być dostarczany szybciej. W przypadku negatywnej opinii klienta, błędy i niepożądane elementy mogą być szybko poprawione dzięki ustalonym procedurom.

Co oznacza znak nieskończoności DevOps?

Aby lepiej zobrazować proces DevOps, spójrz na grafikę poniżej:

DevOps Process

Jak wspomniano wcześniej, procesy DevOps są ciągłe i powtarzalne. Wszystko po prawej stronie znaku nieskończoności to shift-right, a reszta to shift-left. Dlaczego więc DevOps zaleca zasady testowania „shift-left”?

Lewa strona to początek, wczesne procesy tworzenia oprogramowania, gdzie działania takie jak dodawanie nowych elementów, naprawianie błędów, modyfikacje i testy automatyczne są łatwiejsze niż po wydaniu. Dzięki temu system osiąga większą efektywność i jakość. Koszty zmian są też mniejsze niż podczas shift-right.

Jakie są modele współpracy DevOps?

„Staff augmentation” (rozszerzenie zespołu) to coraz popularniejsze określenie w świecie IT. Co to tak naprawdę oznacza? Staff Augmentation to elastyczny model outsourcingu DevOps, który pozwala zatrudniać specjalistów z całego świata i zarządzać ich pracą bezpośrednio, podczas gdy wspierają oni Twój wewnętrzny zespół. Masz nieograniczoną, globalną bazę specjalistów, którzy są tańsi niż tradycyjni pracownicy, nie wspominając o czasie zaoszczędzonym na rekrutacji.

Brzmi dobrze?

A co z całym zespołem?

Czym jest DevOps Team Augmentation?

Ten model działa podobnie do staff augmentation, ale zamiast jednego lub dwóch specjalistów zatrudniasz cały zespół. Oczywiście rozwiązanie należy dobierać w zależności od rodzaju projektu, ale zazwyczaj zespół jest efektywniejszy niż pojedyncza osoba. Dlaczego?

W przeciwieństwie do rozszerzania jednego specjalisty, leasing całego zespołu oznacza pozyskanie różnorodnych umiejętności i zdolności, więc więcej obszarów może być wspartych i usprawnionych w krótszym czasie. „Zespół” to nie przypadkowa grupa ludzi, którą musisz sam organizować, ale dobrze naoliwiona maszyna z członkami, którzy już mieli okazję ze sobą pracować, znają swoje kwalifikacje i mogą mieć przypisane role od pierwszego dnia współpracy. Mówiąc krótko – zespoły DevOps są efektywniejsze i szybciej dostarczają oprogramowanie, co podnosi satysfakcję klienta.

Jakie są korzyści DevOps?

Im bardziej zaawansowany i skomplikowany jest Twój projekt, tym bardziej potrzebujesz profesjonalnego wsparcia end-to-end oraz koordynacji między działami deweloperskimi i operacyjnymi. Przyjęcie DevOps prowadzi zespół przez proces, zapewniając lepszą komunikację, stabilność, bezpieczeństwo, a w efekcie daje lepszy produkt końcowy.

W DevOpsity mocno wierzymy, że zatrudnienie całego zespołu przynosi większą efektywność niż pojedynczej osoby. Jeśli potrzebujesz profesjonalnej pomocy przy swoim projekcie oprogramowania, umów się na bezpłatną konsultację z nami, a wspólnie opracujemy najlepsze rozwiązanie dopasowane do Twoich potrzeb.

devops whatsdevops devopsmethodology agile devopsinfinitysign
paulina.webp
Paulina Cirocka
Marketing Specialist

Doświadczona specjalistka ds. marketingu, specjalizuje się w tworzeniu treści. Pracuje dla firm IT od 2019 roku. W Devopsity odpowiada nie tylko za zarządzanie marketingiem, ale także za employer branding.

Spis treści

Przeczytaj również:

Poprzedni post Następny post