Skip to main content

Kern-Orchestrierung

BambooDeploy.sh

Einstiegspunkt für alle Deployments, aufgerufen durch die CI/CD-Plattform. Aufgaben:

  • Parsen der Umgebungsparameter (Plattformziel, Version, Optionen)
  • Git-Repository-Synchronisation
  • Ansible Playbook-Aufruf mit korrektem Inventory und Vault-Anmeldedaten
  • Uptime-Monitoring Pause/Wiederaufnahme via API
  • Fehlerbehandlung und Deployment-Statusbericht

MetricsFormatAndSend.sh

Post-Deployment-Metriksammlungsskript (Python). Aufgaben:

  • Parsen der Deployment-Logs nach Phasendauern
  • Berechnung von Zeitmetriken pro Phase
  • Senden der Metriken an Graphite (Port 2003 via Netcat)
  • Ausführung von Windows-Testsuites via WinRM
  • Push von Deployment-Metriken an Grafana-Dashboards

Cloud-Provider API-Client

Python-Client, der die Cloud-Provider REST API kapselt. Operationen:

OperationBeschreibung
startVM per UUID einschalten
stopKontrolliertes Herunterfahren
cloneKopie einer bestehenden VM erstellen
snapshotZeitpunktbezogenen Snapshot erstellen
statusVM-Status abfragen (running, stopped, etc.)
listVMs mit Metadaten auflisten

Wird von Ansible Playbooks verwendet, um den VM-Lebenszyklus programmatisch während Deployments zu verwalten.


Ansible Roles (Auswahl)

Infrastruktur-Roles

RoleZweck
elasticsearchElasticsearch-Cluster-Deployment und -Konfiguration (Multi-Node-Cluster)
redisRedis-Instanz-Bereitstellung (mehrere Datenbanken pro Umgebung)
rabbitmqRabbitMQ Message Queue Cluster-Setup
haproxyLoad Balancer-Konfiguration mit SSL-Terminierung und Backend-Definitionen
keepalivedVRRP-basierte HA für HAProxy (Virtual IP Failover)
logstashLog-Verarbeitungs-Pipeline-Konfiguration
kibanaKibana-Dashboard-Deployment
nagios-nrpeNagios Remote Plugin Executor für Health Monitoring
postfixMail-Service-Konfiguration

Anwendungs-Roles

RoleZweck
applicationKern-Anwendungs-Deployment (Multi-Service)
cloudmanagerManagement-Konsolen-Deployment
servicesuiteService Suite: Dateifreigabe, Mail, Speicher, Asset-Management, Aufgabenverarbeitung, Datenextraktion
renderingRendering-Dienste: Bild-, Video-, Dokument-, Audio-Verarbeitung
tikaApache Tika für Dokumentinhaltextraktion (Solr-basiert)

Monitoring- & Logging-Roles

RoleZweck
filebeatAnwendungs-Log-Versand an ELK
metricbeatPerformance-Metrik-Sammlung
winlogbeatWindows Event Log-Versand
heartbeatUptime-Monitoring
graphite-powershellWindows-Metrik-Sammlung für Graphite

Plattform-Roles

RoleZweck
commonBasis-OS-Konfiguration, NTP, DNS, SELinux-Policies
domain-joinActive Directory-Domänenmitgliedschaft für Windows/Linux
sambaCIFS/SMB-Dateifreigabe
artifactoryMaven-Repository für Build-Artefakte
foremanOS-Bereitstellung und Inventarverwaltung

Snapshot-Verwaltung

Hyper-V-Integration

Snapshot-Operationen zielen auf lokale Hyper-V-Hosts für schnellen Umgebungs-Reset:

  • Save: Aktuellen Zustand vor dem Deployment erfassen
  • Restore: Umgebung auf bekannten guten Zustand zurücksetzen (Minuten statt Stunden manueller Neuaufbau)
  • Clone: Neue Umgebungen aus Golden Images erstellen

Verwaltung über dedizierte physische Hyper-V-Server.

Cloud-Provider Snapshots

Cloud-seitige Snapshot-Verwaltung via Python API-Client:

  • VM-Level-Snapshots für Cloud-gehostete Umgebungen
  • Verwendet für QA-Umgebungs-Reset zwischen Testläufen
  • In die CI/CD-Deployment-Pipeline integriert

Testautomatisierung

Testausführungsablauf

  1. Kundenbereitstellung — Automatisierte Erstellung von Test-Mandanten mit eindeutigen Anmeldedaten
  2. Testdatengenerierung — Beispiel-Assets, Metadaten und Benutzerkonten werden befüllt
  3. xUnit Runner — C#/.NET-Testsuites werden gegen die bereitgestellte Umgebung ausgeführt
  4. Ergebnissammlung — Testergebnisse werden aggregiert und an die CI/CD-Plattform gemeldet
  5. Bereinigung — Umgebungszustand wird basierend auf dem Testergebnis beibehalten oder zurückgesetzt

Testumgebungen

  • Test: Dual-Instanz-Pool mit zustandsbehafteter Zuweisung (verhindert Testkollisionen)
  • QA (x5): Fünf parallele Umgebungen ermöglichen gleichzeitige Testläufe über Teams hinweg

Sicherheit

Anmeldedatenverwaltung

  • Ansible Vault — Verschlüsselte YAML-Dateien für Passwörter, API-Schlüssel, Zertifikate
  • Kerberos Keytabs — Service-Account-Authentifizierung für AD-integrierte Dienste
  • SSL-Zertifikate — Via Vault verwaltet, auf HAProxy und Anwendungsserver deployt
  • WinRM HTTPS — Verschlüsselte Remote-Verwaltung für Windows-Hosts

Netzwerksicherheit

  • SELinux-Policies — Benutzerdefinierte Policies für Linux-Dienste
  • Firewall-Regeln — Role-spezifische iptables-Konfiguration
  • CIFS/SMB — Authentifizierte Dateifreigabe mit AD-Anmeldedaten