Adacor Senior Systemadministrator Jan Schwarzkopf gibt Einblicke in ein aktuelles Private Cloud Projekt: Wie lief die Planungsphase ab? Welche Herausforderungen wurden gemeistert? Welche Technologien kommen zum Einsatz?
Jan, kannst du dich kurz vorstellen, seit wann arbeitest du bei Adacor und welchen Schwerpunkt haben deine Projekte?
Ich arbeite bei Adacor seit zwei Jahren im Bereich Customer Operations (COP). Als ausgebildeter Fachinformatiker für Systemintegration beschäftige ich mich mit dem Management und dem Betrieb von Infrastrukturen im Cloud- und Hosting-Umfeld. Dabei ist mein Steckenpferd das Thema Automatisierung.
Zielsetzung des Projektes: die Plattform technologisch auf das nächste Level heben
Was war die Zielsetzung des Private Cloud Projekts?
Ziel unseres Kunden war es das Hosting für zwei seiner Cloud-Infrastrukturen zu konsolidieren und zu modernisieren.
Nachdem Adacor bereits seit einigen Jahren das Hosting einer der beiden Infrastrukturen verantwortet sowie Managed Services für die weitere Cloud leistet, war es im Laufe des letzten Jahres nötig, die Plattform technologisch auf das nächste Level zu heben.
Folgende Technologien kommen zum Einsatz:
- Adacor-Managed Content Delivery Network
- Blue-Green Deployment
- Kubernetes (K8s)
- Ansible
- CI/CD
- Terraform
Um herauszufinden was genau der Kunde braucht und was die Plattform in Zukunft leisten soll, sind wir in die intensive Evaluierung und Abstimmungen mit den verantwortlichen Ansprechpartner:innen auf Kundenseite gegangen. Das Ergebnis war ein Konzept, das vorsieht, die neue Plattform als Private Cloud aufzubauen und die beiden bestehenden Plattformen dort zu konsolidieren.
Die neue Private Cloud sollte nach modernen und aktuellen Standards funktionieren, um sicherzustellen, dass die Migration der Projekte auf die neue Infrastruktur reibungslos laufen wird.
Herausforderung: sich häufig ändernde Produktdaten
Was waren die besonderen Herausforderungen bei der Migration?
Auf der Plattform, werden täglich viele, sich häufig ändernde Produktdaten importiert und verarbeitet, die den Nutzern zeitnah zur Verfügung stehen müssen. Das bedeutet erhöhte Anforderungen an Hardware und Infrastruktur: Auf der einen Seite besteht also der Bedarf an hoher Performance und Verfügbarkeit, auf der anderen Seite ist viel Koordination bei der Migration in die neue Plattform nötig damit weder längere Ausfallzeiten noch veraltete Daten entstehen.
Was begeistert dich an dem Projekt und was war besonders spannend?
Da unser Kunde global tätig ist, sorgen wir dafür, dass seinen Webseite von überall performant erreichbar ist. Dazu setzen wir ein Content Delivery Network ein. Mit Hilfe des Adacor-Managed Content Delivery Network (kurz: CDN) werden die Ladezeiten der Webseite optimiert und es wird dafür gesorgt, dass die Daten der Server in Frankfurt überall auf der Welt verfügbar sind. Das CDN stellt die Distribution der Daten sicher, auch wenn diese physikalisch in Frankfurt gespeichert sind.
Zudem ist die Private Cloud auf unsere beiden Rechenzentren in Frankfurt verteilt, um die Verfügbarkeit weiter zu erhöhen und die Erreichbarkeit im Falle eines Ausfalls eines Rechenzentrums sicherzustellen.
Du hast bestimmt von dem Brand im Rechenzentrum von OVH im März 2021 gehört. Nach dem Vorfall haben wir gemeinsam mit dem Kunden entschieden seine Server an zwei Standorten aufzubauen, um deren Verfügbarkeit im Katastrophenfall zu gewährleisten. Der Kunde kann sich bei seinem Geschäftsmodell einen Ausfall seiner Infrastruktur oder den Verlust von Daten nicht leisten.
Unsere Rechenzentren sind NTT und Interxion – beide mit Standort in Frankfurt am Main. Durch verschiedene Netzwerk-, Storage- und Serverredundanzen, Replikationsmechanismen und organisatorische Prozesse bieten wir damit eine erhöhte Sicherheit. Ein Wechsel von einem auf das andere Rechenzentrum ist innerhalb von kurzer Zeit möglich.
Blue-Green Konzept kommt zum Einsatz
Was war dem Kunden für sein Projekt besonders wichtig und wie habt ihr technologisch darauf reagiert?
Der Kunde hat ein Team von Entwickler:innen, die die Applikationen betreuen und weiterentwickeln. Um sicherzustellen, dass keine Ausfälle entstehen, weil zum Beispiel ein Fehler in der Programmierung Ärger macht oder ein Update nicht direkt rund läuft, haben wir für dieses Projekt ein so genanntes Blue-Green Konzept entwickelt. Hierfür haben wir in den beiden Rechenzentren zwei baugleiche Umgebungen aufgebaut, die sich nur minimal unterscheiden und parallel betrieben werden.
Blue-Green funktioniert dabei so: Immer nur eine der beiden Umgebungen ist die aktive Produktivumgebung – hier z. B. aktuell Blue. Wird nun im Rahmen der Continuous Delivery durch die Entwickler ein neues Release der Applikation ausgeliefert, wird dieses initial nur an Green ausgeliefert – die inaktive Umgebung. Erst wenn die überarbeitete Software stabil und sicher auf Green – der inaktiven Umgebung – läuft, wird produktiv auf Green umgeschaltet. Das bietet den großen Vorteil, dass sowohl wir als auch die Anwendungsentwickler:innen auf Kundenseite in bestimmten Situationen schneller reagieren können und hat zudem eine höhere Sicherheit. Mithilfe von Blue-Green wird das Testen der Software realitätsnaher.
Eingesetzte Technologien
Welche weiteren Technologien werden eingesetzt?
Kubernetes (K8s) zur Orchestrierung der containerisierten Microservice-Anwendungen und Ansible als Automatisierungs-Werkzeug. Wie oben schon erwähnt, dient unter anderem CI/CD (Continuous Integration/Continuous Delivery) als Voraussetzung zum agilen Arbeiten. Der Vorteil liegt hier darin, dass Codeänderungen ständig integriert werden können. Zudem ermöglicht ein kontinuierliches Testen Fehler im Code frühzeitig zu erkennen und zu beheben.
Hinzu kommt noch Terraform als Infrastructure as code (IaC) Tool. Durch den Einsatz von IaC konnte bereits ab der Beauftragung damit begonnen werden, die Infrastruktur und Systeme zu entwerfen. IaC ermöglicht das Skizzieren der Systeme, ohne dass diese bereits zur Verfügung stehen. Dies war sehr praktisch für das Projekt, denn durch die Pandemie und dem Frachter, der im März im Suezkanal festgesteckt hat, gab es Probleme in den Lieferketten bzw. Lieferengpässe bei Mikrocontrollern, Servern sowie allgemein Hardware. Gleichzeitig ist die Nachfrage nach Servern und Infrastruktur gestiegen. Durch IaC stellte dies für uns kein Problem dar, da wir den Code geschrieben bzw. vorbereitet haben und dann die Systeme aufsetzen konnten, als die Hardware bereitstand.
Welche speziellen Herausforderungen gab es bei diesem Kunden?
Unser Endkunde ist ein großer Konzern, in dem es viele Prozesse gibt, die strikt eingehalten und beachtet werden müssen.
Das hört sich nach einem sehr aufwendigen und komplexen Projekt an
Das stimmt, da zunächst viele Grundsatzentscheidungen, wie beispielsweise das Design der CI/CD Pipeline bzw. der Repositories, getroffen werden mussten.
Zudem mussten wir uns mit anderen Abteilungen abstimmen: Mit unserem Network Operations Team wurden die Anforderungen an das Netzwerk besprochen. Das Technology Operations Team hat den Storage bereitgestellt.
Durch das Projekt konnten wir unsere Rahmenbedingungen, was ein Projekt in dieser Größenordnung angeht, weiterentwickeln und sparen zukünftig bei ähnlichen Projekten einiges an Arbeit. Nach Bereitstellung der Hardware und Provisionierung der virtuellen Maschinen konnte das aus drei Mitarbeitenden bestehende Projektteam die Aufgaben, aufgrund von Standardisierung, Automatisierung und guten internen Prozessen effektiv und schnell umsetzen.
Zudem sind auch andere Operations-Teams mit in der Transition beteiligt. Beispielsweise hat Network Operations die Hardware nach Wunsch von Customer Operations eingebaut und konfiguriert. In wöchentlichen Sprints wurde das Projekt geplant und koordiniert. Der Kunde wurde in wöchentlichen Kunden-Meetings von Beginn an über den aktuellen Projektstatus informiert.
Der gute Informationsfluss hat dem Kunden und uns ein gutes Gefühl gegeben und wir haben ein sehr positives Feedback bekommen.
Wo steht ihr jetzt im Projekt?
Nun befinden wir uns kurz vor dem Livegang. Als nächstes stehen die vielen Tests der Applikationen, Webseite, Deployments an. An deren Abschluss erfolgt dann die Abnahme durch den Kunden.
Nachdem die Applikation funktional ist und die Umgebung getestet wurde, folgen die Planung und Implementierung des 24/7 Betriebs und die Konzeption und Setup des Monitorings. Hier setzen wir je nach Anforderung auf verschiedene Lösungen. Beispiele sind: Prometheus, Grafana, Kibana und eine Nagios-basierte Lösung. Ein weitere Monitoring-Lösung überwacht die Verfügbarkeit aller Kernkomponenten von dutzenden Standorten weltweit. Durch die internationale Ausrichtung des Kunden ist diese Lösung zwingend nötigt. In der Summe werden pro Sekunde hunderte Metriken gemessen und gespeichert.
Vielen Dank für diese spannenden Einblicke in eines eurer Projekte.