PaaS beschleunigt Entwicklungs- und Betriebsprozesse

Michael Leibfried
© shutterstock.com/Tashatuvango

Schnelles Feedback, hohe Prozessgüte, effiziente Fehlervermeidung und immer verfügbar – so lauten heute die Anforderungen an zeitgemäße Entwicklungs- und Betriebsprozesse. Agile Entwicklungsmodelle und Continuous Delivery haben hohe Anforderungen an die zugrundeliegende Infrastruktur und die Kommunikation zwischen Entwicklung und Betrieb. Die optimale Basis für diese Anforderungen sind PaaS-Umgebungen.

Für Unternehmen wird es immer wichtiger, sich schnell an dynamische Marktveränderungen und Trends anzupassen. Das betrifft unter anderem die IT, die die Plattform für Geschäftsprozesse aller Art bieten muss. Besonders die Applikationsentwicklung und der Betrieb haben umfangreiche Anforderungen zu befriedigen, und das bei deutlich anspruchsvolleren Endanwendern und weiter zunehmendem Budgetdruck und Mangel an Fachkräften und Spezialisten.

 Abb. 1: Trends bei IT-Projekten: Die Zeit wird zunehmend in die Entwicklung investiert. (Quelle: Red Hat)

Erfolgreiche Durchführung von Entwicklungsprojekten

Die Erfolgsfaktoren bei der Softwareentwicklung sind neben professionellem Projektmanagement und einem erfahrenen Team unter anderem die richtigen handwerklichen Ansätze und eine passende Infrastruktur, die von Anfang an den gesamten Lebenszyklus der zu erstellenden Software adressiert.

Eine Checkliste der grundlegenden handwerklichen Strategien und Techniken findet sich in der folgenden Infobox „Handwerkliche Grundlagen für Entwicklungsprojekte“.

• Effizientes Source Code Management
• Automatisierte Build- und Packaging-Lösungen mit ausreichender automatisierter Testabdeckung
• Gestaltung von Interfaces und Mock-Ups von Drittsystemen (Datenbanken und Legacy-Systeme) und entsprechende Bereitstellung von Testdaten
• Gestaltung von Continuous-Integration-Prozessen mit Dependency-Management-Lösungen und Repositories
• Automatisiertes Deployment und Konfigurationsmanagement
• Fokussierung auf Umsetzung oben genannter Themen vor der Feature-Entwicklung in der Breite

Je nach Charakter der zu entwickelnden Software (Inhouse-Plattform-, Produkt- oder Projektentwicklung) und fachlicher Domäne (beispielsweise Bestandsführung, Stammdatenmanagement oder Social Communities) liegen die Schwerpunkte von automatisierten Integrationstests oder nichtfunktionalen Anforderungen anders, die prinzipiellen Erfolgskonzepte bleiben aber die gleichen.

Auch die Betriebsabteilungen, die die Projektergebnisse übernehmen und in Produktion nehmen, stellen für sich den Anspruch, über Automatisierung und Standardisierung die Effizienz und Stabilität der von ihnen verantworteten Systemlandschaft deutlich zu optimieren.

Die Anforderung, in Schadensfällen ganze Rechenzentrumsinfrastrukturen, beispielsweise einer Bank oder Versicherung, in anderen Lokationen in kürzester Zeit und mit begrenztem Personal innerhalb weniger Tage neu aufzusetzen, gibt auch Laien eine Vorstellung von der zugrundeliegenden Planung, Logistik und Komplexität. Denn um solche Szenarien handhabbar zu machen, sind ein hohes Maß an Standardisierung von Hardware- und Softwarekomponenten, dokumentierte und weitestgehend automatisierte Vorgehensweisen und Prozesse sowie SLAs notwendig. In einem klassischen, teilvirtualisierten Betrieb unterstützt Red Hat dies durch den Aufbau eines Standard-Operating-Environments.

Überblick Standard-Operating-Environment (SOE)-Prozess im Rechenzentrum

Red Hat unterstützt bei der Einführung einer standardisierten Betriebsumgebung (Standard Operating Environment). Hierbei geht es im Schwerpunkt um die Zielsetzungen Standardisierung, Komplexitätsreduktion, Betriebseffizienz und Skalierbarkeit einer IT-Umgebung. Gleichzeitig bildet der hohe Grad an Standardisierung und Automatisierung auch eine solide Basis für die Implementierung von Cloud-Computing-Strategien.

Aufmacherbild: PAAS – Green Billboard on the Rising Sun Background von Shutterstock / Urheberrecht: Tashatuvango

 

[ header = Seite 2: Effizienzfaktor Automatisierung ]

Effizienzfaktor Automatisierung

