DevOps narzędzia, które musisz znać

Oto niektóre z technologii i narzędzi DevOps używanych w dzisiejszych czasach. Nie martw się, jeśli jesteś nowy w DevOps i mikroserwisach, postaram się użyć możliwie najprostszego języka, jak to tylko możliwe, aby opisać te narzędzia. Niektóre z wymienionych narzędzi są bardzo popularne, a niektóre dość niszowe. Po przeczytaniu artykułu będziesz miał ogólną wiedzę o narzędziach, których używają specjaliści tej metodologii. Nie sposób przedstawić dogłębnie wszystkich narzędzi, w tak krótkim wpisie. Skupiam się na ogólnych informacjach dotyczących konkretnych technologii.
W dzisiejszych czasach jesteśmy świadkami szybkiego postępu technologii a DevOps w szczególności. Obecnie używane oraz popularne narzędzie mogą w następnych latach stać się przestarzałe, a nawet szybko zostać zastąpione innymi. Celem tego wpisu nie jest ocenianie, które z nich są najbardziej popularne lub funkcjonalne, ale przedstawienie ogólnego wyobrażenia o tym, jak działają oraz w jaki sposób są wykorzystywane w tym procesie.

Narzędzia DevOps


Systemy kontroli wersji:


Git – to rozproszony system kontroli wersji o otwartym kodzie źródłowym. Więcej informacji można znaleźć na stronie https://git-scm.com/about.
GitHub – hosting repozytorium Git, strona projektu https://github.com/.
Bitbucket – usługa hostingu repozytorium kodu źródłowego oparta na Git firmy Atlassian, znajduje się pod https://bitbucket.org/.
Apache Subversion (SVN) – to system wersjonowania i kontroli wersji oprogramowania dystrybuowany jako open-source na licencji Apache License.
Azure DevOps – produkt firmy Microsoft, który zapewnia kontrolę wersji.


Inne technologie kontroli wersji? Gitlab, Mercurial, Bazaar, AWS CodeCommit, Perforce Helix Core i SourceForge. Systemów kontroli wersji mamy pod dostatkiem. Oczywiście Git jest liderem, jednak rozwiązania Azure DevOps czy też GitHub coraz bardziej rosną w siłę.

Konteneryzacja:

Docker

Oprogramowanie do konteneryzacji, które wykonuje wirtualizację na poziomie systemu. Twórcą tego oprogramowania jest Docker, Inc. Pierwsza wersja tego oprogramowania ujrzała światło dzienne w roku 2013. Został przygotowany w języku Go.

Komponenty Docker’a:
Kontener – jednostka oprogramowania, która opakowuje kod i wszystkie jego zależności w celu szybkiego i niezawodnego uruchamiania w dowolnym śrofowisku.


Obraz kontenera – lekki, samodzielnie, wykonywalny pakiet oprogramowania, który zawiera wszystko, co jest potrzebne do uruchomienia aplikacji: kod, środowisko uruchomieniowe, narzędzia systemowe, biblioteki systemowe i ustawienia. Obrazy kontenerów stają się kontenerami w czasie wykonywania, a w przypadku kontenerów Docker — obrazy stają się kontenerami po uruchomieniu w Docker Engine. Jest dostępny dla systemu Linux oraz aplikacji opartych na systemie Windows. Oprogramowanie w kontenerach będzie zawsze działać tak samo, niezależnie od infrastruktury. Kontenery izolują oprogramowanie od jego środowiska uruchomieniowego.


Docker Engine – pierwszy raz został uruchomiony w 2013 roku jako silnik Docker o otwartym kodzie źródłowym. Technologia ta jest wyjątkowa, ponieważ koncentruje się na wymaganiach programistów oraz administratorów systemów operacyjnych, aby oddzielić zależności aplikacji od infrastruktury.

Każda chmura u głównych dostawców posiada dostęp do Docker’a. Wielu z tych dostawców korzysta z platformy Docker w swoich natywnych ofertach IaaS. Ponadto wiodące platformy serverless typu open source wykorzystują technologię kontenerów Docker.

Amazon ECS

