Plattform für Anwendungsentwicklung in der Cloud
Zeit ist Geld: mit Cloud Foundry schneller zur App
- Die Notwendigkeit agiler Softwareentwicklung
- SCRUM und DevOps sind nur die halbe Miete
- "Cloud-Application-Platform"
- Cloud Foundry und wie sie funktioniert
- Vorteile im Überblick
Die Zeiten, in denen Entwickler von Applikationen und Systemsoftware bestenfalls einmal im Jahr ein neues Release herausbrachten, sind vorbei. Im Zeitalter der Digitalen Transformation bestimmt Software maßgeblich über den wirtschaftlichen Erfolg eines Unternehmens mit. Wer als Erster eine innovative App auf den Markt bringt oder seine Anwendungsumgebung schneller an geänderte Marktanforderungen anpasst, hat die Nase vorn.
Kein Wunder, dass agile Softwareentwicklungstechniken und Frameworks wie Scrum und DevOps an Boden gewinnen. Laut einer Studie des Softwarehauses CA stufen mehr als 80 Prozent der Unternehmen in Europa beide Ansätze als geschäftskritisch ein. So lässt sich mithilfe von DevOps laut der Untersuchung die Zeit für die Entwicklung neuer Apps von mehr als 19 auf 13 Wochen reduzieren.
Die Cloud als Softwareplattform
Doch DevOps und agile Projekt- und Produktmanagementverfahren wie Scrum sind nur die halbe Miete. Ebenso wichtig ist eine Plattform, mit der sich Applikationen möglichst einfach, schnell und kostengünstig entwickeln und bereitstellen lassen. Exakt das bieten Cloud-Application-Plattformen wie die Open-Source-Lösung Cloud Foundry. Mit ihr können Entwickler cloud-basierte Unternehmensanwendungen entwickeln und "ausrollen".
Cloud Foundry stammt ursprünglich von VMware und wurde später vom kalifornischen Softwareunternehmen Pivotal weiterentwickelt. Seit 2015 ist mit der Cloud Foundry Foundation eine herstellerunabhängige Stiftung für die Open-Source-Variante der Plattform zuständig. Die kostenpflichtige Version von Pivotal enthält ergänzende Management-Tools und Support-Leistungen. Neben Cloud Foundry gibt es weitere Plattformen, die ähnliche Funktionen wie Cloud Foundry anbieten. Dazu gehören OpenShift von Red Hat, Salesforce Heroku und Googles App Engine.
Flexibel: mehrere Implementierungsformen
Cloud Foundry wird als Platform as a Service (PaaS) bereitgestellt, also als Cloud-Plattform. Nutzer haben die Wahl: Sie können Cloud Foundry im eigenen Rechenzentrum implementieren, also in einer "Private Cloud". Notwendig ist eine virtualisierte IT-Infrastruktur, etwa auf Basis von VMwares vSphere-Stack.
Oder ein Unternehmen nutzt das Angebot eines zertifizierten Anbieters von Cloud-Foundry-Plattformen. Dazu zählen beispielsweise IBM Bluemix Cloud Foundry, Pivotal Cloud Foundry und die SAP Cloud Platform. Es handelt sich um Distributionen, die als Kern Cloud Foundry verwenden, aber um herstellerspezifische Funktionen erweitert wurden.
Eine dritte Option ist, Cloud Foundry über eine Public-Cloud-Plattform zu betreiben. Unterstützt werden beispielsweise Amazon Web Services, Microsoft Azure und die Google Cloud Platform. In diesem Fall stellen die Public-Cloud-Dienste das Fundament für Cloud Foundry bereit, also Netzwerk-Services, Speicherkapazitäten und Datenbanken. Darauf setzt die Cloud-Foundry-Plattform auf.
Wer dagegen lieber auf die Hilfe des Systemhauses seines Vertrauens zurückgreifen will, kann Cloud Foundry beispielsweise in einem Rechenzentrum von Bechtle implementieren. Der Vorteil: IT-Fachleute von Bechtle kümmern sich in diesem Fall um IT- und Cloud-Infrastruktur des Kunden und entlasten so dessen IT-Abteilung. Ein weiterer Pluspunkt: Wer Cloud Foundry nutzen möchte, kann zudem auf die Expertise des Systemhauspartners zurückgreifen, wenn es um die Planung, Implementierung und den Betrieb der Cloud Application Platform geht. Das erspart einem Unternehmen kostspielige Lernprozesse und Zeitverluste.
Universeller Ansatz
Cloud Foundry unterstützt alle gängigen Programmiersprachen und Entwicklungsumgebungen, etwa Java, js, PHP, Go, Python und Ruby. Entwickler können außerdem Programmcode, Laufzeitumgebungen und Systemkomponenten in Container "packen". Für diesen Zweck stehen Docker und Kubernetes bereit. Ein Vorteil von Containern: Sie benötigen kein eigenes Betriebssystem, sondern nutzen das des Host-Rechners. Dadurch benötigen Container weniger Ressourcen als virtuelle Maschinen und lassen sich leicht auf andere Systeme portieren.
Container eignen sich vor allem für schlanke "Microservices". Das sind Dienste und Apps, die über Schnittstellen (Application Programming Interfaces) mit anderen Microservices kommunizieren. Solche kompakten Services ersetzen verstärkt große, "monolithische" Applikationen, die sich nur mit hohem Aufwand erweitern oder an neue Anforderungen anpassen lassen. Daher erfreuen sich Microservices bei Applikationsentwicklern wachsender Beliebtheit.
Wie Cloud Foundry funktioniert
Der eigentliche Charme von Cloud Foundry besteht darin, dass Entwickler ihre Applikation nach der Fertigstellung einfach in die Cloud-Foundry-Umgebung überspielen können. Das erfolgt von einer Konsole aus mit dem Kommando "cf". Um den Rest kümmert sich die Plattform, besser gesagt deren "Elastic-Runtime"-Umgebung. Sie prüft, um welchen Anwendungstyp es sich handelt, etwa eine Java-App, und welche Abhängigkeiten vorhanden sind.
Außerdem übernimmt Cloud Foundry das Bundling und Staging von Applikationen. Große Dateien wie Code-Pakete und Droplets werden zudem in einem Cloud-Speicher abgelegt. Im nächsten Schritt startet die Plattform die Applikation beziehungsweise ruft den entsprechenden Container auf. Wie es um den "Gesundheitszustand" einer Anwendung bestellt ist, können Nutzer mithilfe von integrierten Monitoring-Tools überwachen. Zudem lassen sich externe Werkzeuge einsetzen, etwa Splunk.
Damit die Applikationen von Cloud Foundry auch auf Services von anderen Softwareanbietern und Ressourcen von Cloud-Plattformen wie AWS, Azure und GPC zugreifen können, steht seine Programmierschnittstelle (Open Services Broker API) zur Verfügung. Verwalten und überwachen lässt sich die Cloud-Software mithilfe von BOSH. Mit diesem Tool können Entwickler Software auf den neuesten Stand bringen, neu paketieren und implementieren. BOSH bietet somit Funktionen aus einer Hand, die bislang den Einsatz unterschiedliche Werkzeuge erforderten.
Welche Vorteile eine Cloud Application Platform wie Cloud Foundry bietet
Eine Cloud Application Platform wie Cloud Foundry übernimmt ferner einen großen Teil der aufwendigen Routinetätigkeiten, mit denen sich Softwareentwickler auseinandersetzen müssen. Laut einer Umfrage der Cloud Foundry Foundation unter Softwareentwicklern vom Frühjahr 2017 wünschen sich 91 Prozent der Befragten mehr Zeit für die kreativen Aspekte ihrer Tätigkeit. Aufgaben wie das Staging und Packaging neuer Apps oder das Prüfen von Abhängigkeiten von Softwarekomponenten sollten nach ihrer Auffassung weitgehend automatisiert werden. Dies ist auch deshalb wünschenswert, weil IT-Fachkräfte, insbesondere Entwickler, Mangelware sind und solche Spezialisten sich um wichtigere Aufgaben kümmern sollten.
Zu den wichtigsten Vorzügen von Lösungen wie Cloud Foundry zählt, dass sie den Zeitraum verkürzen, bis neue Apps und Releases vorhandener Softwareprodukte zur Verfügung stehen. Zudem vereinfachen Cloud-Application-Plattformen den Test und die Implementierung von Applikationen. Das heißt, Unternehmen können neue Software oder erweiterte Funktionen in vorhandenen Apps schneller bereitstellen, und das in einer besseren Qualität. Letztlich bedeutet dies, dass sich die Release-Zyklen von Monaten auf Tage oder gar Stunden reduzieren. Dadurch sind Unternehmen in der Lage, schneller auf Anforderungen von Kunden oder neue Marktgegebenheiten zu reagieren.
Anwendungen für unterschiedliche Endgeräte
Plattformen wie Cloud Foundry forcieren zudem ein "API-first"-Design von Applikationen. Das heißt, Application Programming Interfaces spielen eine zentrale Rolle. Dadurch ist es einfacher, Softwarefunktionen parallel auf unterschiedlichen Endgeräten "auszurollen", wenn diese über die entsprechenden APIs verfügen.
Der höhere Automatisierungsgrad, den Cloud Foundry beim Erstellen und Implementieren von Anwendungen bietet, kommt zudem der Sicherheit zugute - zum einen deshalb, weil menschliche Fehler ausgeschlossen werden, zum anderen, weil das Einspielen von Updates und Patches schneller und einfacher zu bewerkstelligen ist. Sicherheitslücken in Programmen werden daher rascher beseitigt oder treten erst gar nicht auf - und das ist in Zeiten verschärfter Compliance- und IT-Sicherheitsvorgaben ein eminent wichtiger Faktor.