: Baris Cubukcuoglu, Josia Scheytt, Johannes Schnatterer
: GitOps Grundlagen und Best Practices
: dpunkt
: 9783988901231
: 1
: CHF 26,50
:
: Informatik
: German
: 373
: Wasserzeichen
: PC/MAC/eReader/Tablet
: ePUB
GitOps optimal einsetzen - Praktischer Einstieg für Entwicklungs- und Plattformteams - tiefgründige Fokussierung auf GitOps (ohne Grundlagen für K8s oder CI/CD) - Klarer Einblick in die Konsequenzen von GitOps und den Unterschied im Entwicklungsalltag - Umfassende Hilfestellung zu relevanten Herausforderungen wie Secrets, Repo-Strukturen und Asynchronität GitOps ist die aktuell vielversprechendste Methodik, um Continuous Deployment auf Cloud-native Art und Weise umzusetzen. Im Gegensatz zu punktuell getriggerten Deployments werden deklarative Beschreibungen der Softwaresysteme genutzt, um diese kontinuierlich im Hintergrund anzuwenden. Mit diesem Buch kannst du schnell und einfach in GitOps einsteigen und erfährst seine Vorteile für den Entwicklungsalltag. Nicht nur vergleichen wir hierfür die Tools Argo CD und Flux, sondern zeigen auch konkrete Implementierungen von GitOps mit und ohne Kubernetes, die du anhand öffentlicher Repositories direkt nachstellen kannst. Überdies gehen wir ausführlich auf fortgeschrittene Themen wie Secrets Management, Repo-Strukturen, Asynchronität und Alerting ein, um dich für den Ein- bzw. Umstieg optimal vorzubereiten. Unter https://gitops-book.dev findest du weitere Informationen zum Thema.

Baris Cubukcuoglu ist Cloud Solution Engineer bei Mimacom und verfügt über mehr als 10 Jahre Erfahrung in der Entwicklung und Architektur von Anwendungen. Seine Passion ist es, Dinge umzusetzen, die einen Mehrwert schaffen. Dabei berät und unterstützt er Kunden bei Cloud- und Infrastruktur-Technologien, Kubernetes sowie bei der automatisierten Auslieferung von Software mit CI/CD. Josia Scheytt befähigt Entwicklungsteams dazu, zügig und mit Zuversicht nach Produktion zu deployen. Mit Fokus auf Public Cloud, Kubernetes und CI hilft er verschiedenen Kunden in seiner Tätigkeit als Cloud Automation Engineer bei Mimacom (www.mimacom.com). Johannes Schnatterer war bereits jahrelang in der Softwareentwicklung tätig bevor sein Fokus mit dem Aufkommen der Containertechnologie in Richtung Infra-Themen zu wandern begann. Als Technical Lead der Infra- und Consulting Teams bei Cloudogu entwickelt und betreibt er eine Internal Developer Platform auf Basis von Kubernetes und GitOps und gibt dabei Gelerntes als Consultant, Trainer und Autor weiter.

1Was ist GitOps?


Hand aufs Herz: Wo schaust duzuerst nach, wenn du wissen möchtest, welche Anwendungen konkret in einem Environment deployt sind? Vielleicht findest du dich in einer der folgenden Antworten wieder:

  • »Im Cluster selbst – wir deployen nur manuell … «
  • »In den letzten Deploy-Pipelines vom CI-Server.«
  • »In einem Git-Repo.«

GitOps kann dich in die Lage versetzen, die letzte der drei Antworten zu geben – und zwar mit sehr großer Zuversicht. Diese psychologische Sicherheit ist nur eines der Resultate von einem Deployment-Workflow auf GitOps-Basis.

In diesem Kapitel stellen wir GitOps ganz grundlegend vor. Dabei starten wir mit einer vagen Gegenüberstellung, um eine grundsätzliche Vorstellung von GitOps zu haben. Dann wollen wir die Hintergründe und Herausforderungen verstehen, aus denen GitOps entstand. Anschließend wenden wir uns den vier Prinzipien von OpenGitOps zu, die GitOps im Kern definieren.

1.1CIOps vs. GitOps


Begriffe und Synonyme

  • »GitOps-Operator« und »GitOps-Controller« werden fast synonym eingesetzt. Darüber hinaus gibt es noch den Begriff »GitOps-Agent« im Sinne von GitOps-Prinzip 4 (sieheAbschnitt 1.3.4 aufSeite 20). In diesem Buch verwenden wir aus Gründen der Einheitlichkeit den Begriff »GitOps-Operator«, auch wenn der von Kubernetes abstrahierte Begriff »GitOps-Agent« an vielen Stellen passender wäre. In der Praxis wird »GitOps-Operator« unserer Erfahrung nach auch am häufigsten verwendet. Allerdings wird auch im Kontext von GitOps gelegentlich der Begriff »Controller« benutzt. Unser Verständnis ist, dass »Controller« der allgemeinere Begriff ist. Unter »Operator« verstehen wir einen speziellen »Controller« samt seiner Erweiterungen der Kubernetes-API (CRDs). GitOps-Operatoren wie Flux und ArgoCD bieten umfangreiche CRDs an, insofern wirkt dieser Begriff für uns am besten passend. Sowohl Argo CD als auch Flux bestehen aus mehreren Komponenten, die teilweise als »Controller« bezeichnet werden. Unter GitOps-Operator verstehen wir in diesem Kontext die Gesamtheit dieser »Controllers«. Flux ist also ein GitOps-Operator, der aus Kustomize-Controller, Helm-Controller, Notification-Controller etc. besteht.
  • Mit »Config« meinen wir beispielsweise Kubernetes-Ressourcen. Manche verwenden auch den Begriff »Infrastructure as Code« synonym. Andere sehen zwischen Config und Infrastruktur (beispielsweise virtuelle Maschinen) klare Unterschiede.

CIOps: Der CI-Server deployt in den Cluster.

Bei einer »klassisch« umgesetzten Pipeline für Continuous Deploym