Cloud
12.03.2018
Programmieren as a Service
1. Teil: „Software-Entwicklung in der Cloud“

Software-Entwicklung in der Cloud

Developer CloudDeveloper CloudDeveloper Cloud
Adesso
Für den Einsatz von Cloud-Diensten für die Software-Entwicklung gibt es gute Gründe. Damit sind allerdings auch Risiken verbunden. com! professional zeigt, worauf Unternehmen achten sollten.
Dieser Beitrag wurde erstellt von Andreas Windler, Head of Microsoft Competence Center bei Adesso Schweiz.
Nach Anlaufschwierigkeiten ist die Software-Entwicklung in der Cloud angekommen. Die Nutzerzahlen entsprechender Dienste gehen in die Millionen, weitere setzen sich zumindest mit dem Thema auseinander und der Markt bietet inzwischen zahlreiche Cloud-Lösungen für die Programmierung von Anwendungen.
Für ihre Zusammenarbeit stehen Entwicklungsteams etwa Chat-Systeme wie Skype oder Desktop-Sharing-Lösungen wie TeamViewer zur Verfügung. TeamViewer bietet insbesondere bei der gemeinsamen Arbeit auf einem virtuellen Desktop viele Vorteile. Als Teil von Microsoft Office 365 kann aber auch Skype eine Desktop-Sharing-Lösung mit vergleichbarem Funktionsumfang sein. Cloud-Dienste wie Dropbox oder OneDrive ermöglichen einen einfachen Austausch von Dateien. Durch seine SharePoint-Integration kommt Microsoft Office 365 hier ebenfalls als Alternative infrage.
Zur Verwaltung von Projekten und Quellcodes stehen in der Cloud Standalone-Lösungen wie Atlassian Jira und GitHub oder integrierte Tools wie Visual Studio Team Services bereit. Der Vorteil bei Letzterem: Durch die Integration in Microsoft Office wird die Projekt­steuerung vereinfacht. Ein integriertes Testmanagement ermöglicht außerdem die Spezifikation, die Ausführung und die Verwaltung von Testfällen.

Einfach und flexibel

Mit Lösungen von Infrastructure-as-a-Service-Anbietern wie Amazon oder Microsoft können Programmierer zudem Entwicklungsumgebungen mit unterschiedlichen Konfigurationen flexibel einrichten und nutzen. Build-Dienste bieten Entwicklern die Möglichkeit, sogenannte Build-Prozesse auf vorkonfigurierten Maschinen auszuführen. Alternativ können die Nutzer sich auch selbst eine Server-Farm für die Entwicklung aufbauen und mit der Quellcode-Verwaltung verknüpfen.
Bei Microsoft Azure können virtuelle Maschinen aus der Cloud in das lokale Netzwerk integriert werden und Anwendern den sicheren Zugriff auf eine lokale Quellcode-Verwaltung wie TFS ermöglichen. Darüber hinaus bietet die Cloud auch Dienste zur Ausführung von Lasttests wie Visual Studio Online Load Testing, die pro Virtueller User Minute (VUM) abgerechnet werden. Für das Monitoring stehen Werkzeuge wie Microsoft Visual Studio Application Insights bereit – ein erweiterbarer Analysedienst, der Webanwendungen überwacht, Leistungsprobleme diagnostiziert und sich für Applikationen auf einer Vielzahl verschiedener Platt­formen einsetzen lässt.
2. Teil: „Große Skepsis“

Große Skepsis

