Centrum wiedzy o technologiach i pracy w IT
devops

DevOps – na czym polega?

Określenie DevOps powstało z połączenia słów development (tworzenie i rozwój oprogramowania) oraz operations (czyli wdrażanie oprogramowania). Jest alternatywą dla tradycyjnego modelu oprogramowania, które zakłada, że oprogramowanie jest najpierw tworzone, a potem wdrażane do użytku. Metodyka DevOps należy do metodyk zwinnego wytwarzania oprogramowania (Agile).

DevOps a fazy projektu

Życie produktu dzieli się na następujące fazy: planowanie, rozwijanie aplikacji, wdrażanie oraz utrzymywanie. W tradycyjnym modelu rozwoju oprogramowania etapy te są od siebie niezależne i zwykle zajmują się nimi odrębne zespoły.

Metodyka DevOps zakłada, że wszystkie role w projekcie (np. administratorzy systemów, specjaliści od bezpieczeństwa, testerzy czy też programiści) w pewnym stopniu mają swój udział w każdym etapie procesu tworzenia oprogramowania. W firmach, które z powodzeniem wdrożyły taki sposób organizacji pracy mówi się o kulturze DevOps.

Kultura DevOps zakłada współpracę, skracanie cykli wydawania produktu, bazowanie na informacjach zwrotnych, monitorowanie w celu zdobycia danych oraz podejmowanie decyzji na ich podstawie.

Czym zajmuje się DevOps Engineer?

Coraz więcej firm zmienia formułę tworzenia oprogramowania tak, aby stosować metodykę DevOps. W związku z tym powstało zapotrzebowanie na specjalistów, którzy posiadają wiedzę z każdego obszaru procesu tworzenia aplikacji. Rozległe doświadczenie ma pozwolić na efektywne działania w każdym obszarze tworzenia projektu.

W zależności od rodzaju firmy, codzienne obowiązki mogą wyglądać następująco:

  • pisanie oprogramowania,
  • tworzenie narzędzi wspierających zespoły programistyczne,
  • opieka nad środowiskami testowymi oraz produkcyjnymi,
  • monitorowanie wydajności aplikacji.

To tylko przykładowy zestaw obowiązków, ponieważ wiele zależy od struktury organizacji firmy. Zdarza się, że DevOps Engineer jest wsparciem dla zespołu programistów, a dalszymi działaniami zajmuje się dział utrzymania.

Z jakich narzędzi korzysta DevOps?

Wykorzystanie narzędzi w metodyce DevOps jest ściśle związane z poszczególnymi etapami projektu i z wykorzystywanymi w nich praktykami.

Planowanie

Na etapie planowania projektu zadaniem zespołów jest opracowanie funkcji systemów lub aplikacji. Do śledzenia postępów wykorzystuje się metodę Scrum i narzędzia wizualizacyjne, np. Kanban. Na tym etapie ważna jest również komunikacja między zespołami i dokumentowanie ustaleń. Przykładowymi narzędziami, które są pomocne podczas planowania są: Jira, Mattermost, Slack.

Zarządzanie infrastrukturą

W metodyce DevOps istotną koncepcją jest infrastruktura jako kod. Oznacza to, że konfigurację systemów definiuje się za pomocą przepisów, czyli w formie tekstowej. System kontroli wersji przechowuje opisy razem z kodem. Tworzenie oraz konfigurowanie środowisk aplikacji odbywa się z wykorzystaniem narzędzi automatyzacji infrastruktury: Chef albo Ansible.

Ciągła integracja i dostarczanie

W procesie ciągłej integracji wszelkie zmiany kodu są automatycznie budowane oraz integrowane w całość aplikacji, aby szybko wyłapywać błędy. Automatyzacja umożliwia ciągłe monitorowanie zdrowia kodu i poprawianie jego jakości. Do tych procesów wykorzystuje się następujące narzędzia: Jenkins i Circle CI.

Sprawdź: CTO

Testowanie

Testowane jest niezbędne do zapewnienia, że kod działa w oczekiwany sposób. Zestaw testów obejmuje różne poziomy szczegółowości, od testów jednostkowych przez testy integracyjne do testów użytkownika końcowego. Do zarządzania testowaniem używa się narzędzi Zephyr i Mabl.

Zobacz: Branża IT

Ciągłe monitorowanie

Na etapie wdrożenia projektu oraz przekazania do użytku niezbędne jest monitorowanie np. zasobów aplikacji, środowiska czy pojawiających się błędów. Trudno byłoby nadzorować kilkanaście serwerów, przeglądając logi każdego z nich, dlatego powstały narzędzia ułatwiające monitorowanie złożonych środowisk, takie jak Opsgenie i Statuspage.

Metodyka DevOps pomaga w znaczący sposób poprawiać wyniki biznesowe poprzez nieustanne dostarczanie wartości klientom. Szybka reakcja na potrzeby rynku możliwa jest dzięki krótkim cyklom wydawania.

Total
0
Shares
_podobne artykuły