Ewolucja zarządzania konfiguracją: IaC vs. GitOps

Opublikowany: 2022-05-23

Spis treści

Ewolucja zarządzania konfiguracją

Niewłaściwe struktury są głównym powodem incydentów bezpieczeństwa w środowiskach Kubernetes lub innych środowiskach kontenerowych. Bez odpowiedniej konfiguracji aplikacje mogą napotkać problemy, od niezgodności i konfliktów po usterki wydajności, luki w zabezpieczeniach i awarie operacyjne. Zarządzanie konfiguracją jest ważną częścią utrzymania pożądanego, stabilnego stanu komputerów w cyklu życia oprogramowania.

Historia zarządzania konfiguracją

W tamtych czasach, jeśli chodzi o zarządzanie zmianami w zasobach IT, zespół IT skupiał się przede wszystkim na poziomie serwera, aby sprawdzić, czy jakiekolwiek zmiany w sprzęcie spowodują problemy w pozostałej warstwie. Każdy serwer został skonfigurowany ręcznie z doskonałą starannością i czasem wolnym. Maszyny wirtualne wniosły do ​​tego procesu większą elastyczność i wydajność.

Infrastructure Code (IaC) to duży krok w zarządzaniu konfiguracją, w którym cały sprzęt jest zdefiniowany jako kod. Narzędzia IaC, takie jak platformy chmurowe, Chef, Puppet i Ansible, odegrały kluczową rolę w uproszczeniu i skalowaniu zarządzania infrastrukturą. Pomogli przyspieszyć udostępnianie infrastruktury i obniżyć koszty, poprawiając wykorzystanie zasobów.

Na przestrzeni lat platformy i kontenery oparte na chmurze zrewolucjonizowały sposób udostępniania infrastruktury. Wraz z przyjęciem dużej chmury i przekształceniem Git w obecny system kontroli wersji, GitOps stał się najnowszym zwrotem w ewolucji zarządzania architekturą. GitOps wykracza daleko poza IaC, jeśli chodzi o kodowanie wszystkiego. Tutaj „Wszystko” obejmuje infrastrukturę, sieć, dane i aplikacje.

Kubernetes i deklaratywne podejście do infrastruktury

Podobnie jak w przypadku programowania, istnieją dwa podejścia do zapewniania infrastruktury – powiadamianie i obowiązkowe.

Przekonujące podejście wymaga określenia odpowiednich kroków, które należy podjąć w celu dostarczenia lub zmodyfikowania infrastruktury. Zapewnia doświadczenie w korzystaniu z infrastruktury. Zapewnia doświadczenie w korzystaniu z infrastruktury. Z drugiej strony podejście powiadamiania jest bardziej odpowiednie dla nowoczesnego podejścia natywnego dla chmury zdefiniowanego przez Kubernetes. Wystarczy zdefiniować pożądany stan systemu i pozostawić jego funkcjonalność witrynie takiej jak Kubernetes. Infrastruktura Kubernetes ułatwia zarówno konfigurację automatyzacji, jak i powiadomień.

Przejście od DevOps do GitOps

GitOps, opracowany w 2017 roku, to nowoczesna platforma funkcjonalna do zarządzania klastrami Kubernetes i dostarczania aplikacji skoncentrowanych na Git. Pozyskuje najlepsze elementy DevOps, takie jak narzędzie CI / CD, współpraca między Dev i Ops, automatyzacja procesów i wykorzystuje je w potoku dostarczania oprogramowania, wykorzystując Git jako źródło autentyczności.

DevOps zapewnił współpracę między zespołami programistycznymi i operacyjnymi oraz spowodował zmianę kulturową w dziedzinie technologii informatycznych. Jednak mniej niż oczekiwano, firmy przyjęły cechy ciągłej integracji i ciągłej dystrybucji, ale nie przeszły w kierunku ciągłego wdrażania.

