DevOps narz─Ödzia, kt├│re musisz zna─ç

Print Friendly, PDF & Email

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.


Loki

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