GitOps

GitOps

Praca w oparciu o metodologię GitOps staje się powoli standardem w branży IT. Pełen dostęp do historii zmian, automatyzacja procesów, czy możliwość znacznego przyspieszenia kolejnych wdrożeń, to jej podstawowe atuty. Bazując na naszych wieloletnich doświadczeniach i eksperckiej wiedzy, zbudowaliśmy ofertę dedykowaną wdrożeniom i opiece nad infrastrukturami zbudowanymi w oparciu o podejście GitOps. Na początek jednak, kilka słów o tym czym w ogóle jest GitOps i czy rzeczywiście może być najlepszym rozwiązaniem, dla Twojego biznesu.

GitOps

 

Czym jest GitOps?

GitOps to platforma operacyjna, wykorzystująca najlepsze praktyki DevOps stosowane do budowania aplikacji i automatyzacji infrastruktury. Można do nich zaliczyć kontrolę wersji, współpracę czy narzędzia CI/CD.  Mimo, że cykl rozwoju oprogramowania został już niemal w pełni zautomatyzowany to budowa infrastruktury, nadal pozostaje procesem realizowanym w dużej mierze ręczenie, przez wyspecjalizowane zespoły. Biorąc pod uwagę rosnące wymagania stawiane przed nowoczesnymi infrastrukturami, coraz ważniejsza staje się umiejętność wdrażania automatyzacji również dla procesów zachodzących przy rozwoju infrastruktury. Nowoczesna infrastruktura musi bowiem być elastyczna i zdolna do efektywnego zarządzania zasobami chmurowymi, niezbędnymi do realizowania ciągłych wdrożeń.

Nowoczesne aplikacje budowane są z myślą o szybkości działania i skalowaniu. Organizacje charakteryzujące się dojrzałą kulturą DevOps, potrafią wdrażać kod w ramach infrastruktury produkcyjnej setki razy dziennie. Osiągają to dzięki wykorzystaniu najlepszych praktyk programistycznych, takich jak przegląd kodu czy potoki CI/CD, które automatyzują testy i wdrożenia.

GitOps to metodologia służąca do automatyzacji procesu udostępniania infrastruktury. Podobnie jak zespoły programistyczne wykorzystują kod źródłowy aplikacji, zespoły operacyjne, pracujące w oparciu o metodologię GitOps, używają plików konfiguracyjnych, przechowywanych jako kod (IaC). Pliki konfiguracyjne GitOps, generują to samo środowisko infrastruktury za każdym razem, gdy jest ono wdrażane.

 

GitOps w praktyce

Przepływ pracy GitOps, pomaga zespołom zarządzać infrastrukturą IT, poprzez procesy, które są już przez nie wykorzystywane podczas tworzenia aplikacji. GitOps, wymaga trzech podstawowych komponentów.

IaC

GitOps wykorzystuje repozytorium Git jako pojedynczego źródła prawdy dla definicji infrastruktury. Git stanowi system kontroli wersji typu open source, który śledzi zamiany w zarządzaniu kodem, a repozytorium Git jest folder. git zapisany w projekcie, który śledzi wszystkie zmiany dokonane w plikach projektu w czasie. Infrastruktura jako kod (IaC) to praktyka przechowywania całej konfiguracji infrastruktury w postaci kodu. Rzeczywisty, pożądany stan, może, ale nie musi być przechowywany jako kod.

 

MRs

GitOps wykorzystuje żądania scalenia (Merge Request - MR) jako mechanizm zmiany dla wszystkich aktualizacji infrastruktury. MR to miejsce, w którym zespoły mogą współpracować za pośrednictwem recenzji i komentarzy. Jest to również przestrzeń, w której dochodzi do formalnych zatwierdzeń. Scalenie zostaje zatwierdzone do głównej gałęzi, stanowiąc jednocześnie dziennik kontroli.

 

CI/CD

