Ewolucja zarządzania konfiguracją: IaC vs. GitOps
Opublikowany: 2022-05-23Spis 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?