DevOps

Zdjęcie od Sohrab Salimi
Sohrab Salimi
4 min Czas czytania
Ta treść została przetłumaczona przez AI. Zobacz oryginał

Pod pojęciem DevOps rozumie się

  1. Zbiór technicznych metod i narzędzi oraz
  2. Określoną kulturę współpracy między zespołami rozwoju oprogramowania i IT.

DevOps polega na tym, aby współpracę między rozwojem oprogramowania a działem operacji IT uczynić bardziej efektywną i skoordynowaną poprzez wspólne procesy i narzędzia programowe. Zespół DevOps składa się z programistów i pracowników IT, którzy współpracują ze sobą przez cały cykl życia produktu.

Początki DevOps

Termin DevOps powstał w 2009 roku i składa się z części Dev (= obszar Software Development / rozwój oprogramowania) oraz Ops (= obszar IT Operations / administracja systemami).

Ruch, który doprowadził do powstania DevOps, zaczął się jednak wcześniej: już około 2007 roku społeczności IT Operations i rozwoju oprogramowania wymieniały się doświadczeniami. Ich członkowie postrzegali rozdzielenie zespołów odpowiedzialnych za pisanie kodu od zespołów odpowiedzialnych za wdrażanie i wsparcie kodu jako problematyczne. Ta wymiana doświadczeń zapoczątkowała integrację obu dziedzin.

Cele DevOps

DevOps jest stosowany, aby osiągnąć następujące cele:

  • Zwiększenie jakości oprogramowania
  • Przyspieszenie rozwoju i dostarczania oprogramowania
  • Poprawa współpracy między zespołami zaangażowanymi w rozwój i wdrażanie
  • Zapewnienie wysokiej stabilności operacyjnej i unikanie defektów technicznych wynikających ze zmian i aktualizacji

Jak osiąga się te cele?

Cele te osiąga się poprzez automatyzację i integrację procesów między zespołami Development i Operations w organizacji. Najważniejsze aspekty to:

  • Automatyzacja technologii
  • Komunikacja i współpraca międzyzespołowa
  • Wzmacnianie kompetencji zespołu

Cykl życia DevOps

Ciągły proces DevOps można sobie wyobrazić jako nieskończoną pętlę, która najczęściej składa się z następujących 6 faz:

  1. Planowanie
  2. Tworzenie / Build
  3. Continuous Integration i Continuous Delivery
  4. Monitorowanie i ostrzeganie / Monitor
  5. Operate
  6. Ciągły feedback

Te 6 faz reprezentuje różne umiejętności, procesy i narzędzia z obszarów rozwoju i operacji. Ważne jest, aby oba zespoły współpracowały i komunikowały się ze sobą jak jeden wspólny zespół w każdej z tych faz.

Jakie metody i narzędzia należą do DevOps?

Metody

DevOps obejmuje różne niezależne od siebie techniki:

  • Zwinne wytwarzanie oprogramowania
  • Continuous Integration (auch: CI oder Kontinuierliche Integration) i Continuous Delivery (auch: CD)
  • Ciągły monitoring usług
  • Microservices
  • Automatyczne testy oprogramowania
  • Software Configuration Management, zarządzanie wersjami i „Infrastructure as Code"
  • Międzyobszarowe Key Performance Indicators (KPIs)

Narzędzia

Wymienione metody są wspierane lub umożliwiane na przykład przez następujące narzędzia DevOps:

  • GitHub i GitLab (dla Continuous Integration i Continuous Delivery, automatycznych testów oprogramowania i zarządzania wersjami)
  • Jenkins (Continuous Integration)
  • Puppet (dla Infrastructure as Code)
  • Ansible (dla Configuration Management)
  • Vagrant (jako platforma wirtualizacji)
  • Azure DevOps (np. dla Continuous Integration, testowania, zarządzania wydaniami i zarządzania systemami)
  • Microsoft Azure (dla monitoringu i hostingu)
  • Team Foundation Server
  • Docker (dla wirtualizacji kontenerów)
  • Kubernetes (orkiestracja kontenerów)

Jaką kulturę współpracy promuje DevOps?

DevOps ma na celu poprawę kooperacji między zespołami rozwoju i operacji jako zespołu międzyobszarowego oraz zniesienie ich wzajemnej separacji. Ścisła współpraca powstaje dzięki następującym aspektom:

  • Zespoły IT Operations i Software Development ściśle ze sobą współpracują i często są łączone w jeden zespół na cały czas trwania cyklu życia produktu.
  • Cały zespół koncentruje się na potrzebach i korzyściach klienta w trakcie cyklu życia oprogramowania.
  • Wewnątrz zespołu procesy i plany są konsekwentnie wzajemnie widoczne.
  • Priorytety, odpowiedzialności i zmiany są wzajemnie uzgadniane.
  • Zarządzanie ryzykiem jest upraszczane dzięki krótszym cyklom wydań i planowaniu.
  • Wszyscy członkowie zespołu dbają o regularną i otwartą komunikację.

Wyzwania przy wdrażaniu DevOps

Jak zawsze, gdy wprowadzane są zmiany, w zespole znajdą się osoby, które mają trudności z wdrożeniem lub budują konkretny opór wobec nich. Dlatego ważne jest, aby wszyscy członkowie zespołu naprawdę rozumieli zasady, wartości i korzyści DevOps oraz aby organizacja poświęciła wystarczająco dużo czasu na informowanie i wdrażanie.

Ważne kwestie do uwzględnienia:

  1. Im wcześniej rośnie zrozumienie dla połączenia zespołów rozwoju i operacji i silosy zostaną odpowiednio rozwiązane, tym łatwiej przebiega integracja DevOps.
  2. Samo stosowanie wymienionych narzędzi nie wystarczy, aby czerpać korzyści z DevOps. Kluczowa jest kombinacja kultury, metod, procesów i narzędzi.

Podsumowanie DevOps

DevOps ma na większość organizacji zdecydowanie pozytywny wpływ. Podejście to zapewnia bowiem wyższą efektywność zespołu i bezpieczeństwo, szybsze wydania oprogramowania oraz wyższą jakość produktu dla bardziej zadowolonych klientów.
Korzyści płynące z zasad DevOps są tak duże, że stojące za nimi podejście wraz z jego wartościami znajduje obecnie zastosowanie również w innych zespołach. Na przykład DevSecOps oznacza integrację bezpieczeństwa w proces rozwoju oprogramowania.

Więcej na ten temat

Testy A/B

Znajdź tutaj podstawy A/B Testingu na swojej stronie internetowej. Wyjaśniamy podstawy i pierwsze kroki w zwinnym testowaniu.

Definition of Ready

Definition of Ready opisuje wspólne rozumienie Zespołu Scrumowego dotyczące poziomu dojrzałości wymagań i ich realizacji.

Porozmawiaj z naszym asystentem Porozmawiaj z naszym asystentem