Effiziente Software-Bereitstellung

Software in weniger als fünf Minuten bereitstellen

Stell dir vor, Software-Updates könnten in weniger als fünf Minuten bereitgestellt werden – mit minimalem Aufwand und maximaler Zuverlässigkeit. Genau das haben wir erreicht, und wir möchten unsere Reise zu einer effizienteren Software-Bereitstellung mit dir teilen.

Durch ein manuelles Deployment geht viel Zeit verloren

Unsere Firmenwebsite faktly.ch ist ein zentraler Bestandteil unseres Unternehmensauftritts. Doch jedes Mal, wenn wir Änderungen vornehmen oder neue Funktionen hinzufügen wollen, stehen wir vor demselben Problem. Ein manuelles Deployment auf einem eigens dafür eingerichteten Server. Dieser Prozess war zeitaufwändig und fehleranfällig, dauerte zwischen 10 und 30 Minuten und band wertvolle Ressourcen, die wir besser hätten nutzen können.

Ein neuer Weg muss her

Wir erkannten, dass dieser Ansatz nicht nachhaltig war. In einer Zeit, in der Geschwindigkeit und Effizienz entscheidend sind, konnten wir es uns nicht leisten, so viel Zeit mit repetitiven Aufgaben zu verbringen. Also beschlossen wir, unseren Deployment-Prozess grundlegend zu überdenken.

Die Suche nach einer Lösung

Unser Ziel war klar. Wir wollten einen automatisierten, zuverlässigen und skalierbaren Deployment-Prozess etablieren. Dazu begannen wir, uns mit modernen Technologien und Methoden zu beschäftigen, die in der Softwareentwicklung und -bereitstellung als Best Practices gelten.

Unsere Reise zur effizienten Bereitstellung umfasste mehrere Schritte

1. Aufbau eines Kubernetes-Clusters mit Terraform (Infrastructure as Code)

  • Mit Terraform konnten wir unsere Infrastruktur als Code definieren und somit konsistent und reproduzierbar aufbauen.
  • Dadurch waren wir in der Lage, unsere Umgebung schnell zu skalieren und Änderungen einfach zu verwalten.

2. Konfigurationsmanagement mit Ansible und Installation von Helm Charts

  • Ansible ermöglichte es uns, die Konfiguration unserer Server zu automatisieren.
  • Wir installierten essenzielle Komponenten wie Cert-Manager, NGINX Ingress und ArgoCD mithilfe von Helm Charts.
  • Letsencrypt SSL-Zertifikate werden dank Cert-Manager zum Kinderspiel

3. Einrichtung eines Deployment-Repositories mit Helm Charts

  • Wir erstellten ein separates Repository, das unsere Kubernetes-Manifestdateien in Form eines Helm Charts enthält.
  • Dieses Repository dient als Single Source of Truth für unsere Deployments.

4. Automatisiertes Deployment mit ArgoCD

  • ArgoCD überwacht unser Manifest-Repository und aktualisiert automatisch unseren Kubernetes-Cluster, sobald Änderungen festgestellt werden.
  • Dies implementiert das GitOps-Prinzip, bei dem Git als einzige Quelle für den aktuellen Systemzustand dient.

5. Integration von GitLab CI/CD

  • Mit wenigen Git-Befehlen können wir nun ein Deployment auslösen.
  • Unsere GitLab CI/CD-Pipeline baut das Docker-Image und aktualisiert die Version im Manifest-Repository.
  • ArgoCD erkennt die Änderung und führt das Deployment automatisch durch.

Das Ergebnis

Durch diese Automatisierung haben wir unseren Deployment-Aufwand von 10 bis 30 Minuten auf weniger als 5 Minute reduziert.

Dazu führen wir lediglich folgende Befehle aus:

git last-tag
NEW_VERSION=1.1.1
git switch develop
git flow release start $NEW_VERSION
git push
git flow release finish $NEW_VERSION
git switch develop
git push --tags

Selbstverständlich findet zwischen Release start und finish die Entwicklung statt

Unsere Erfahrung zeigt, wie entscheidend Automatisierung und die richtigen Tools für die moderne Softwareentwicklung sind. Durch die Optimierung unseres Deployment-Prozesses können wir schneller auf Marktanforderungen reagieren, die Qualität unserer Software erhöhen und unsere Ressourcen effizienter nutzen.

Handlungsempfehlung

Wenn du ähnliche Herausforderungen hast, könnten diese Schritte auch für dich hilfreich sein:

  • Identifiziere manuelle und zeitaufwändige Aufgaben in deinem Deployment-Prozess
  • Tools wie Terraform ermöglichen eine konsistente und reproduzierbare Infrastruktur-Verwaltung
  • Mit Ansible oder ähnlichen Tools (Salt, Chef, Puppet) kannst du die Einrichtung von Servern und Diensten automatisieren
  • ArgoCD und GitOps-Prinzipien erleichtern das automatische Deployment von Änderungen
  • Automatisiere den Build- und Testprozess mit Tools wie GitLab CI/CD, um schnelle und zuverlässige Releases zu gewährleisten

Hol dir Unterstützung

Möchtest du deine Software-Bereitstellung ebenfalls optimieren und von unseren Erfahrungen profitieren? Kontaktiere uns für eine unverbindliche Beratung. Gemeinsam können wir massgeschneiderte Lösungen entwickeln, die deinen spezifischen Anforderungen entsprechen.

Die Reise zur effizienten Software-Bereitstellung hat uns gezeigt, wie viel Potenzial in der Automatisierung steckt. Indem wir unseren Prozess revolutioniert haben, können wir uns jetzt auf das konzentrieren, was wirklich zählt:

Innovative Lösungen für unsere Kunden zu entwickeln

Zum Newsletter anmelden

Und keine Neuigkeiten mehr verpassen

Wie sicher ist dein Unternehmen?

Beantworte einfach ein paar Fragen und finde direkt heraus, wie sicher dein Unternehmen wirklich ist.

Weitere Beiträge

image
10 Mar 2025

Penetration Testing - Belastungsprobe für IT-Systeme

Wie gut ist dein Unternehmen gegen Cyberangriffe geschützt? Finde es heraus - mit einem Pen Test! Was das ist, erfährst du hier!

image
20 Feb 2025

Vergiss 123456! Mehr Passwortsicherheit für dein Unternehmen

Starke Passwörter machen Hackern das Leben schwer(er). Erfahre hier, was eine sichere Passwortverwaltung im Unternehmen bedeutet.

image
15 Jan 2025

Cyberangriffe auf KMU - Unternehmen in Gefahr

Die meisten Hackerangriffe bedrohen KMU - warum das so ist und wie du dein Unternehmen schützen kannst, erfährst du hier!