ArtikelEntwicklung

Software-Erstellung: Mit der Cloud ist der Erfolg programmiert

Andreas Gräfe, Teamleiter Software-Entwicklung bei Comparex (Quelle: Comparex)

Autor/Redakteur: Andreas Gräfe, Teamleiter Software-Entwicklung bei Comparex/gg

Software-Entwickler müssen schnell und flexibel agieren. In der Cloud stehen kostengünstig Ressourcen bereit, die ihre Arbeit beschleunigen. Entwicklerteams erstellen jedoch erst dann hochwertige Anwendungen in kürzester Zeit, wenn sie zu den richtigen Werkzeugen greifen – und sich nicht auf Infrastrukturebenen oder bei Plattform- und Software-Diensten verrennen.

Die Entwicklung von Software erfordert den schnellen Zugriff auf unterschiedliche Ressourcen, wofür die interne IT zunächst neue Systeme einrichten muss. Die serviceorientierte Programmierung, die heute verbreitet ist, kommt jedoch ohne eine Vielzahl bestimmter Tools nicht aus. So ist das schnelle Feedback aus der Fachabteilung oder von einem externen Auftraggeber unerlässlich für die Software-Entwickler. Der kontinuierliche Informationsfluss zwischen den Projektbeteiligten lässt sich über moderne Feedback- oder Ticketsysteme herstellen. Zahlreiche Software-as-a-Service (SaaS)-Lösungen wiederum unterstützen den gesamten Prozess des Application Lifecycle Management (ALM).

Doch wo sollen die zentralen Services laufen? Am besten in der Cloud, die Entwicklern dieselben Vorteile bietet wie anderen Anwendergruppen: Agilität, Flexibilität, Skalierbarkeit und geringere Kosten. Die Provisionierung der Cloud-Dienste erfolgt in wenigen Minuten und Kosten fallen nur für den Zeitraum der Ausführung an. Eine Cloud-Lösung läuft in der Regel auch bei Lastspitzen störungsfrei. Hinzukommt vor allem, dass für eine Anwendungsentwicklung in der Cloud deutlich mehr Services zur Verfügung stehen, insbesondere für Test- und Qualitätssicherungssysteme. Den individuellen Ressourcenbedarf stellt die gewählte Cloud-Plattform automatisch bereit, ohne dass eine Firma eine eigene Infrastruktur dafür errichten muss. Als Speicherinfrastruktur überzeugen Container-basierte Großspeichersysteme aus der Cloud. Denn diese Systeme replizieren automatisch, wodurch Datenverluste sofort behoben werden.

Bessere Performance und zentrales Managementwerkzeug

Welcher Performance-Gewinn in die Software-Entwicklung einzieht, lässt sich mit Microsoft Azure SQL demonstrieren: Ein Anwender kann quasi per Schieberegler ein transaktionsbezogenes Backup durchführen – und das für einen individuell wählbaren Zeitraum. Zudem sind Lasttests einer neuen Software mit 200.000 Nutzern möglich, wo bei herkömmlichen Systemen die Kosten aus dem Ruder laufen würden.

Das Entwickeln von Software in der Cloud bringt also viele Vorteile. Unternehmen befürchten allerdings, sich zu sehr von einem Betriebssystem abhängig zu machen. Es hat sich bewährt, vom Erfassen der Anforderungen über das Managen der Tests und das Bearbeiten der Anforderungen bis zum Erstellen von Releases und Iterationen auf ein Tool zu setzen: Microsoft Team Foundation Server (TFS), dessen Cloud-Variante Visual Studio Team Services (VSTS) ist.

Dieser Cloud-Service wird ständig aktualisiert, enthält bereits Backup- und Recovery-Funktionen und zeichnet sich eben durch Offenheit zu anderen Systemen wie Unix, Linux oder MacOS aus. In Verbindung mit Azure leistet VSTS jedoch am meisten. Entwickler können so Buildserver oder Testumgebungen in der Cloud nutzen, um Anwendungen zu bauen, zu testen und zu warten. Durch verschiedene Testarten und der Unterstützung diverser Frameworks sowie Tools entsteht eine vollwertige Testumgebung.

Die passenden Mittel wählen

Je nach Projektgröße und -tiefe braucht ein Entwicklerteam Infrastrukturebene (IaaS), mehrere Plattformen (PaaS) oder Software-Lösungen (SaaS). Unter Umständen reicht es aus, den lokalen Server in der Cloud abzubilden. In dem Fall wird eine Datenbank, ein Active-Directory-Controller oder eine eigene Lösung auf einer virtuellen Maschine (VM) betrieben. Der Mehrwert hält sich in Grenzen, denn ein Anwender hat sich weiterhin selbst um das Betriebssystem, die Patches, Backups und mehr zu kümmern. Mit SaaS-Lösungen können Entwickler ihren Abnehmern einfach Zusatzleistungen zur Verfügung zu stellen. Der Nachteil: die Software-Lösungen lassen sich kaum individualisieren. Außerdem reicht der eingeschränkte Funktionsumfang für ambitionierte Entwicklungsprojekte meist nicht aus. Sind hochspezialisierte Datenbanksysteme, Dienste zum Verbinden und Kommunizieren von verteilten und hochverfügbaren Systemen oder Anwendungen für das Internet of Things (IoT) gefragt, rückt PaaS in den Fokus.

Bei Datenverlust oder -manipulation erweist es sich als Vorteil, wenn Unternehmen nicht auf mehrere SaaS-Lösungen, sondern auf die Plattform eines einzigen Anbieters setzen. Denn die Daten lassen sich so leichter wiederherstellen. Für was sich Unternehmen auch entscheiden, sie sollten bei der Suche nach der passenden Lösung unbedingt drei Aspekte berücksichtigen: Eine Software wird in der Cloud anders als On-Premises betrieben. Auch gibt es im Funktionsumfang kleinere Unterschiede. Zudem sollte eine Plattform den Mehrmandanten-Betrieb der Software unterstützen, die auf ihr entwickelt wird.