13. Aug
Auf und davon! Wie wir die Cloud ins Haus holten.

Es ist Anfang Jänner. Der Besprechungsraum ist voll und die Stimmung könnte besser sein. Einer unserer Partner berichtet gerade, dass in Europa 150 OpenShift-Projekte auf Spezialisten warten und daher nicht durchgeführt werden können. Wir wussten, dass unser Plan, bis Ende April eine produktive Red Hat OpenShift Container Platform aufzubauen, sportlich ist – aber wir hatten keine Ahnung, wie viele Unternehmen derzeit damit kämpfen. Trotzdem haben wir die Herausforderung angenommen! OpenShift im eigenen Rechenzentrum ist ein wichtiger Meilenstein auf unserer Reise in die Cloud.

Was ist die Cloud?

Die meist verbreitete Definition von Cloud stammt vom National Institute of Technology und ist ein guter Einstieg für alle, die sich mit dem Thema beschäftigen. Wir haben darüber hinaus den Begriff für unsere Zwecke maßgeschneidert: Wir definieren CLOUD als Plattform für Entwicklung und Betrieb horizontal skalierbarer Applikationen. Benötigt eine horizontal skalierbare Applikation mehr Performance, wird eine weitere Instanz der Applikation bereitgestellt – und das innerhalb weniger Sekunden vollautomatisch. Bei wenig Last auf der Applikation wird die Anzahl der Instanzen hingegen auf ein Minimum reduziert.

Unsere Definition von CLOUD

Sicher verpackt auf die Reise

Um dies zu erreichen, laufen die Applikationen nicht mehr direkt auf dem Server, sondern in Containern. Genauso, wie ein Frachtcontainer das Transportgut von der Außenwelt isoliert, kapselt auch der Softwarecontainer die Applikation von anderen Prozessen am Server ab. Egal, welches Gut bewegt wird (ob Bambussprossen oder Elektronik), alle Vorkehrungen für den sicheren Transport werden innerhalb des Containers getroffen. Ebenso werden im Softwarecontainer alle Zusatzprogramme, Bibliotheken und Schnittstellen, welche die Applikation für ihren Betrieb benötigt, mitgeliefert.

OpenShift übernimmt dabei die Aufgabe des Containerhafens. Es skaliert die Applikationen, indem es Container startet und stoppt. Außerdem stellt es sicher, dass Container, die zusammengehören – und nur diese – miteinander kommunizieren können, auch wenn sie sich auf unterschiedlichen Servern befinden. Mit diesen Funktionalitäten entspricht OpenShift unserer Definition einer Cloud-Plattform. Somit legen wir mit dem Aufbau der OpenShift Container Platform den Grundstein für unsere Private Cloud.

Dieses vierminütige Video beschreibt sehr gut, wie der Einsatz von Frachtcontainern die Welt verändert hat. In der IT-Welt sorgen Softwarecontainer für einen ähnlichen Wandel.

Wozu der Aufwand?

Durch die Containerisierung von Applikationen und mit einer leistungsfähigen Cloud-Plattform lassen sich viele Probleme lösen. Da Container alle Tools und Frameworks mitbringen, die eine Applikation benötigt, kann ein Softwareentwickler sicher sein, dass eine Applikation, die auf seinem Rechner läuft, auch in der Entwicklungsumgebung funktioniert und genauso erfolgreich in Produktion läuft.

  • Container ermöglichen eine modulare Architektur der Applikation. Sind Anpassungen der Applikation nötig, braucht nur das betroffene Modul ausgetauscht zu werden. Dies verringert den Aufwand und das Risiko bei Anpassungen. Diese Architektur nennt man auch Microservices.
  • Ist die Applikation fähig, horizontal zu skalieren, kann sie mithilfe von OpenShift unterbrechungsfrei aktualisiert werden. Man braucht dazu OpenShift nur eine neue Version des Containers zu überreichen. OpenShift startet zuerst den neuen Container und lenkt alle Anfragen auf diesen um. Danach wird der alte Container beendet. Dies nennt man Rolling Update.
  • Die Fähigkeit, mehrere Versionen eines Containers parallel zu betreiben, ermöglicht uns, neue Funktionen ohne großes Risiko in Produktion zu testen. Dabei wird nur ein kleiner Anteil der Anfragen auf den neuen Container umgelenkt. Methoden dazu nennt man Canari- oder Blue-Green Deployment.
  • Durch horizontale Skalierung reagiert die Applikation besser auf viele Anfragen und läuft dadurch performanter und stabiler.

Kurz gesagt, die OpenShift Container Platform ermöglicht uns, unsere Time-to-Market zu verbessern. Neue Applikationen können schneller entwickelt und neue Anforderungen an bestehende leichter um- und eingesetzt werden. Insgesamt ist unser strategisches Ziel, unsere Time-to-Market um 90 % zu reduzieren. Eine leistungsfähige Cloud-Plattform ist dazu ein wichtiger Baustein.

Wieso die Eile?

