oporkka - Fotolia
Softwareentwicklung von morgen: Die Cloud kreativ einsetzen
Von Low-Code-/No-Code-Ansätzen über Container bis zu Microservices – die Cloud lässt sich in vielfacher Form für die Softwareentwicklung einsetzen.
Cloud Computing scheint je nach Anspruch die universelle Heilungsmethode für IT-Probleme zu sein. IT-Manager, Entwickler und Architekten wissen aber, dass das nicht stimmt. Allerdings wissen sie auch, dass die Cloud helfen kann, eine Menge Probleme zu beheben und eine schnellere Softwareentwicklung zu ermöglichen, wenn sie richtig angewendet wird.
Das ist besonders da der Fall, wo die Cloud eine neue Art von Entwicklungszusammenarbeit erzeugt, native Cloud-Features mit minimaler Codierung integriert, die Wiederverwendung von Komponenten erleichtert, um dem Entwicklungsaufwand zu reduzieren, verteilte Tests für das Application Lifecycle Management (APM) erschafft und Teams benutzerdefinierte Anpassungen an Anwendungen erlaubt.
Der einfachste Ansatz für eine schnellere Softwareentwicklung mit der Cloud ist es, die Vorteile der Cloud-Agilität und Flexibilität in Hosting-Entwicklungs-Tools zu nutzen. Die meisten Entwicklungswerkzeuge lassen sich in der Cloud hosten und einige neuere Tools sind für die Cloud-Bereitstellung konzipiert.
Mit Containern beginnen
Die erste Ebene von Cloud-Entwicklungs-Tools liefern Entwicklungsumgebungen in gemanagten Containern. Auf diese Weise können Entwickler parallel arbeiten, ohne dass sie jeweils einen eigenen Server erhalten, und ohne das Risiko, Verwirrung während der Softwareüberprüfung zu erzeugen.
Cloud9, Codeanywhere und CodeRun sind Beispiele für solche Entwicklungswerkzeuge. Die Virtualisierung von Entwicklerarbeitsplätzen ist mittlerweile eine Grundvoraussetzung. Anbieter wie Codenvy stellen Projekt-Management- und Collaboration-Funktionen zur Verfügungen und bieten einen Einstieg für DevOps, um den Übergang zum IT-Betrieb zu erleichtern. All das kann zu einer deutlich schnelleren Softwareentwicklung führen.
Der zweite Fortschritt innerhalb des Entwicklungszyklus durch die Cloud ist die erhöhte Verfügbarkeit von bereitgestellten APIs von Cloud-Providern. Diese bieten sowohl grundlegende Entwicklungsmerkmale wie ein relationales Datenbank-Management-System (RDBMS) als auch komplexe Funktionen wie eine IoT-Geräteverwaltung und funktionale (Lambda-) Programmierungs-Tools. Die Features sind vollständig implementiert und lassen sich leicht aufrufen.
Die Kombination von drei oder vier dieser Features mit minimalen benutzerdefinierten Code kann die Fertigstellung einer Anwendung, deren Entwicklung ansonsten mehrere Mannjahre erfordert, deutlich verkürzen.
Sowohl Amazon Web Services (AWS) als auch Microsoft Azure haben verschiedene neue Funktionen in ihre Webservice-Cloud-API-Bestände integriert. Dazu gehören ein halbes Dutzend Entwicklungs- und API-Management-Tools. Einige der Tools bieten spezifische Anwendungsmerkmale, um die Cloud-Entwicklung zu erleichtern, zum Beispiel Microsofts Azure Service Fabric und AWS Lambda, sowie deren IoT- und KI-Services.
Selbst da, wo keine einfach zu bedienende Cloud-API verfügbar ist, um sich mit einer Anwendung zu verbinden, verbessert die Cloud die Entwicklungseffizienz. Die Kombination von Cloud-Komponenten und Cloud-Infrastruktur erzeugen ein IT-Modell, bei dem sich die Anwendungsleistung durch neue Instanzen oder Instanzbeseitigung erweitern oder verringern lässt.
Nirgends wird der Antrieb zur Komponentisierung deutlicher als im Bereich der Microservices. Microservices sind, wie der Name impliziert, sehr kleine Funktionseinheiten, die aufgrund ihrer Einfachheit wiederverwendet werden können. Microservice-Broker stehen auf einer Funktionsebene wie SOA-Broker, aber Microservices lassen sich auch in einem Web-REST-Ansatz verwenden.
Anwendungen, die aus Microservices gebaut sind, können die Entwicklungszeit um bis zu 40 Prozent verkürzen. Sie stellen allerdings auch eine Herausforderung für das Application Lifecycle Management (ALM) dar, da Microservices ausgiebig wiederverwendet werden und sich eine Microservice-Änderung durch viele verschiedene Anwendungen durchziehen kann.
Softwaretests können knifflig sein
Eine der schwierigsten Fragen des Application Lifecycle Managements ist die Definition eines realistischen Testszenarios. Moderne Anwendungen sind so entworfen, dass sie überall und von jedem verwendet werden können. Die Einschränkungen der traditionellen Testdatengenerierung bedeutet, dass ALM nicht einfach reale Daten replizieren und Muster verwenden kann. Über die verteilte Testdatenerzeugung innerhalb der Cloud lässt sich der tatsächliche Produktivbetrieb viel genauer simulieren.
Elsevier und Informatica bieten jeweils Tools für die Erzeugung von Testdaten für Cloud-Anwendungen an. Sie stellen außerdem Anleitungen und Werkzeuge zur Verfügung, um die Verteilung der Testbots in der Cloud zu erleichtern. Automatische Testdatengeneratoren, darunter auch Open-Source-Produkte, können mit funktionalen Programmen in der Public Cloud oder dem Azure Bot Service kombiniert werden, um virtuelle Benutzer auf Testanwendungen zu verteilen.
Die schnellste Softwareentwicklungsmethode ist schließlich das No-Code-Modell, bei dem sich Funktionalität per Drag-and-Drop zusammenstellen lässt – auch von normalen Mitarbeitern, nicht nur IT-Profis.
Einer der bekanntesten Anbieter in diesem Bereich – Appian – beschreibt selbst normale Mitarbeiter als Entwickler. Die Cloud bietet zwei Voraussetzungen für diesen Ansatz: zum einen der zunehmende Reichtum an Komponenten, zum anderen die vorhandenen Tools für deren Entwicklung.
Nur wenige glauben wirklich, dass es möglich ist, die komplette professionelle Softwareentwicklung zu beseitigen, selbst für Business-Anwendungen. Doch die Entwicklung von einfachen Tools für Nichtprogrammierer gibt Hoffnung, dass die IT stärker auf Geschäftsanforderungen reagiert und die Gesamtentwicklungskosten reduziert werden.
Die Cloud hat die Schatten-IT gefördert, indem sie Software as a Service (SaaS) und einfache Programmier-Tools bietet, die kombiniert mit Lambda oder anderen funktionalen Programmiertechniken den Schatten deutlich in die grundlegende Entwicklung erweitert.
Mehr zum Thema Softwareentwicklung:
Techniken zur Optimierung der Microservices-Leistung in der Cloud.
Wie die Enterprise-Architektur von der Microservices-Entwicklung profitiert.
Die Oracle Cloud Platform stellt verschiedene Entwicklungs-Tools zur Verfügung.
Kostenloser E-Guide: Softwareentwicklung für das Internet der Dinge.
IoT-Entwicklungsplattformen hauchen vernetzten Geräten Leben ein.
Ein gemeinsames Modell für die Zukunft?
Während es zu diesem Zeitpunkt noch nicht vollkommen klar ist, ist es doch fast sicher, dass alle diesen Initiativen zu einem gemeinsamen Modell verschmelzen werden. Das Modell wird die Form einer variablen Code-Plattform annehmen, die sich sowohl auf Cloud-Komponenten als auch benutzerdefinierte Komponenten für die Anwendungsentwicklung und ALM bezieht.
Der erste Antreiber hierfür ist das Continuous-Delivery-Modell. Der Zweite ist die Schatten-IT, die durch die Cloud-Übernahme der einzelnen Fachabteilungen angetrieben wird. Und der Dritte ist das zunehmende Cloud-API-Inventar, das zu kompletten Anwendungen führt, die aus zusammengesetzten Komponenten (Salesforce und Oracle) bestehen.
Die wichtigsten Auswirkungen der Cloud auf die schnellere Softwareentwicklung werden erst heute sichtbar, und es ist klar, dass wir in wenigen Jahren auf eine echte Softwarerevolution zusteuern. Cloud-spezifische Programmiertechniken werden die Geschichte der Softwareentwicklung umschreiben und sich sogar auf die Programmierung für Desktop-Systeme und –Geräte auswirken.
Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!