Eine Vollautomatisierung aller Schritte von Source Code Management, Testing, Aufsetzen der gesamten Projekt- und Betriebsumgebung bietet sich nicht nur an, weil alle Schritte zigtausende Mal von Entwicklern und automatisierten Integrationssystemen und im Betrieb ausgeführt werden müssen, sondern sie eliminieren variierende und nicht nachzuvollziehende manuelle Schritte. Dadurch wird eine systematische Fehler- und Optimierungsanalyse ermöglicht, und bei Änderungen am Code, der Konfiguration, der Technologiekomponenten oder der automatisierten Prozesse selbst schlägt der Prozess fehl. Das führt zu schnellem Feedback und durch eine Strategie kontinuierlicher, kleiner Änderungen entsteht Transparenz sowie eine Kontrollmöglichkeit über mögliche Risiken für die beteiligten Mitarbeiter.

Dev und Ops – Durchgängige Infrastruktur

An den Ansätzen vieler Projektteams und Betriebsabteilungen ist interessant, dass ähnliche Strategien verfolgt werden und ein ähnliches Wertesystem etabliert ist (Stichworte sind agile Methoden und Lean Management). Das ist eine gute Basis, um mögliche Reibungsflächen, die auf gegensätzlichen Anforderungen basieren, in ein Modell kooperativer Zusammenarbeit zu wandeln.

Denn die Krux in der Zusammenarbeit an der Schnittstelle zwischen Entwicklungsteams und Betrieb ist es, die Balance zu finden zwischen hohem Innovationsdruck und -bereitschaft, der Tendenz zur frühen Trendfolge in der Entwicklung und der nötigen Stabilität, Wartbarkeit und Vorhersehbarkeit auf Betriebsseite. Auch gemeinsame Ziele werden aus unterschiedlichen Perspektiven gesehen, Effizienz beispielsweise auf der einen Seite oft aus einer Feature- und Time-to-Market-Brille, auf der anderen Seite aus einer Hardware- und Energieeffizienz-Brille mit dem Hauptziel, möglichst wenige Störungen für den User und damit Tickets zu generieren.

Kritisch ist die Automatisierung der Schnittstelle zwischen Betrieb und Entwicklung, da der Übergabepunkt nicht nur die Verantwortungsübernahme an den Betrieb darstellt, sondern bei Roll-Outs von Releases und Fixes diese Schnittstelle wiederholt durchlaufen wird.

Daher werden Hürden reduziert, wenn von Anfang an auf einer uniformen Zielumgebung entwickelt, getestet, betrieben und gewartet wird. Denn eine verlässliche Infrastruktur mit gleichen Constraints und Rahmenbedingungen von der Entwicklungsumgebung über Integrations-, Test- und Produktivsysteme ist die Basis, um eine durchgängige Automatisierung über den Softwarelebenszyklus abbilden zu können.

Ein Design einer Infrastruktur, das sich hervorragend für die beschriebenen Szenarien eignet, ist eine On-Premise-PaaS-Lösung.

On-Premise PaaS-Layer

Nimmt man die Nomenklatur aktueller Cloud-Architekturen zu Hilfe und betrachtet eine Private Cloud, auch On-Premise-Cloud-Umgebung genannt, dann lassen sich verschiedene Abstraktionslayer abgrenzen, die für eine weitergehende Betrachtung hilfreich sind:

Hinsichtlich der Infrastruktur einer Cloud ist grob zwischen Private, Public und Hybrid Clouds zu unterscheiden und hinsichtlich der Abstraktionsebene zwischen

  • IaaS (Infrastructure as a Service/Oberkante Betriebssystem),
  • PaaS (Plattform as a Service/Oberkante Messaging, ESB und Application Server) und
  • SaaS (Software as a Service/Konsumierbare Applikationen für Endnutzer wie Salesforce, Facebook oder iCloud).

Dabei fokussiert dieser Artikel auf den PaaS-Layer, denn auf diesem Abstraktionslayer werden die für die Entwicklung nutzbaren Services und Softwareanwendungen bereitgestellt: technische Middleware-Komponenten, Webserver etc. Dazu müssen die Services aus den technischen Komponenten assembliert und paketiert werden. Nachdem diese Services mit Metadaten angereichert wurden, sind sie durch ihre technischen Interfaces, die Abhängigkeiten untereinander und die enthaltenen Komponenten sowie zusätzlichen Informationen wie Benutzungsrechte, SLAs oder Abrechnungsdaten beschrieben.

So kann ein Service also für Entwickler, Tests und Produktion mit verschiedenen Verfügbarkeiten, Ressourcen und Preisen angeboten werden. Je nach hinterlegtem Abrechnungsmodell können durch die anfallenden Nutzungsdaten die Anwender des PaaS-Angebots abgerechnet werden, wobei Abo-, Cost-Sharing oder Pay-per-Use-Modelle umgesetzt werden können.

[ header = Seite 3: Lösungsansatz: Enterprise PaaS ]

Lösungsansatz: Enterprise PaaS

Auch wenn der Einsatz von PaaS und die unter der Bezeichnung DevOps bekannte Kombination der Entwicklung und Bereitstellung von Applikationen stark zunehmen, befindet sich der PaaS-Markt immer noch in einem frühen Stadium.

