Eine Cloud-basierte Softwareentwicklung kann diverse Vorteile realisieren. Zum Beispiel:
höhere Flexibilität und Zuverlässigkeit,
mehr Effizienz und
geringere Kosten.
Doch Cloud Development birgt auch eine ganze Reihe nicht zu unterschätzender Herausforderungen und Risiken. Wir haben zehn für Sie zusammengestellt, die deutlich machen: Es lohnt sich, (mindestens) zweimal zu überlegen, bevor Sie Ihre Software in der Cloud entwickeln.
1. Performance- und Latenzprobleme
Cloud Services sind mit Blick auf Verfügbarkeit und Leistung im Großen und Ganzen zuverlässig. Dennoch sind Outages oder Performance-Probleme, die die Development-Prozesse beeinträchtigen, nicht ausgeschlossen - eher im Gegenteil. Erik Gaston, CIO beim Sicherheitsanbieter Tanium, warnt: "Netzwerküberlastung, gemeinsam genutzte Ressourcen in mandantenfähigen Umgebungen und die geografische Entfernung zwischen Nutzern und Cloud-Rechenzentren sind Faktoren, die bei Cloud-Anwendungen zu Leistungsproblemen beitragen können. Um an dieser Stelle Abhilfe zu schaffen, müssen Entwickler optimierten Applikations-Code sicherstellen und Content Delivery Networks einsetzen, um die Inhalte näher an den Endbenutzer zu bekommen."
Andere Optionen, um die Leistung zu optimieren, könnten laut dem CIO darin bestehen, sich für Cloud-Dienste mit niedriger Latenz zu entscheiden - etwa Edge Computing. "Unabhängig davon hängt die Anwendungsleistung in der Cloud von diversen Faktoren ab, die weit über Design und Aufbau hinausgehen", ergänzt Gaston.
Um Latenzprobleme zu verhindern, empfiehlt Aleksa Krstic, CTO beim SaaS-Anbieter Localizely: "Ziehen Sie Services in Betracht, die über mehrere Cloud-Rechenzentren oder -Regionen verteilt sind."
2. Security- und Datenschutzrisiken
Security und Datenschutz sind - wie bei praktisch allen IT-Aspekten - auch im Rahmen von Cloud-Development-Initiativen zentrale Anliegen. Angesichts der Threat-Vielfalt und -Häufigkeit in Cloud-Umgebungen eine zunehmend diffizile Herausforderung. Prabhsharan Singh, Softwareentwickler beim Healthcare-Unternehmen Clinicspots, erklärt: "Stringente Security-Protokolle sind bei der Softwareentwicklung in der Cloud das A und O, um sensible Daten und Applikationen vor unberechtigtem Zugriff zu schützen. Weil Cloud-Dienste oft 'On Demand' zur Verfügung stehen müssen und gemeinsam genutzt werden, kommen diverse Komplexitäts-Layer hinzu, die das deutlich erschweren."
Um Security-Risiken zu minimieren empfiehlt Localizely-CTO Krstic:
Daten zu verschlüsseln,
Access Control-Mechanismen zu implementieren und
Security-Protokolle regelmäßig zu aktualisieren.
"Darüber hinaus sollten Sie Ihre Cloud-Service-Anbieter gründlich unter die Lupe nehmen, um Compliance sicherzustellen", mahnt der Manager.
Matt Aird, CTO beim LED-Spezialisten Custom Neon, weist an dieser Stelle auf das Shared-Responsibility-Modell im Cloud-Umfeld hin: "Auf Anwendungsebene sind Unternehmen in der Regel selbst für die Sicherheit verantwortlich - auch wenn der Anbieter die Infrastruktur absichert."
3. Vendor Lock-in
Ganz allgemein bietet Cloud Computing eine bislang nicht dagewesene Flexibilität. Was im Umkehrschluss jedoch nicht bedeutet, dass die Möglichkeiten in Sachen Development- und Testing-Umgebung unbegrenzt sind.
CIO Gaston bringt das Problem - und seine Lösung - auf den Punkt: "Es besteht die Gefahr, sich an einen bestimmten Anbieter zu binden und anschließend nur unter erheblichem monetären Aufwand aussteigen oder migrieren zu können. Dieses Problem lässt sich zumindest abschwächen, indem Cloud-agnostische Architekturen eingeführt und klare Standards definiert werden, wann immer das möglich ist." Als Beispiel führt Gaston Container-Technologien wie Docker und Kubernetes an. Diese könnten dazu beitragen, Applikationen und Workloads portabel zu gestalten und ihre Migration zu vereinfachen.
Krstic weist außerdem darauf hin, dass Abstraktionsschichten und standardisierte Interfaces ebenfalls helfen können, um das Risiko eines Vendor Lock-in zu umgehen.
4. Ausufernde Kosten
Cloud Services zu nutzen, kann versteckte Kosten aufwerfen - dabei machen Softwareentwicklung und Testing keine Ausnahme. "Die Cloud-Nutzungskosten können schnell außer Kontrolle geraten, wenn die Verträge nicht ordnungsgemäß überwacht und gemanagt werden", gibt Gaston zu bedenken.
Dabei stehen laut dem Manager insbesondere drei Aspekte in Zusammengang mit unerwarteten Cloud-Kosten:
Ressourcen, die ineffizient eingesetzt werden,
unzureichende Usage-Prognosen sowie
mangelhaftes Resource Allocation Management.
"Um dieser Herausforderung zu begegnen, sollten die Entwickler mit den finanziellen Aspekten der Cloud-basierten Entwicklung bestens vertraut sein", empfiehlt Gaston. Um die Kosten unter Kontrolle zu halten, schlägt er vor, die Ressourcennutzung mit Monitoring Tools zu tracken, automatisierte Skalierungslösungen einzusetzen und die Konfigurationen auf regelmäßiger Basis zu überprüfen.
5. Compliance-Anforderungen
Mit der Cloud zu arbeiten, wirft das Problem auf, dass die Daten dabei in beliebigen Regionen und Ländern gespeichert sein können - je nachdem, wo sich die Cloud-Infrastruktur befindet. Mit Blick auf die Compliance ist das problematisch. Deswegen sind die Development-Teams gefordert, sich über Änderungen in diesem Bereich auf dem Laufenden zu halten und erforderliche Kontrollmaßnahmen einzuziehen.
Localizely-Manager Krstic weiß, was hilft: "Einerseits kann es helfen, einen Cloud-Service-Provider auszuwählen, der integrierte Compliance-Zertifizierungen anbietet. Andererseits trägt eine enge Kollaboration mit Rechtsexperten und Compliance-Beauftragten dazu bei, relevante Regularien einzuhalten."
Auch Softwareentwickler Singh weist auf drohende Probleme mit der Datenhoheit hin. Sein Lösungsansatz für das Problem: "Essenziell ist es, Data-Management-Richtlinien zu befolgen und sicherzustellen, dass die gewählten Anbieter compliant sind. Daüber hinaus kann auch eine Hybrid- oder Multi-Cloud-Strategie mehr Kontrolle darüber geben, wo die Daten gespeichert werden."