To tutaj GitOps przenosi rzeczy na wyższy poziom. Dzięki podejściu GitOps zespoły nie tylko definiują, ale także zarządzają sortowaniem i modyfikacją swojej infrastruktury z poziomu repozytorium Git. Wprowadzanie zmian w infrastrukturze jest teraz tak proste, jak tworzenie żądania przeciągania — możesz wyłapać literówki, dokonywać regularnych przeglądów lub w razie potrzeby zmienić przyrzeczenie. Korzystając z usługi Git, programiści mogą teraz generować kod, a inżynierowie systemów operacyjnych mogą automatycznie używać tego kodu w środowisku produkcyjnym.

Używanie Flux & Helm do zarządzania konfiguracją za pomocą GitOps

Kubernetes umożliwia integrację różnych narzędzi do automatyzacji planowania, sortowania i monitorowania kontenerów. Jednym z takich narzędzi jest Helm, który stał się bardzo popularny w ekosystemie GitOps.

Helm to potężny menedżer pakietów dla Kubernetes, który ułatwia definiowanie, instalację i wdrażanie najbardziej powtarzalnych aplikacji i usług używanych w różnych sytuacjach. Wykresy Helm zwiększają wartość środowiska ciągłej dystrybucji, zapewniając uporządkowany projekt opakowania do zarządzania wieloma plikami YAML ze zduplikowanymi i ustalonymi wartościami.

Zarządzanie konfiguracją: IaC vs. GitOps

Krótko mówiąc, Helm pomaga uprościć zadania podczas mierzenia złożonych wyników i zarządzania nimi. Musi być jednak połączony z podstawowymi repozytoriami Git zdefiniowanymi przez specyfikacje klastra i aplikacji K8s. Flux to ułatwia.

Flux to kolekcja agentów GitOps o otwartym kodzie źródłowym, które działają jako pomost między repozytoriami Git i klastrami Kubernetes. Helm chart to narzędzie do automatyzacji sortowania powiadomień, które utrzymuje spójność kodu, automatyzując dane wyjściowe po wprowadzeniu zmian w kodzie. Flux synchronizuje te zmiany z klastrów Git do Kubernetes.

Odbywa się to za pomocą niestandardowych zasobów o nazwie HelmRelease, które wyzwalają operatora steru i synchronizują zmiany w kodzie wykresu. Nie wspominając o tym, że Flux jest wyposażony w rozbudowane funkcje wykrywania dryfu, a także inne interesujące funkcje.

Przez długi czas zarządzanie architekturą dotyczyło sprzętu i infrastruktury, ale od tego czasu przebyliśmy długą drogę. Wraz z wprowadzeniem GitOps i narzędzi, które to ułatwiają, programiści i inżynierowie platform mają wiele możliwości zaprojektowania żądanej infrastruktury – w sposób zapowiedzi.

Weave GitOps wykorzystuje Flux i Helm oraz umożliwia efektywne przepływy pracy zarządzania konfiguracją z repozytoriów jit na wszystkie sposoby, w jakie Kubernetes tworzy klastry. Jedną z cech wyróżniających Weave GitOps jest możliwość dostarczania niezawodnych aplikacji. Dodaje niezawodne zasady dostarczania narzędzi jako kod do GitOps, bezpieczeństwo i zgodność, regresję aplikacji i wdrażanie standardów kodowania od źródła do produkcji. Jest to połączenie bezpiecznych potoków GitOps i ciągłych testów bezpieczeństwa za pomocą zakodowanych zasad, które umożliwiają stosowanie najlepszych praktyk w zakresie bezpieczeństwa i wysokich standardów bezpieczeństwa w całym cyklu życia oprogramowania. GitOps to także sposób na zarządzanie konfiguracją dla nowoczesnych systemów natywnych dla chmury, a Weave GitOps sprawia, że ​​takie podejście jest nie tylko proste, ale także bezpieczne.

jak-utworzyc-konto-gmail-krok-po-przewodniku

web-crawling-a-web-scraping-jaka-różnica?