Usługa orkiestracji, która obsługuje kontenery Docker uruchamiane w celu wykonywania aplikacji kontenerowych na Amazon AWS. Eliminuje instalację i zarządzanie oddzielnym oprogramowaniem do orkiestracji kontenerów. Amazon pobiera opłaty za wykorzystywane zasoby przy okazji korzystania z tego rozwiązania.


AWS Fargate

Umożliwia wykonywanie kontenerów bez konieczności zarządzania serwerami lub klastrami. Amazon pobiera opłaty za zużytą pamięć i zasoby wirtualnego procesora do uruchomienia Fargate.


Google Cloud Platform

Zapewnia różne opcje uruchamiania kontenerów. Są to Google Kubernetes Engine (do zarządzania klastrem kontenerów), Google Compute Engine (do maszyn wirtualnych i potoku CI/CD) oraz elastyczne środowisko Google App Engine (do kontenerów w pełni zarządzanych PaaS). Google zapewnia infrastrukturę gotową do wdrożenia w środowisku produkcyjnym do wdrażania aplikacji kontenerowych. Pobierane są opłaty za wykorzystane zasoby.


LXC

Linux Containers, rodzaj wirtualizacji na poziomie systemu operacyjnego służącej do wykonywania wielu izolowanych systemów Linux (kontenerów) znajdujących się na hoście kontrolnym z pojedynczym jądrem systemu Linux. Jest to narzędzie typu open source i bezpłatne na licencji GNU LGPL. Jest dostępny w repozytorium GitHub.


Microsoft Azure Kontener

Podobnie jak AWS ECS, brak opłat za zarządzanie kontenerami, ale opłaty za to, z czego korzystasz – zasoby, pamięci, mocy procesora, przestrzeni dyskowej.


Apache Mesos

Opracowany przez Apache Software Foundation, Apache Mesos to projekt open-source do obsługi klastrów komputerowych. Wydany po raz pierwszy w 2016 roku i napisany w języku programowania C++. Darmowy w użyciu.

Docker-compose

Służy do uruchamiania aplikacji wielokontenerowych. Docker-compose opisuje grupy połączonych usług, które współdzielą zależności oprogramowania i są wspólnie aranżowane i skalowane. Możesz użyć YAML do skonfigurowania usług swojej aplikacji. Kolejnym krokiem jest użycie docker-compose up, które uruchomi rozproszony zestaw kontenerów z aplikacją.

Orkiestracja kontenerów

Duże organizacje konteneryzują swoje aplikacje i przenoszą je do chmury, rośnie zapotrzebowanie na rozwiązania do orkiestracji kontenerów.

Kubernetes

Platforma typu open source, która obsługuje automatyzację wdrażania, skalowania i zarządzania usługami kontenerowymi. Kubernetes pierwotnie opracowany przez Google i utrzymywany przez Cloud Native Computing Foundation.
Wdrożenie Kubernetes daje nam klaster. Klaster Kubernetes składa się z zestawu maszyn roboczych, zwanych węzłami (nodes), które uruchamiają aplikacje w kontenerach. Każdy klaster ma co najmniej jeden węzeł roboczy. Węzeł jest zarządzany przez płaszczyznę kontroli i zawiera usługi niezbędne do uruchamiania podów. Pod jest logicznym hostem dla kontenera. Węzły procesu roboczego obsługują pody, które są składnikami obciążenia aplikacji. Węzeł kontrolny (master) zarządza węzłami roboczymi i podami w klastrze. Płaszczyzny i węzły sterowania mogą być maszynami fizycznymi lub wirtualnymi.


Docker-swarm

W trybie Docker-swarm możemy zdefiniować pożądany stan usługi, a Docker utrzyma ten stan. Docker Enterprise Edition zintegrował Kubernetes i Swarm. Zapewnia teraz elastyczność w wyborze silnika orkiestracji. Interfejs CLI silnika platformy Docker służy do tworzenia roju(swarm) silników platformy Docker, w których można wdrażać usługi aplikacji.


Minikube

Umożliwia korzystanie z Kubernetes na komputerze lokalnym i korzystanie z jednowęzłowego klastra Kubernetes na komputerze.