GitOps automatyzuje aktualizacje infrastruktury za pomocą przepływu pracy Git z ciągłą integracją (CI) i ciągłym dostarczaniem (CD). Po scaleniu nowego kodu, potok CI/CD wprowadza zmianę w środowisku. Wszelkie zmiany konfiguracji (ręczne lub błędy) są zastępowane przez automatyzację GitOps, dzięki czemu środowisko zbiega się w stanie zdefiniowanym w Git. GitLab używa potoków CI/CD do zarządzania i implementacji automatyzacji GitOps. Możliwe jest jednak użycie innych form automatyzacji.

Konfiguracja środowiska jako repozytorium GitOps

W podejściu GitOps repozytorium kodu stanowi centralny element procesu wdrażania kodu. Zgodnie z dobrymi praktykami istnieją co najmniej dwa repozytoria: aplikacji i konfiguracji środowiska.

Repozytorium aplikacji zawiera kod źródłowy oraz opis procesu wdrożenia. Repozytorium konfiguracji środowiska zawiera z kolei opis wdrażania aktualnie żądanej infrastruktury. Opisuje konfiguracje aplikacji i usług infrastrukturalnych (broker wiadomości, siatka usług, narzędzie do monitorowania) które powinny działać w środowisku wdrożeniowym

 

Wyzwania

Wdrażanie zmian w organizacji nigdy nie jest łatwym procesem, a GitOps nie jest w tym wypadku wyjątkiem. Wdrożenie metodologii GitOps wymaga dyscypliny i zaangażowania w wykonywanie pracy w nowy sposób.

GitOps to proces podnoszący jakość współpracy zespołu, ale nie wszystkim przychodzi on w sposób naturalny. Proces zatwierdzania GitOps oznacza wprost, że programiści wprowadzają zamiany w kodzie, tworzą żądanie scalenia. Osoba zatwierdzająca scala zmiany, po czym następuje wdrożenie. Ten ciąg czynności wprowadza do infrastruktury nowy element, przez co dla inżynierów przyzwyczajonych do wprowadzania szybkich, ręcznych zmian może wydawać się czasochłonne

Ważne jest więc, żeby wszyscy członkowie zespołu stosowali się do nowych zasada. Pokusa edytowania czegoś bezpośrednio w produkcji lub wprowadzenia ręcznej zmiany, może być trudna do stłumienia, jednak dzięki konsekwencji wszystkich członków zespołu, GitOps będzie spełniał swoją funkcję.

 

Podsumowanie

Podobnie jak w przypadku wielu innych terminów technologicznych, GitOps nie jest dokładnie definiowany w ten sam sposób przez wszystkich w branży. Zasady wpisujące się w metodologię GitOps, można zastosować praktycznie do wszystkich rodzajów automatyzacji infrastruktury, w tym maszyn wirtualnych i kontenerów.

Zarządzanie infrastrukturą za pośrednictwem GitOps odbywa się w tym samym systemie kontroli wersji, co tworzenie aplikacji, umożliwia to zespołom większą współpracę w centralnej lokalizacji przy jednoczesnym korzystaniu z wbudowanych funkcji Git.

 

GitOps, a Hostersi

Ekspercka wiedza i doświadczenie we wdrażaniu i obsłudze infrastruktur opartych o metodologię GitOps sprawia, że jesteśmy w stanie udzielić wsparcia każdej firmie, niezależnie od poziomu zaawansowania czy skali działalności. Najważniejsze jest jednak to, że pomożemy również podjąć decyzję dotyczącą odpowiedniej dla danej organizacji metodologii pracy, dlatego przed rozpoczęciem współpracy przeprowadzimy szereg rozmów, dzięki którym wspólnie wybierzemy rozwiązania optymalne dla Twojego biznesu. Zapraszamy do kontaktu!

Case Studies
Referencje

Hostersi zrealizowali usługi konsultingowe z zakresu doboru odpowiedniej bazy danych w Amazon Web Services oraz pomyślnie przeprowadzili migrację bazy danych MySQL do Amazon Aurora. 

Tomasz Ślązok
CTO Landingi
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.