Aktualności

29.09.2021

Najpopularniejsze narzędzia DevOps

Wprowadzenie

Branża IT, a w szczególności specjalizacja DevOps, wymaga znajomości wielu narzędzi, które same w sobie są multifunkcjonalne i mogą służyć do obsługi kilku mocno różniących się od siebie zagadnień. Ta „multifunkcjonalność” jest jednym z powodów, dla których podczas podziału na kategorie (np. narzędzia do konfiguracji czy prowadzenia testów) przypisuje się je do więcej niż jednej grupy.

Poniżej prezentujemy kilka najpopularniejszych, według nas, narzędzi obecnie wykorzystywanych przez DevOpsów.

Narzędzia konfiguracyjne

Narzędzia do konfigurowania pomagają na wielu różnych płaszczyznach. Umożliwiają szybsze wprowadzanie zmian i uaktualnień, a także wspierają zarządzanie systemem sprawiając, że sam proces jest bardziej przewidywalny i łatwiejszy do skalowania. Ponadto, jako że w wielu czynnościach użytkownika zastępuje oprogramowanie, ryzyko popełnienia błędu przez człowieka jest mniejsze niż w przypadku, gdy wszystkie operacje wykonywane są ręcznie. Obecnie do najczęściej wykorzystywanych narzędzi tego typu należą Ansible, Chef, Puppet i Salt Stack.

CI/CD

Z angielskiego Continuous Integration oraz Continuous Delivery. Ciągła integracja czyli zarówno podejście programistyczne, jak i zestaw praktyk mających na celu wprowadzanie częstych zmian, a następnie ich integrowanie, walidowanie i testowanie. CI to nieustanne „szlifowanie” aplikacji w sposób ustrukturyzowany, usprawniający współpracę pomiędzy zespołami i zapewniający wysoką jakość oprogramowania. Ciągłe dostarczanie automatyzuje natomiast proces wprowadzania aplikacji do danego środowiska. Ilość narzędzi do obsługi CI/CD jest bardzo duża, a ich dobór może być zależny od różnych czynników, np. od chmury z jaką dany DevOps będzie pracować. Do najpopularniejszych rozwiązań z tego obszaru należą: Jenkins, TeamCity, Circle CI, Travis CI, AWS Code Pipeline, Azure DevOps, Google Cloudbuild, Gitlab CI, Gitlab Action oraz Bitbucket Pipeline.

Narzędzia do monitorowania

Jako że DevOps stanowi pomost pomiędzy zespołami spajając je w jeden sprawnie funkcjonujący organizm, konieczne jest efektywne monitorowanie na wielu płaszczyznach, począwszy od etapu planowania, poprzez rozwój oprogramowania i jego integrację, następnie testowanie, wdrażanie aż po jego ostateczne funkcjonowanie. Skuteczne monitorowanie to mniej opóźnień i przykrych niespodzianek, a oprogramowanie do tego służące oferuje DevOpsom rozbudowane funkcje. Do najczęściej stosowanych rozwiązań w tej kategorii należą Prometheus, Zabbix, Icinga oraz Nagios.

Testowanie

Do podejścia CI/CD można by z powodzeniem dodać jeszcze termin Continuous Testing. Biorąc pod uwagę tempo w jakim tworzy, zmienia i dostarcza się oprogramowanie w oparciu o filozofię DevOps, w zasadzie nie ma innego wyjścia, jak nieustannie testować i to na każdym etapie. Kluczowa w tym wypadku jest automatyzacja bez której przetestowanie wszystkiego nie byłoby możliwe. Spośród narzędzi wspierających ten proces na szczególną uwagę zasługują Selenium, Buddy, Gremlin, ActiveControl oraz LoadRunner.

Wirtualizacja, konteneryzacja

Konteneryzacja, czyli możliwość „zapakowania” tworzonego oprogramowania wraz z niezbędnymi do jego funkcjonowania elementami (systemem operacyjnym wraz z bibliotekami, etc.) do niezależnego kontenera, jest procesem, który bardzo ułatwia pracę deweloperów. Dzięki temu zabiegowi mamy pewność, że oprogramowanie ruszy w każdej infrastrukturze. Popularnymi narzędziami obecnie wykorzystywanymi do wirtualizacji i konteneryzacji są Docker i Kubernetes.

Bezpieczeństwo

Temat na tyle istotny, że coraz częściej w kręgach informatycznych mówi się o SecOps lub DevSecOps. Bezpieczeństwem DevOpsi interesują się już w fazie konceptu i jest to kluczowe zagadnienie przez cały czas trwania projektu. Przykładem popularnego oprogramowania w tym obszarze jest Spectral i Splunk SOAR, to drugie rozwiązanie do niedawna znane było pod nazwą Splunk Phantom.

Narzędzia wspierające współpracę i koordynację

Koordynacja w ramach jednego działu to jedno, natomiast sprawna komunikacja, współpraca i dzielenie kompetencji między różnymi zespołami to coś zdecydowanie trudniejszego. W tym przypadku DevOpsi sięgają po takie rozwiązania jak Jira, Slack i GitHub.

Chmury

Rozwiązania oparte na chmurze zrewolucjonizowały i przyspieszyły rozwój oprogramowania, stając się jednym z filarów filozofii DevOps. W tej kategorii, na polskim rynku najczęściej padają nazwy Amazon Web Services, Microsoft Azure i Google Cloud Platform.

Podsumowanie

Wyzwaniem dla DevOpsa jest nie tylko ilość narzędzi, z których będzie korzystał, ale też wprowadzane w nich zmiany i aktualizacje. Przejście z jednej firmy do drugiej lub nawet zmiany w ramach konkretnych projektów, mogą wymagać przyswojenia nowego zestawu narzędzi. Nie da się ukryć zatem, że nieustanny rozwój jest nieodłącznym elementem tej specjalizacji.