Hochverfügbar, skalierbar und sicher in der Public Cloud Thomas Bachmann CIO @ Mambu GmbH Twitter: @thobach
Anwendungsbeispiel Core Banking System Verwaltung von Kunden, Konten, Transaktionen Buchhaltung, Dokumentenmanagement, Kundenkommunikation, Aufgabenverwaltung Produktsetup, Nutzer- und Rechtemanagement
Anwendungsbeispiel Architektur Webanwendung, 3-Schicht Architektur Java Tomcat Google Web Toolkit MySQL und File Storage (lokal/nfs oder S3) Mandantenfähig
Cloud Computing
Definition Cloud Computing (NIST) Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Definition Cloud Computing (NIST) 5 Eigenschaften On-demand selfservice Broad network access Resource pooling Rapid elasticity Measured service 4 Deployment Modelle Private Cloud Community Cloud Public Cloud Hybrid Cloud 3 Service Modelle SaaS, PaaS, IaaS
Amazon Web Services
Hochverfügbarkeit
Hochverfügbarkeit: Anforderungen keine oder nur eine kurze Unterbrechung 99,99% Verfügbarkeit max. Ausfallzeit von 4:23 Minuten/Monat bzw. 52:36 Minuten/Jahr
Hochverfügbarkeit: Realisierung Redundanz kritischer Komponenten oder Nutzung redundanter Dienste und Fehlertoleranz des Gesamtsystems ohne menschliches Eingreifen
Redundanz auf mehreren Ebenen Virtuelle Maschine Physikalischer Rechner Rechenzentrum Region
Fehlertoleranz des Gesamtsystems Fehler erkennen Fehlerhafte Komponente entfernen (Betrieb aufrecht erhalten dank Redundanz) Ersatz für fehlerhafte Komponente bereitstellen und installieren
Cloud bietet Redundanzen mehrere VMs mit gleicher Software Verteilung von VMs auf mehrere Rechenzentren und Regionen Rechenzentren bieten Redundanz Stromversorgung, Klima, Netzwerk, Internetanbindung redundante PaaS Dienste: Load Balancer, Datenbankserver, DNS, Dateispeicher
Cloud bietet Fehlertoleranz Monitoring Tools Alarme und verknüpfte Aktivitäten konfigurieren Skalierungsgruppen fehlertolerante PaaS Dienste: Load Balancer, Datenbankserver, DNS, Dateispeicher
Auto Scaling Group stellt gewünschte Anzahl VMs mit gleicher Konfiguration sicher Launch Configuration VM Image & Power (CPU, RAM, Netzwerk, Disk) Zugeordneter Blockspeicher
Auto Scaling Group Cloud-Init Skript Phoenix Server Pattern Immutable vs. Snowflake Servers Chef, Puppet, Ansible Chaos Monkey
Skalierbarkeit
Skalierbarkeit: Anforderungen mit steigender Last mithalten bei sinkender Last Kosten sparen
Skalierbarkeit: Realisierung ausreichend Ressourcen verfügbar halten dynamische Zuordnung von Ressourcen (Koordination von Lasten um Ressourcen gleichmäßig auszulasten)
Ausreichend Ressourcen Kapazitätsplanung Überkapazität für unvorhergesehene Schwankungen Beschaffung Installation und Einrichtung Virtualisierung und Pooling
Dynamische Zuordnung Monitoring um Bedarfsschwankung zu ermitteln Alarme bei Überschreiten oder Unterschreiten von Schwellenwerten Aktionen zum Provisionieren oder Deprovisionieren Virtualisierte Ressourcen Automatisierung während (De)Provisionierung
Lasten Koordination Planung von Lasten z.b. Batch Jobs nur nachts laufen lassen wenn weniger Anfragen an Webanwendungen von Mitarbeitern oder Kunden kommen
Cloud bietet ausreichend Ressourcen Aufwand für Kapazitätsplanung, Beschaffung, Installation und Einrichtung, Virtualisierung, Pooling und Koordination von Lasten entfällt Kosten- und Aufwandersparnis Risiko auf Cloud Anbieter verlagert Zahlung der tatsächlich genutzten Ressourcen Betriebskosten (Opex) vs. Investitionskosten (Capex)
Cloud vereinfacht dyn. Zuordnung Werkzeuge für Monitoring & Alarme Vorgefertigte Aktionen zum Provisionieren oder Deprovisionieren
Auto Scaling Group LB kann Health Check an Auto Scaling Group weitergeben CloudWatch kann Auto Scaling Group Kapazität anpassen
Sicherheit
Sicherheit: Anforderungen Informationssicherheit Vertraulichkeit Integrität Verfügbarkeit Authentizität Verbindlichkeit/Nichtabstreitbarkeit Zurechenbarkeit
Umsetzungsmöglichkeiten Vertraulichkeit Netzwerksicherheit: Firewalls, (N)ACL, Verschlüsselung Zugriffsrechtemgmt.: Least Privilege, 4 Augen Prinzip Penetrationstests Integrität, Zurechenbarkeit Audit Trails Backups Verfügbarkeit DoS Abwehr Authentizität, Nichtabstreitbarkeit Passwort, Signierung
Cloud bietet Informationssicherheit Zertifizierte und getestete Infrastruktur und Prozesse Möglichkeiten eigene Anwendungen absichern Security Groups, (N)ACL, Netzwerkmonitoring granulares Rechtemanagement IaaS: Patches / Phoenix Server Verschlüsselung in Transit und Ruhe Audit Trails, Backups
Kosten
Kostenvergleich für Hochverfügbarkeit Minimale Anwendung (2 VMs, LB, DB, HA) Public Cloud: 70 /Monat komplett gemanagt On-Premise: 5-20x zwei eigene Rechenzentren: Bau (Millionen) & Betrieb (>200k / Jahr) angemieteter Rackspace in zwei Rechenzentren, Server, Lizenzen, Einrichtung (Wochen), Wartung: 10-20x Nutzung virtualisierter Ressourcen, Ressourcen (ab 40 /Monat), Einrichtung (Tage), Wartung: 5x
Zusammenfassung
Anforderungen & Mapping auf Public Cloud Verfügbarkeit minimale Downtime Skalierbarkeit IaaS: redundante & geogr. verteilte VMs S/PaaS: SLA mit steigender Last mithalten Kosten sparen Load Balancer Auto Scaling Group Phoenix Server Monitoring & Alerting Sicherheit Vertraulichkeit Integrität Authentizität, Verbindlichkeit/Nichtabstreitbarkeit, Zurechenbarkeit Security Groups, (N) ACL Least Privilege IaaS: Patches / Phoenix Server Verschlüsselung
Vor- und Nachteile einer Public Cloud Verfügbarkeit Skalierbarkeit Sicherheit Self-Service Geringe Kosten unbegrenzte Ressourcen sofort Know-How Kontrollverlust benötigt Internetzugang höhere Ressourcen Kosten Vendor Lock-in Mandantenisolation Zugriff durch Anbieter