Rancher

Rancher to platforma typu open source, która wykorzystuje orkiestrację kontenerów znaną jako cattle (w wolnym tłumaczeniu bydło, tak dla niepoznaki). Pozwala na wykorzystanie usług orkiestracji, takich jak Kubernetes, Swarm, Mesos. Dostarcza oprogramowanie wymagane do zarządzania kontenerami poprzez GUI, dzięki czemu organizacje nie muszą budować od podstaw platform usług kontenerowych przy użyciu odrębnego zestawu technologii open source. Rancher umożliwia zarządzanie klastrami Kubernetes działającymi na określonych przez klienta dostawcach.

AWS EKS

W pełni zarządzana usługa Kubernetes firmy Amazon.


AKS

W pełni zarządzana usługa Kubernetes firmy Microsoft Azure. Azure Container Instance (ACI) to podstawowa usługa aranżacji kontenerów udostępniana przez Microsoft Azure. Sieć szkieletowa usług Azure to koordynator kontenerów typu open source udostępniany przez platformę Microsoft Azure.


Marathon

Marathon to platforma do uruchamiania kontenerów na dużą skalę na Apache Mesos.


Nomad

Koordynator kontenerów i obciążeń dostarczany przez HashiCorp.

Automatyzacja IT

Jenkins

Darmowy, niezależny od platformy serwer automatyzacji typu open source. Jenkins oferuje kilka wtyczek wspierających budowanie, wdrażanie i automatyzację dowolnego projektu. Jest to samodzielny program oparty na Javie. Obsługuje Windows, Mac i inne systemy operacyjne typu UNIX. Jenkins można zainstalować za pomocą natywnych pakietów systemowych, platformy Docker, a nawet uruchomić samodzielnie na dowolnym komputerze z zainstalowanym środowiskiem Java Runtime Environment (JRE).


Chef

Platforma do automatyzacji konfiguracji infrastruktury. Zapewnia, że każdy system będzie poprawnie i spójnie skonfigurowany. Na tej platformie infrastruktura jest definiowana jako kod. Upewnia się, że polityka konfiguracyjna jest elastyczna, wersjonowana, testowalna i czytelna dla człowieka. Chef to płatna platforma kontraktowa.


Puppet

Może łączyć dostawców chmury, narzędzia DevOps i inne interfejsy API. Zgodnie z sygnałami z istniejących narzędzi DevOps, wyzwala przepływ pracy, aby organizować akcje w usługach podrzędnych. Pozwoli ci dostosować i rozszerzyć przepływy pracy poprzez konfigurację opartą na YAML. Posiada bibliotekę integracyjną, która ułatwia dodawanie kroków. Dzięki Puppet Enterprise możesz dostarczać i zarządzać dowolną chmurą, infrastrukturą lub usługą. Puppet Enterprise podobnie do Chef jest rozwiązaniem płatnym. Istnieje również darmowa wersja czyli Open Source Puppet.


Ansible

Narzędzie do automatyzacji IT typu open source firmy RedHat. Ansible może konfigurować systemy, wdrażać oprogramowanie i koordynować bardziej zaawansowane zadania IT, takie jak ciągłe wdrażanie (continuous deployment). Ansible wykorzystuje podręczniki(playbooks) do zarządzania konfiguracją i system wdrażania na wielu maszynach.


Terraform

Infrastruktura typu open source jako narzędzie oprogramowania kodowego firmy Hashi Corp. Terraform to narzędzie do budowania, zmian i zarządzania infrastrukturą. Terraform koduje interfejsy API chmury w deklaratywne pliki konfiguracyjne. Za pomocą Terraform można zarządzać środowiskami z językiem konfiguracji o nazwie HashiCorp Configuration Language (HCL) na potrzeby zautomatyzowanych wdrożeń czytelnych dla człowieka.

Praca zespołowa

Jira

