Container in Unternehmen - und im Experience Center von PwC

Melanie Jan 31, 2018
Container in Unternehmen - und im Experience Center von PwC

Es gibt eine Technologie, mit denen Release-Zyklen verkürzt werden und bei der es keinen Unterschied zwischen Staging- und Production-Umgebungen gibt. Die Container-Technologie unterstützt Sie bei der Optimierung Ihrer Prozesse und offeriert dabei eine höchstmögliche Unabhängigkeit bei der Softwareentwicklung.

In diesem Blogpost zeigen wir Ihnen auf, wie und warum Unternehmen mit Containern arbeiten und welche Vorteile sie daraus ziehen. Im Rahmen dieses Beitrags haben wir unseren Kunden PwC Schweiz befragt, um Ihnen hieb- und stichfeste Argumente bieten zu können, die für den Einsatz von Containern sprechen.

Das Experience Center von PwC Schweiz, dem führenden Wirtschaftsprüfungs- und Beratungsunternehmen, bietet Innovation, Design und Implementierung als Agentur-Dienstleistung an. Für die Verbesserung von Prozessen haben Sie sich für den Einsatz unserer Managed Container Platform mit OpenShift entschieden.

Vor dem Einsatz von Containern

Die traditionelle Softwareentwicklung birgt eine Reihe potenzieller Herausforderungen. Dabei gibt es aber in der Regel drei Hauptgründe, warum Unternehmen zu Containern wechseln:

  • Konflikte zwischen der Staging-, Test- und Production-Umgebung: unterschiedliche Umgebungen können unterschiedliche Betriebssysteme oder Pakete verwenden. Da insbesondere die Laufzeit von Webapplikationen durch die Umgebung beeinflusst wird, kann es zu Problemen auf der Production-Ebene kommen, die zuvor im Staging nicht erkennbar waren.
  • Langsamer Release-Zyklus: ein manueller und daher fehleranfälliger Bereitstellungsprozess, der agile Entwicklungsmethoden nicht gut unterstützt und das Vertrauen in Releases für Entwickler und Kunden verringert.
  • Unflexible Umgebungen: erschweren die Erstellung maßgeschneiderter Anwendungen aufgrund externer Faktoren. Dies hat einen Einfluss auf die Verfügbarkeit von Ressourcen und verlangsamt wiederum den Prozess zum Experimentieren und Iterieren neuer Ideen.

Im Experience Center von PwC Schweiz gab es aufgrund von verschiedenen technischen Umgebungen sowie der Zusammenarbeit von einzelnen unterschiedlichen Software-Entwicklungs-Teams innerhalb des Unternehmens eine komplexe Arbeitsumgebung. Diese stellte das Experience Center von PwC Schweiz vor die Herausforderung, relevanten Kontext zwischen den einzelnen Projekten auszutauschen. 

Das Experience Center von PwC Schweiz wollte die Silos zwischen den Teams auflösen, das Risiko von manuellen Bereitstellungsprozessen minimieren, Laufzeitumgebungen anpassen und auf einer Plattform arbeiten, bei der Skalierbarkeit eine Selbstverständlichkeit ist.



Erhalten Sie weitere Informationen zur Container-Technologie in unserem neuen Whitepaper:

Jetzt Whitepaper herunterladen


 

Während der Implementierung

Bevor Sie eine Verwendung von Containern für den täglichen Gebrauch in Erwägung ziehen, sind die folgenden Schritte zur Umsetzung notwendig. Dabei dienen diese als Beispiele, die jeweils entsprechend an Ihre Bedürfnisse angepasst werden können.

1. Container-Technologie: Alles beginnt mit der Auswahl einer Container-Technologie wie beispielsweise Docker. Mit dieser Technologie starten Sie die lokale Erstellung und Verwendung von Images und Containern.

2. Container-Plattform: Anschliessend wählen Sie, auf welcher Plattform Ihre Container laufen sollen und wie Sie diese bauen möchten. Da es oftmals Abhängigkeiten zwischen einzelnen Plattformen und verwendeten Build-Prozessen gibt, ist es wichtig, diese Komponenten sorgfältig zu prüfen. Hierbei gibt es zahlreiche Möglichkeiten, wie Sie mit dem gewählten Pfad und der gewählten Plattform verfahren können. Folgend haben wir für Sie einige der gebräuchlichsten Ansätze spezifiziert:

  • Die Image-Definition befindet sich direkt im Projekt, wird lokal oder in einem CI erstellt und anschliessend in ein Repository der jeweiligen Container-Technologie (z.B. Docker Hub) verschoben. Die Container-Hosting-Plattform (z. B. OpenShift) zieht dann dieses Image direkt aus dem Repository und führt es aus.
  • Die Image-Definition befindet sich ebenfalls direkt im Projekt, allerdings erstellt und hostet die PaaS-Plattform das Image zusätzlich (z.B. Openshift mit Redhat Container Registry).
  • Die Image-Defintion befindet sich getrennt vom Repository des Anwendungsprojektes (z.B. Source2Image) und ist zudem generisch aufgebaut, um eine Wiederverwendung zwischen den Projekten zu ermöglichen.

3. Technische Umgebung der Plattform: Berücksichtigen Sie die technische Umgebung rund um die Container-Plattform. Denn ein Wechsel zur Container-Technologie bedeutet, dass - um den grössten Nutzen zu ziehen - eine neue Infrastruktur um Sie herum aufgebaut werden muss. Aus diesem Grund müssen Sie beispielsweise die Werkzeuge zur Protokollierung und zur Analyse des Container-Outputs wählen, den Übergang zu «Infrastructure as a Code» definieren, einen Weg finden, um Barrieren aus Ihrem Bereitstellungsprozess zu entfernen und das Bewusstsein für neue Fähigkeiten und Technologien in Ihren Entwicklerteams fördern. 

