Software agil entwickeln Programmieren in der Cloud
Investitionskosten sparen, gleichzeitig flexibel skalieren und bei Tests auf mehr Performance zurückgreifen: Das sind nur einige Vorteile der Cloud. Auch Software-Entwicklern kann sie die Arbeit erleichtern. Bevor Unternehmen aber Cloud-Ressourcen buchen, sollten sie sich über die Auswahl der richtigen Services für die Software-Entwicklung Gedanken machen.
Anbieter zum Thema

Ein Software-Entwickler arbeitet im Regelfall an einem Rechner mit der benötigten Anwendung und hat Zugriff auf die Aufgabenverteilung, Ticketsysteme und den Prozess im Application Lifecycle Management (ALM). Ob im Hintergrund eine Cloud steht oder eine On-Premises-Infrastruktur, macht für ihn auf den ersten Blick keinen allzu großen Unterschied. Dennoch gibt es ihn und er ist erheblich, denn Anwendungen lassen sich in der Wolke viel flexibler entwickeln. Ändern sich die Ressourcenanforderungen, ist die Cloud-Plattform entsprechend skalierbar und deckt den Bedarf automatisch. Zusätzlich stehen dort deutlich mehr Services etwa für Qualitätssicherung und Tests zur Verfügung.
Flexible Cloud-Umgebungen fördern ebenso den rasant fortschreitenden Trend, Software-Projekte agil statt im klassischen Wasserfall-Modell umzusetzen. Denn Kunden möchten sich heute stets über den aktuellen Stand eines Projektes informieren und regelmäßig Bescheid wissen, wie ihre Investitionen eingesetzt werden. Die Entwickler bekommen so schon während des Projektes Rückmeldung von ihren Auftraggebern und können ihr Produkt noch in der Entstehung neuen Vorgaben anpassen – dafür benötigen sie eine flexible Entwicklungsumgebung. Damit die Informationen zwischen den Projektbeteiligten kontinuierlich fließen, nutzen sie beispielsweise zeitgemäße Ticket- oder Feedbacksysteme, während zahlreiche Software-as-a-Service-Lösungen den gesamten ALM-Prozess unterstützen.
Das passende Service-Modell wählen
Haben Unternehmen sich für die Software-Entwicklung in der Cloud entschieden, stehen sie vor der Wahl des geeigneten Service-Modells: Wollen sie die Software (SaaS), Plattformen (PaaS) oder die Infrastruktur (IaaS) als Service aus der Cloud beziehen? Die Entscheidung für ein Angebot hängt von den Aufgaben ab, die damit erledigt werden sollen, aber auch andere Faktoren sind zu beachten: SaaS bietet nur eine beschränkte Anzahl an Funktionen. Individuell anpassen lassen sich die Dienste so gut wie gar nicht. Für ambitionierte Entwicklungsprojekte eignen sie sich deshalb nicht. Hier bietet sich ein spezialisierteres PaaS-Angebot wie Azure von Microsoft an. Damit stehen den Entwicklern zusätzlich spezialisierte Datenbanksysteme, Dienste zum Verbinden von verteilten und hochverfügbaren Systemen oder auch Dienste für Internet of Things (IoT) zur Verfügung.
Gehen einmal Daten verloren oder werden manipuliert, ist es von Vorteil, IaaS oder PaaS von einem einzigen Anbieter zu beziehen. Denn die Wiederherstellung ist dann einfacher als bei mehreren SaaS-Lösungen unterschiedlicher Provider. Spezialisierte Dienstleister wie Comparex unterstützen Unternehmen bei der Auswahl der passenden Lösung. Sie planen dabei ein, dass Software in der Cloud anders betrieben wird als On-Premises und der Funktionsumfang sich geringfügig unterscheidet. Zudem achten sie darauf, dass die in der Cloud entwickelte Software dort auch mehrmandantenfähig betrieben werden kann.
Welche Cloud-Dienste ein Unternehmen konkret bei der Software-Entwicklung nutzen sollte, hängt vom Budget und dem individuellen Bedarf ab. Viele Firmen möchten zusätzlich das Applikations-Management und Hosting outsourcen. Für sie eignet sich eine All-in-One-Lösung. Bei der Auswahl unterstützen Dienstleister ebenso mit professioneller Beratung.
„Pay as you use“ statt eigener Infrastruktur
Wer Cloud-Dienste verwendet, benötigt keine eigene IT-Infrastruktur. Ausgaben für den Kauf von Hard- und Software fallen damit weg. Stattdessen eignen sich Verträge bei denen die Anbieter im Pay-as-you-use-Modell abrechnen. Nutzer bezahlen also nur für tatsächlich genutzte Ressourcen. Das Modell bietet sich besonders für zeitlich begrenzte Entwicklungsaufgaben an und auch für solche mit wechselndem Ressourcenbedarf.
Steigt der Bedarf, können schnell mehr Ressourcen provisioniert werden. Sinkt er, werden nicht genutzte Dienste dank integrierter Intelligenz einfach in den Schlafmodus versetzt und erst bei neuem Bedarf wiedererweckt. Unternehmen beschränken so die Ressourcennutzung – und damit auch deren Bezahlung – auf das tatsächlich notwendige Maß. Auch andere Vertragsformen sind für die Entwicklung geeignet, solange sie eine flexible Nutzung der Services unterstützen. Feste Laufzeiten von einem oder drei Jahren, zum Beispiel für eine virtuelle Maschine, sind hier hingegen von Nachteil, auch wenn diese große Rabatte mitbringen.
Cloud-Infrastruktur unterscheidet sich von On-Premises-Infrastruktur, was sich auch auf die Software-Entwicklung auswirkt. Denn der Storage besteht in der Cloud aus Container-basierten Großspeichersystemen, welche sich automatisch selbst replizieren. Datenverluste werden dadurch sofort behoben. Auch die Performance der Cloud ist besser, so kann man dort Lasttests mit 200.000 Nutzern durchführen. Solche Tests sind, verglichen mit dem was sie On-Premises kosten würden, relativ kostengünstig, denn die Provisionierung dauert nur wenige Minuten und nur für die Verwendungsdauer fallen Kosten an. Die Entwickler wissen so direkt, dass ihre Software auch bei Lastspitzen fehlerfrei läuft. Eine On-Premises-Umgebung für solche Tests vorzubereiten, dauert dagegen wesentlich länger. Zudem kostet sie, auch wenn sie nicht verwendet wird.
Unternehmen wollen Software betriebssystemunabhängig entwickeln. Daher brauchen sie auch für das ALM entsprechende Dienste. Comparex setzt dafür auf Microsoft Team Foundation Server (TFS) beziehungsweise die Cloud-Version Visual Studio Team Services (VSTS). Beide Versionen sind offen für andere Plattformen wie MacOS, Unix oder Linux. Für die Cloud-Variante spricht, dass sie kontinuierlich aktualisiert wird und Backup- sowie Recovery-Funktionen integriert sind. Teams von maximal fünf Entwicklern bietet Microsoft den Dienst kostenfrei an.
Auch in der Cloud ist hoher Datenschutz möglich
Trotz all dieser Vorteile lassen sich einige Verantwortliche in Unternehmen und im öffentlichen Dienst durch Sicherheitsbedenken vom Einsatz der Cloud als Entwicklungsplattform abhalten. Tatsächlich liegen dann Teile des Quellcodes in der Cloud, aber sie sind dort nicht frei zugänglich. Sogar in der Fertigungsbranche gibt es Vorreiter, die Cloud-basierte Anwendungen einsetzen, obwohl unternehmenskritische Applikationen dort die Firma häufig nicht verlassen dürfen. Meist gibt es interne Testumgebungen, in denen sie entwickelt werden. Der Einsatz Cloud-basierter Anwendungen deutet darauf hin, dass die Vorbehalte gegen Software-Entwicklung in der Cloud abnehmen. Davon abgesehen nutzen die Software-Entwickler sowieso Testdaten, die ohne die zugehörige Applikation und für nicht Autorisierte nicht verwendbar sind.
Wer ein hohes Datenschutzniveau wünscht, hat zudem bei Azure die Möglichkeit, Daten in der sogenannten Deutschen Cloud abzulegen. Sie werden dann in einem deutschen Rechenzentrum gespeichert. Die Deutsche Telekom als Treuhänder garantiert dafür, dass dort neben deutschem Datenschutzrecht, auch die Vorgaben der Europäischen Datenschutzgrundverordnung (DSGVO) eingehalten werden.
Auch für Entwickler mit hohem Datenschutz-Anspruch gibt es also passende Angebote. Dennoch wird die Software-Entwicklung in nächster Zeit noch hybrid erfolgen: Für einige Prozesse wie Tests werden Entwickler die Cloud nutzen, andere Prozesse werden sie weiterhin On-Premises durchführen. Für Treiber und andere dedizierte Software für Hardware bleibt die lokale Entwicklung sogar die bessere Variante.
* Andreas Gräfe, Teamleiter Software-Entwicklung bei Comparex
(ID:45188605)