Wenn man die genannten Aspekte betrachtet, wird auch klar, warum die PaaS-Lösungen Lösungsbausteine bieten, um die herum dann die diversen Prozesse und Integrationen in bestehende Systeme wie Abrechnung, Monitor und Alerting, Reporting-Tools oder Rechtesysteme individuell gestaltet werden können.

Genau deswegen kommt dem PaaS-Layer in der Kommunikation zwischen Entwicklungs- und Betriebsprozessen eine besondere Bedeutung zu. Denn durch seine Lösungsbausteine, technischen Schnittstellen und das so definierte Vokabular setzt er klare Constraints und Vorgaben an die involvierten Personen.

Dabei müssen bestehende Lösungen und Prozesse nicht (zwingend) geändert werden, aber durch die Standardisierung technischer Infrastruktur und Komponenten können sich die Parteien eher auf innovative administrative und lösungsorientierte Ansätze fokussieren.

Unternehmen können mit einer modernen PaaS-Umgebung die Geschwindigkeit und Produktivität in ihren Entwicklungsprojekten deutlicher erhöhen als bei einem reinen DevOps-Ansatz. Eine geeignete Plattform muss dazu Kriterien wie hohe Verfügbarkeit, automatisches Provisioning, dynamische Skalierung und Einsatzmöglichkeit in privaten, öffentlichen und hybriden Clouds erfüllen.

Durch die Automatisierung der einzelnen Themen ist das System zu einem großen Maße selbstdokumentierend und die Zusammenarbeit zwischen allen beteiligten Parteien kann durch die bestehende Transparenz im besten Sinne „agil“, also konstruktiv und lösungsorientiert erfolgen. Dies erhöht zusätzlich die Akzeptanz und Motivation, und das sowohl auf Führungs- als auch Mitarbeiterebene.

OpenShift PaaS

Red Hat bietet mit Openshift eine PaaS-Lösung an, die es der IT-Abteilung ermöglicht, sich auf die Erstellung, den Betrieb und die Verwaltung von Applikationen zu konzentrieren. Eine PaaS-Plattform sollte vollen Self-Service, ein automatisiertes Deployment, einen standardisierten Software Stack und eine nahtlose Integration in vorhandene Infrastrukturen bieten. Entwickler müssen sich dann nicht mehr um Infrastruktur-Aufgaben wie Provisionierung, Anpassung von Betriebssystem-Images oder Firewall-Konfigurationen kümmern. Sie können deshalb auch wesentlich produktiver arbeiten. Über einen hybriden Ansatz, der Entwicklungsumgebungen in der Public Cloud zulässt, können externe Mitarbeiter oder Teams über den Webbrowser ihre Entwicklungsumgebung bedienen.

Waren viele PaaS-Angebote früher auf eine einzige Cloud-Plattform und eine geringe Auswahl an Programmiersprachen beschränkt, sind diese Einschränkungen heute nicht mehr gegeben. Red Hats PaaS-Plattform OpenShift etwa unterstützt Java EE 6, Ruby, Node.js, PHP, Perl sowie Python und verfügt außerdem über Support für marktführende Middleware-Komponenten wie die Red Hat JBoss Middleware; dazu kommen die Datenbanken MongoDB, MySQL und PostgreSQL sowie gängige Entwicklungstools wie Maven, Jenkins und Eclipse. Zentrales Merkmal von OpenShift ist die Cartridge-Architektur, auf deren Basis Entwickler Services einfach und schnell einbinden und ihre Applikationen flexibel um benötigte Funktionalitäten erweitern können. Bei den Cartridges stehen unterschiedliche Typen zur Verfügung: zum Beispiel Programmiersprachen, Frameworks, Datenbanken oder Entwicklungs-Tools.

Abb. 2: Mit Cartridges installiert OpenShift Programmiersprachen und Middleware. (Quelle: Red Hat)

Abb. 3: Lizenzfreie Open Source Cartridges im Überblick. (Quelle: Red Hat)

Insgesamt können Unternehmen, die mit der PaaS-Plattform OpenShift Applikationen erstellen und betreiben, ihre Entwicklungs-Workflows effizienter organisieren und Anwendungen bereitstellen, die hohe Anforderungen hinsichtlich Konsistenz, Sicherheit und Flexibilität erfüllen. PaaS-Plattformen bieten eine Laufzeitumgebung, die sich einfach administrieren lässt und den gesamten Lebenszyklus einer Software vom Design über die Entwicklung, den Test bis hin zum Betrieb der Anwendungen umfasst.

Abb. 4: Aspekte, die bei der Sicherstellung der Software-Qualität nach ISO/IEC 25000 zu beachten sind (Quelle: Red Hat)

Geschrieben von
Michael Leibfried
Michael Leibfried
Michael Leibfried ist Solution Architect Middleware bei Red Hat in Grasbrunn bei München.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.