4. Business-Umgebung der Plattform: Auch das Umfeld rund um die Plattform aus Business-Sicht muss berücksichtigt werden. Hierbei können die folgenden Beispiel-Fragen bei der Analyse unterstützen: Welche Herausforderungen ergeben sich aus der Verwendung von Shared Nodes, die für die Einhaltung von Corporate Compliance erforderlich sind? In welchem Verhältnis stehen die Kosten für den Betrieb von dedizierter Hardware im Cluster im Vergleich zu den Einsparungen, die durch verkürzte Bereitstellungszeiten erzielt werden können? Unterstützt Ihre aktuelle Umgebung die DevOps-Philosophie der schnellen und häufigen Veröffentlichung von Releases gut? Unterstützt Ihre aktuelle Firmenkultur die DevOps-Philosophie?

5. Automatische Replikation: Mit der Bereitstellung der erforderlichen Werkzeuge können Sie die Images in allen Umgebungen erstellen und verwenden. Auf diese Weise werden funktionale Prozesse immer wieder automatisch repliziert und Best Practices der ersten Umgebung implizit überall eingesetzt.

Das Experience Center von PwC Schweiz startete den Implementierungsprozess mit Docker als Kerntechnologie für Container und begann zunächst mit der lokalen Erstellung von Images für Laufzeitanwendungen. Anschliessend wurden mögliche PaaS-Lösungen untersucht. Bei der Entscheidungsfindung berücksichtigte das Experience Center von PwC Schweiz auch die Verwendung eines reinen Kubernetes-Clusters. Aufgrund des damit verbundenen Aufwands - ohne Einsatz eines internen, dedizierten Systemteams - entschied sich das Experience Center von PwC Schweiz jedoch dagegen. Aufgrund der niedrigen Eintrittsbarriere für Benutzer, des schnellen Entwicklungstempos und der zugrunde liegenden Open Source Plattform, entschied sich das Experience Center von PwC Schweiz für OpenShift.

In einem weiteren Schritt untersuchten sie anschliessend Best Practices für die Verwendung von OpenShift und entschieden sich für die Source-to-Image-Technologie zur Image-Erzeugung. Da s2i die Wiederverwendung von Basis-Images projektübergreifend ermöglicht, können so die Wartung und Pflege der Laufzeitumgebung reduziert und Updates und Verbesserungen automatisiert bereitgestellt werden.

Herausforderungen bei der Implementierung

Die Herausforderungen, denen das Experience Center von PwC Schweiz während der Implementierung gegenüber standen reichten von Fragen zur Einhaltung der Compliance, über die Verwendung von Datenbank-Upgrade-Pfaden bei der Bereitstellung bis hin zu Fragen im Bereich Application Logging. Dabei deckte das Experience Center von PwC Schweiz mit ihren Angaben genau die Herausforderungen ab, denen Sie als Container-Nutzer gegenüberstehen. Dies konnten wir im Gespräch mit anderen Kunden feststellen. Ein weiteres wichtiges Thema, zusätzlich zu den oben genannten, ist sowohl für das Experience Center von PwC Schweiz als auch für andere Nutzer, die Konvertierung von Anwendungen in ein containerisiertes Format.

Doch warum jetzt ein Container?

Einige Vorteile von Containern haben wir Ihnen im ersten Abschnitt bereits aufgelistet. Doch sind Container wirklich so gut? Das Experience Center von PwC Schweiz konnte hier mit einem deutlichen "Ja" antworten und belegt dies mit den folgenden Fakten:

  • Die erfolgreiche Lancierung der Website von Switzerland Global Enterprise.
  • Die vollständige Umwandlung von der VM-basierten Entwicklung in eine docker-basierte Entwicklung mit einer deutlich verkürzten Release-Zeit.
  • Die 100%ige Konvertierung der ci-Tests in Docker-basierte Tests.
  • Die deutlich verkürzte Länge der Deployment- und Feedback-Pipeline.
  • Die geringeren Fehlerquoten in Projekten durch Parität von Entwicklungs-, Test- und Produktions-Umgebungen.

Überrascht wurde das Experience Center von PwC Schweiz hier von zwei Aspekten - die Steigerung der allgemeinen Projektqualität und der frühe Zeitpunkt im Entwicklungszyklus zur Erkennung von Fehlern. Beides konnte auf die "echte" Parität der containerisierten Umgebungen zurückgeführt werden. Weiterhin konnte das Experience Center von PwC Schweiz im Code-Release-Prozess eine Verbesserung der Qualität und des Komforts feststellen. Dieser Vorgang nahm früher viel Zeit in Anspruch und brachte ein hohes Risiko mit sich.

Zudem hebt Adrian Christen, Head of Realization des Experience Centers von PwC Schweiz die Zusammenarbeit mit einem Managed Service Provider bei der Implementierung und dem Betrieb hervor. Dadurch habe das Experience Center von PwC Schweiz viel Unterstützung im Umgang mit Containern erhalten. Dies gelte insbesondere für die Ausführung von Anwendungen und bei der Leistungssteigerung, für den Support bei der Konfiguration der Protokollierung, für Good Practices bei der Verwendung von Docker und beim Umgang mit persistenter Datenspeicherung.

Wenn nun auch Sie von den Vorteilen von Containern überzeugt sind und sich gerne weiter über dieses Thema informieren möchten, finden Sie viele spannende Informationen auf unserer Webseite oder in unserem Blog.