Noch haben Cloud-Lösungen in der Software-Entwicklung mit Bedenken, Nachteilen und Risiken zu kämpfen. Für die größte Skepsis – und auch die größte Hürde – sorgen schon fast traditionell die Themen Datensicherheit und Datenschutz. Hierbei stellt sich allerdings die Frage, ob diese Bedenken tatsächlich immer zu Recht bestehen oder ob sie rein emotionaler Natur sind.
Fakt ist: Die Anbieter von Cloud-Diensten haben diese Bedenken erkannt und adressieren sie gezielt über vertragliche Regelungen. Im Vergleich zu anderen Infrastrukturen bringt die Cloud aber auch einige unstrittige Nachteile und Risiken mit sich. Unternehmen begeben sich in eine starke Abhängigkeit von den Cloud-Anbietern. Muss ein Anbieter den Geschäftsbetrieb einstellen, so steht es schlecht um die Kundendaten. Außerdem können diese Daten ohne die passende Software oft nicht mehr weiterverwendet werden.
Da auf viele Dienste über das Internet zugegriffen wird, gibt es weitere Abhängigkeiten. Besteht keine Internetverbindung zum Anbieter, ist kein Arbeiten mehr möglich.
Weil die benötigte Netzwerk­infrastruktur deutlich komplexer ist als beim lokalen Betrieb, erhöht sich darüber hinaus das Risiko einer Unterbrechung. Auch ein Wechsel der Cloud-Anbieter ist nicht ohne Weiteres möglich. Ein automatischer Umzug ist nicht vorgesehen und die Anbieter sind unter­ei­nander inkompatibel. Allerdings gibt es bereits erste Ansätze für die Entwicklung von Cloud-Standards, um etwa Daten zwischen Anbietern auszutauschen und auf diese Weise einen Wechsel zu erleichtern. Ein weiterer Nachteil: Die Verwaltung der Cloud-Dienste ist oft komplex, wodurch Fehler entstehen können, die zu Ausfällen führen. Durch einen Fehler im Bezahlsystem etwa können Accounts gesperrt und Entwicklern der Zugriff auf ihre Arbeit verweigert werden.
Trotz dieser Risiken überwiegen unterm Strich eindeutig die Vorteile. Allen voran steht dabei die Tatsache, dass Unternehmen bei der Software-Entwicklung in der Cloud viel mehr Möglichkeiten haben, als ihnen ihre eigenen In­frastrukturen üblicherweise bei denselben Kosten bieten könnten. Das Haupthindernis für viele Unternehmen – ihre Sicherheitsbedenken – wird von den Cloud-Anbietern in­zwischen gezielt adressiert.

Fazit

Das alles zusammengenommen führt dazu, dass die Nutzerzahlen in jüngster Zeit sehr stark gestiegen sind und auch zukünftig steigen werden.
Weiter erleichtert wird der Einstieg für Applikationsentwickler durch die Möglichkeit einer schrittweisen Migration. Einzelne Cloud-Services, zum Beispiel für die Build-Prozesse, lassen sich sinnvoll mit lokalen Diensten kombinieren. Auf diese Weise können Unternehmen, unter Berücksichtigung ihrer individuellen Gegebenheiten, optimale Lösungen schaffen.
Vorteile durch die Cloud
Skalierbarkeit: Benötigte Ressourcen lassen sich abhängig vom Bedarf buchen und dann beliebig erweitern. Davon profitieren insbesondere kleine Unternehmen.
Mobilität: Die mobile Software-Entwicklung ermöglicht den Zugriff von überall.
Bezahlt wird, was genutzt wird: Ressourcen, die normalerweise nur zur Sicherheit vorgehalten werden, kann man sich sparen.
Schneller Zugriff: Nutzer können sich einfach online re­gistrieren und die Dienste sofort verwenden. Viele Services abstrahieren zudem komplexe Prozesse für die Benutzer.
Know-how: Ausgewiesene Spezialisten kümmern sich um den Betrieb der Rechner. Ausgefeilte Sicherungskonzepte sorgen dafür, dass ein ausgefallener Rechner ausgetauscht werden kann, ohne dass der Betrieb beeinträchtigt wird.
Up to date: Hardware-Komponenten lassen sich während des Betriebs erneuern und Software-Lösungen aktualisieren. Damit ist die Cloud immer auf dem aktuellen Stand.

mehr zum Thema