Narzędzie opracowane, aby pomóc zespołom w zarządzaniu projektami, śledzeniu błędów i śledzeniu problemów. Mówiąc prościej, jest to narzędzie do śledzenia kroków w trakcie budowy projektów. Jira jest szeroko stosowana przez duże firmy w tworzeniu oprogramowania i testowaniu oprogramowania. Jest to licencjonowany produkt stworzony przez australijską firmę Atlassian, wydany po raz pierwszy w 2002 roku, popularna i darmowa wersja dostępna w ograniczonym zakresie. Oprogramowanie Jira jest używane przez zespoły pracujace w metodyce Agile, zaprojektowane z myślą o metodologiach takich jak Scrum i Kanban. Jira jest również szeroko stosowana przez organizacje finansowe, handel detaliczny, twórców oprogramowania, motoryzację, organizacje non-profit i rządy.

Slack

Platforma komunikacji biznesowej opracowana przez Slack Technologies. Slack oferuje wiele funkcji w stylu IRC, w tym stałe czaty zorganizowane według tematów, prywatne grupy, bezpośrednie wiadomości utrzymujące pliki w jednym miejscu.


Monday.com

Narzędzie do zarządzania projektami używane do współpracy projektowej, śledzenia procesów i komunikacji.


Google workspace

Platforma produktywności Google oparta na aplikacjach. W jej skład wchodzą wiadomości, kalendarz, udostępnianie plików, czat, spotkania wideo, narzędzia do organizacji zespołu zebrane i oferowane bezpłatnie przez Google wszystkim użytkownikom.

Monitoring i wizualizacja

Datalog

Narzędzie do monitorowania aplikacji w chmurze. Zapewnia szczegółowe metryki dla wszystkich aplikacji, serwerów i sieci w chmurze. Można go łatwo zintegrować z innymi narzędziami automatyzacji, takimi jak Ansible, Chef, Puppet itp. Datalog jest płatną usługą hosta.


Prometheus

Darmowa aplikacja służąca do monitorowania zdarzeń i alarmowania. Prometheus pobiera metryki (klucz/wartość) i przechowuje dane w postaci szeregów czasowych, umożliwiając użytkownikom wysyłanie zapytań i alertów w czasie rzeczywistym. Komunikuje się z celami w określonych odstępach czasu, aby zbierać metryki, agregować dane, wyświetlać dane, a nawet ostrzegać w przypadku osiągnięcia pewnych progów.

Grafana

Oprogramowanie do wizualizacji i analizy typu open source. Pozwala wyszukiwać, wizualizować, ostrzegać i eksplorować metryki bez względu na to, gdzie są przechowywane. Krótko mówiąc, zapewnia narzędzia do przekształcania danych z bazy danych szeregów czasowych (TSDB) w piękne wykresy i wizualizacje. Pomaga śledzić zachowanie użytkowników, zachowanie aplikacji oraz częstotliwość błędów pojawiających się w środowisku produkcyjnym lub testowym, rodzaj pojawiających się błędów i scenariusze kontekstowe, dostarczając względne dane. Grafana Cloud to wysoce dostępna, szybka, w pełni zarządzana platforma metryczna OpenSaaS obsługiwana przez Grafana Labs. Wersja Enterprise to komercyjna edycja Grafany, która zawiera dodatkowe funkcje, których nie ma w wersji open source.


Logi

Skalowalny w poziomie, wysoce dostępny oraz wielodostępny system agregacji dzienników inspirowany projektem Prometheus. Został zaprojektowany tak, aby był wydajny i łatwy w obsłudze. W przeciwieństwie do innych systemów rejestrowania nie indeksuje zawartości dzienników, ale raczej zestaw etykiet dla każdego strumienia dziennika.

Podsumowanie

Jak widzisz, narzędzi do metodologii DevOps jest mnóstwo. Często w ofertach pracy możesz znaleźć całą listę tego typu narzędzi, jednak w większości przypadków wystarczy znać jedno najpopularniejsze rozwiązane z każdej grupy. Oczywiście im więcej im lepsza szansa na wejście do organizacji. Oczywiście w nie można zapominać o pewnym zakresie wiedzy z zakresu programowania: Python, C#, Java oraz wiedza z zakresu konfiguracji środowisk opartych o systemy operacyjne Microsoft oraz GNU/Linux.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT