Provisioning
Bereitstellung und Konfiguration von IT-Ressourcen, automatisiert oder manuell, für reproduzierbare Infrastruktur.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Fehlerhafte Templates können breitflächige Störungen auslösen.
- Unzureichende Zugriffskontrollen führen zu Sicherheitslücken.
- Unkoordiniertes Provisioning erzeugt Inkonsistenzen zwischen Umgebungen.
- Idempotente Templates verwenden und Zustandsdateien sichern.
- Secrets zentral und sicher verwalten (Vault etc.).
- Provisioning in CI/CD-Pipelines integrieren und testen.
I/O & Ressourcen
- IaC-Templates und Module
- Zugangsdaten und Rollenbeschreibung
- Netzwerk- und Sicherheitsrichtlinien
- Betriebsbereite Infrastrukturartefakte
- Konfigurations- und Bestandsdaten (State)
- Dokumentation der bereitgestellten Topologie
Beschreibung
Provisioning bezeichnet das Bereitstellen und Konfigurieren von IT-Ressourcen wie virtuellen Maschinen, Netzwerken und Zugriffsrechten. Es umfasst manuelle und automatisierte Verfahren (Infrastructure as Code) sowohl für Cloud- als auch On-Premises-Umgebungen. Ziel ist reproduzierbare, konsistente und effiziente Bereitstellung von Infrastruktur. Es unterstützt Skalierung, Compliance und schnelle Wiederherstellung.
✔Vorteile
- Reproduzierbare und konsistente Umgebungen reduzieren Fehler.
- Schnellere Bereitstellung beschleunigt Time-to-Market.
- Automatisierung verbessert Skalierbarkeit und Wiederherstellbarkeit.
✖Limitationen
- Komplexität beim Management von Zustandsdaten und Geheimnissen.
- Tool-Abhängigkeiten können Lock-in-Effekte erzeugen.
- Nicht alle betrieblichen Vorgaben lassen sich vollständig automatisieren.
Trade-offs
Metriken
- Durchschnittliche Provisionierungszeit
Zeit vom Start eines Provisioning-Jobs bis zur betriebsbereiten Umgebung.
- Fehlerrate pro Provisioning-Job
Anteil fehlgeschlagener Provisionierungen gegenüber allen Versuchen.
- Time-to-Recovery (Provisioning)
Dauer, um eine neue Umgebung nach Ausfall bereitzustellen.
Beispiele & Implementierungen
Terraform für Multi-Cloud-Provisioning
Verwendung von Terraform-Modulen zur einheitlichen Bereitstellung von Infrastruktur über mehrere Cloud-Anbieter hinweg.
Cloud-init für VM-Initialisierung
Cloud-init-Skripte konfigurieren Betriebssystem und Startdienste beim ersten Booten einer VM.
Ansible für Konfigurations- und Service-Provisioning
Ansible-Playbooks automatisieren Konfigurationsaufgaben und Service-Bereitstellungen in bestehenden Hosts.
Implementierungsschritte
Standards und Templates definieren und versionieren.
Toolchain (IaC, CI/CD, Geheimnisverwaltung) einrichten.
Automatisierte Tests und Validierungen implementieren.
Rollout schrittweise starten und Metriken überwachen.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Alte, ungetestete Templates ohne Dokumentation
- Inkonsistente State-Management-Praktiken
- Custom-Scripts statt wiederverwendbarer Module
Bekannte Engpässe
Beispiele für Missbrauch
- Direktes Ändern von Produktionsressourcen ohne IaC-Änderung
- Veröffentlichung ungeprüfter Templates in Produktivumgebungen
- Speichern von Geheimnissen im Quellcode-Repository
Typische Fallen
- Implizite Annahmen über Standardnetzwerke und Limits
- Unklare Ownership von Provisioning-Skripten
- Nicht berücksichtigte Abhängigkeiten zwischen Komponenten
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Vorgaben von Compliance und Datenschutz
- • Provider-spezifische Limitierungen und APIs
- • Vorhandene Legacy-Infrastruktur