/images/devops-tools/dt-header.jpg

DevOps


Tools

Wir kennen die aktuellen Tools in- und auswendig. Mit diesem Wissen entwickeln wir auch unsere eigenen Werkzeuge.

DevOps, Cloud und Automatisierung sind unsere Spezialität.

    "Weniger Fehler durch mehr Automatisierung"

Daran glauben wir und arbeiten daher täglich mit DevOps-Tools wie Ansible, Terraform, Kustomize, Helm, Argo CD, Forgejo, Gitlab, GitHub, in den unterschiedlichsten Clouds (OpenShift, AWS, Hetzner, Azure, etc).

Mit diesen Tools lässt sich schon viel erreichen, aber wir sind noch nicht zufrieden mit dem Status Quo. Deshalb gibt es unsere Open Source Tools:

dda-devops-build

Es gibt viele Tools, die nicht wirklich nahtlos zusammenpassen.
Mit dda-devops-build lösen wir Herausforderungen wie:

  • Integration von Tools
  • Releases automatisieren
  • Sichere Credentials
/images/bottom-arrow.png

c4k-common

Ausufernde Helm-Charts oder Operator-Dependencies für die inzwischen schon Management-Software entsteht, haben sich längst etabliert im Umgang mit Kubernetes. Für Erleichterung sorgt Convention4Kubernetes (c4k):

  • Programmiersprache statt Templating
  • Convention over Configuration
  • Reliable-One-Shot-Deployments
/images/bottom-arrow.png

/images/devops-tools/dt-build-01.jpg

dda-devops-build

Integrierte Tools

Die folgenden Tools sind im dda-devops-build integriert:

  • Terraform: Um die grundlegende Infrastruktur zu erstellen.
  • Docker: Um Images zu erstellen, zu testen und in einem Repository abzulegen.
  • C4k: Um k8s-One-Shot-Deployments zu erzeugen - vergleichbar mit helm template.
  • Provs: Für die Installationen kleiner k3s Cluster, die wir mit provs provisionieren.
  • Gopass: Um Credentials (GPG gesichert und Git verteilt) sicher dem Buildprozess zuzuführen.
  • Cloud Provider: Hetzner, DigitalOcean, AWS
/images/devops-tools/dt-build-02.jpg

Credentials Management

Das sichere Verteilen, Verwalten und Einsetzen von Credentials ist schwierig. Wer meint, erst einmal einen CI/CD Prozess aufzubauen und im Nachhinein Credentials aus dem Pipeline-Code verbannen zu können, bereitet sich schlaflose Nächte und kommt oft zu keiner guten Lösung mehr. Wir haben uns daher dazu entschlossen, das Managen von Credentials von Anfang an mit zu berücksichtigen.

Unser Lieblingstool zum Credential Management für kleine bis mittelgroße Teams ist gopass. Die Passwörter liegen dabei in Git, sind per GPG verschlüsselt und außer Git werden keine weiteren Server benötigt.

/images/devops-tools/dt-build-03.jpg

Release Automatisierung

Unsere Releases lassen sich ganz einfach mit pyb patch|minor|major per Kommandozeile erstellen, wodurch alle Teammitglieder problemlos dazu in der Lage sind, ein Release zu erstellen. Durch die einfache Bedienung ist der Stresslevel beim Releasen gesunken, lokale Versionierung und CI getriebener Build sind nachhaltig integriert. Alle Lintings, Tests oder Renovate-Checks funktionieren lokal und in der CI-Pipeline. Dadurch ist die Qualität spürbar angestiegen.

https://repo.prod.meissa.de/meissa/dda-devops-build


/images/devops-tools/dt-c4k-01.jpg

Convention4Kubernetes

Programmiersprache statt Templating

In Templating-Ansätzen wie zum Beispiel Helm sind Selbstverständlichkeiten wie Modularisierung, Refactorings, Typisierung, Tests oder Input-Validierung meist kaum zu realisieren. Wir wollen diese Errungenschaften einer Programmiersprache nicht missen und nutzen zur Entwicklung von K8s-Resource-Generatoren die Programmiersprache Clojure. In c4k-common sammeln wir die Teile, die wir dabei immer wieder benötigen.

/images/devops-tools/dt-c4k-02.jpg

Convention over Configuration

Unsere K8s-Resource-Generatoren zu entwickeln, ist mit der hohen Wiederverwendbarkeit so einfach, dass wir Mandanten-spezifische Generatoren effizient erstellen können, die dann auch deren spezielle Conventions berücksichtigen. Dadurch benötigen wir nur minimalsten Input, was die Benutzung unserer Module extrem vereinfacht.

/images/devops-tools/dt-c4k-03.jpg

Reliable-One-Shot-Deployments

Wir verzichten auf Kubernetes Operatoren, deren Abhängigkeiten schon die ersten Dependency-Management-Tools entstehen lassen. Durch die Möglichkeit zur stabilen Programmierung gelingen uns auch große Deployments im One-Shot Verfahren, Gitops bleibt einfach.

https://repo.prod.meissa.de/meissa/c4k-common