Die Punkte oben zeigen die vielen Vorteile der Cloud. Daher werden bei Porsche Informatik seit Mitte 2017 neue Applikationen modular entwickelt und viele bestehende Applikationen modularisiert. Damit die Modularisierung erfolgreich umgesetzt werden kann, muss die richtige Betriebsplattform zur Verfügung stehen. Wir konnten 2017 durch Kooperation mit ITandTel einen OpenShift-Cluster bereitstellen. Dieser wurde bei ITandTel in deren Rechenzentrum betrieben. Dies erleichterte uns den Start in das neue Betätigungsfeld erheblich. Wir konnten viel lernen und erste kleinere Applikationen in Betrieb nehmen.

Nun planen wir, bis Ende 2018 einige große Applikationen in Betrieb zu nehmen. Dies ist ein großer Schritt in der Umsetzung unserer Unternehmensstrategie, mit Modularisierung und Cloud-Technologien unsere Time-to-Market zu reduzieren. Aufgrund der Relevanz von OpenShift bei diesem Vorhaben mussten wir die Container-Plattform ins Haus holen.

Ende 2018 kommen wichtige Applikationen in die Cloud. Für diese großen Fische brauchen wir ein neues Becken.

Mit vereinten Kräften zum Erfolg

Es ist Anfang Juli. Seit zwei Monaten haben wir unsere Private Cloud in Betrieb – einen Monat später als ursprünglich anvisiert, aber rückblickend in unvorstellbar kurzer Zeit realisiert. Der wohl wichtigste Grund für diesen Erfolg war die gute Zusammenarbeit über alle Grenzen hinweg. Noch während der Besprechung Anfang Jänner wurde uns von unseren Partnern volle Unterstützung zugesagt, natürlich im Rahmen ihrer Möglichkeiten. Ohne das Know-how der Partner, vor allem bei ITandTel im Aufbau und Betrieb von OpenShift, hätten wir das Projekt nicht so erfolgreich abschließen können.

Übersicht der wichtigsten Technologien im Projekt.

Noch wichtiger war aber die Zusammenarbeit innerhalb der Porsche Informatik. Seit dem Beginn unserer Cloud-Aktivitäten Mitte 2017 hat sich ein abteilungsübergreifendes Team im besten Sinne von DevOps etabliert. Techniker aus Entwicklung und Betrieb sowie das Management dieser Bereiche arbeiteten Seite an Seite auf Augenhöhe demselben Ziel entgegen. Ohne darüber nachzudenken, haben Entwicklung und Betrieb sogar in manchen Situationen die Rollen getauscht: Software-Architekten haben sich um Betriebsthemen gekümmert und umgekehrt.

Volle Kraft voraus

Mitte Februar hatten wir volle Fahrt aufgenommen. Das Projekt war aufgesetzt und die wichtigsten Architekturentscheidungen getroffen. Bis Mitte März waren wir in der Lage, VMs (Virtual Machines) automatisiert zu erstellen und abzureißen – dies ist eine wichtige Voraussetzung für die Installation von OpenShift. In den folgenden fünf Wochen konnten wir die automatisierte Installationsroutine des Clusters perfektionieren. Es waren circa 100 Wiederholungen nötig, bis die gesamte Installation von VM bis OpenShift inklusive aller Komponenten voll automatisiert erfolgreich durchgelaufen ist. Danach wurde die Plattform von unseren Software-Architekten auf Herz und Nieren geprüft und Anfang Mai für die Produktion freigegeben.

Dies war aber noch nicht das Ende des Projekts. Nun waren die Entwicklerteams gefordert, ihre Applikationen von der alten Umgebung auf die neue zu migrieren. Dies war auch ein guter Zeitpunkt, um Good Practices, die das Cloud-Team im ersten Jahr mit OpenShift (bei ITandTel) erarbeitet hat, an alle Teams weiterzugeben. Wir haben Docker- (unser Container-Framework) und OpenShift-Schulungen veranstaltet und damit etwa ein Drittel unserer 300 Entwickler erreicht. Die letzte Applikation wurde Mitte Juni migriert. So konnten wir rechtzeitig vor der Urlaubszeit einen Haken unter dieses Projekt setzen und den Sommer genießen. Es ist geschafft!

Das haben wir gebaut:

Der OpenShift-Cluster spannt sich über drei Standorte. Die Nodes sind virtuelle Maschinen, bereitgestellt durch unsere VMware-Plattform. Als Storage nutzen wir Hitachi Virtual Storage Platform G800 mit ClusterFS als Cloud-Native-Dateisystem. Anwender authentifizieren sich per MFA mithilfe von Keycloak. Dieser ist an LDAP als IDP angebunden. Monitoring und Metriken des OpenShift-Clusters und der darauf betriebenen Container erhalten wir durch Prometheus in Kombination mit Grafana.

Architekturbild unseres Open-Shift-Clusters

 

Günter Schulmeister

begann als Praktikant im ITSM-Team der Porsche Informatik, in dem er anschließend die Verantwortung für Stammdatenmanagement und 2nd Level Support übernahm. Danach war er einige Jahre Systemadministrator unsers Job-Scheduling-Tools. Seit 2017 betreut er die Cloud Aktivitäten der Porsche Informatik.