Zum Hauptinhalt springen

Wartungsprozess

Dieser Wartungsprozess beschreibt die Verfahren und Richtlinien, um die Zuverlässigkeit, Sicherheit und Performance der SaaS-Lösung Bubble Chat sicherzustellen.

Verantwortlichkeiten DevOps-Team

  • Entwicklung und Pflege der Bubble Chat-Module.
  • Behebung von Fehlern und Einspielen von Updates.
  • Verwaltung der Build- und Deployment-Pipelines.
  • Überwachung der Dienste und Infrastruktur.
  • Regelmässige Sicherheitsüberprüfungen (z. B. Snyk).
  • Implementierung von Schutzmassnahmen und Sicherheitsupdates.

Infrastruktur und Code-Verwaltung

Monorepo und Git-Repositories

  • Bubble Chat-Module:
    • Werden in einem Monorepo in Bitbucket verwaltet.
    • Versionen der Module werden über semantisches Versionieren gekennzeichnet (z. B. v1.2.3).
  • Chatbots:
    • Jeder Chatbot hat ein eigenes Git-Repository in Bitbucket.
    • Das Chatbot-Repository definiert, welche Modulversionen verwendet werden.

Build- und Deployment-Pipeline

Jede Änderung im Chatbot-Repository löst eine Bitbucket-Pipeline aus, die:

  1. Den Code baut.
  2. Tests ausführt (Unit- und Integrationstests).
  3. Die neue Version des Chatbots ohne Unterbrechung für die Nutzer in Kubernetes bereitstellt.

Automatisierte Updates

  • Ein Script ermöglicht das automatische Aktualisieren aller Chatbots auf die neuesten Versionen der Bubble Chat-Module.
  • Updates werden bei Verfügbarkeit neuer Funktionen oder Korrekturen durchgeführt.
  • Es können mehrmals täglich Updates erfolgen.

Regelmässige Wartung

Tägliche Aufgaben

  • Überwachung der Dienste mit Uptime Robot:
    • Sicherstellen einer Verfügbarkeit von mindestens 99,9 %.
  • Analyse der Logs in Papertrail:
    • Automatische Weiterleitung von Fehlern an einen dedizierten Slack-Channel.
    • Sofortige Reaktion auf kritische Fehler.

Wöchentliche Aufgaben

  • Bibliotheken und Abhängigkeiten:
    • Mindestens einmal wöchentlich überprüfen und aktualisieren.
    • Verwendung von Tools wie Snyk zum Identifizieren von Schwachstellen.
  • Tests:
    • Sicherstellen, dass alle automatisierten Tests erfolgreich durchlaufen werden.

Monatliche Aufgaben

  • Überprüfung der Kubernetes-Infrastruktur:
    • Optimierung der Ressourcennutzung.
    • Testen von Skalierungsfähigkeit und Failover-Mechanismen.
  • Review des Deployment-Scripts:
    • Sicherstellen, dass Updates effizient und fehlerfrei ausgeführt werden.

Sicherheitsüberprüfungen

Regelmässige Scans

  • Snyk:
    • Identifizierung und Behebung von Schwachstellen im Code.
    • Automatische Benachrichtigungen bei kritischen Sicherheitsproblemen.
  • Abhängigkeiten:
    • Alle genutzten Bibliotheken werden mindestens wöchentlich auf Sicherheitsupdates geprüft.

Incident Response

  • Kritische Sicherheitsvorfälle werden sofort an das Team eskaliert.
  • Einspielen von Patches oder Workarounds innerhalb eines Arbeitstages.

Kommunikationsprozess

Interne Kommunikation

  • Slack-Channel:
    • Logs und Fehler werden automatisiert in einen Slack-Channel gepostet.
    • Teammitglieder erhalten Benachrichtigungen bei kritischen Problemen.
  • Trello:
    • Alle Funktionen und Bugfixes werden in Trello dokumentiert.

Kundenkommunikation

  • Geplante Wartungsarbeiten:
    • Kritische Wartungsarbeiten, bei denen mit einem Unterbruch des Systems gerechnet wird, werden mindestens 48 Stunden vorher angekündigt.
  • Statusseite:
    • Bereitstellung einer Statusseite mit Live-Updates.
  • Post-Mortem-Berichte:
    • Nach grösseren Vorfällen werden Berichte an Kunden gesendet, die Ursache und Lösung erklären.