Containerisierung von tutti.ch: Verwalten und Skalieren leicht(er) gemacht

11.08.2022

tutti.ch war in den letzten Jahren viel in Bewegung. Ein besonders herausforderndes Projekt war die Migration der Legacy-Einrichtung in die AWS-Cloud.

Dieser Umzug löste zwar viele der Probleme, die mit dem vorherigen On-Premise-Ansatz verbunden waren, aber nicht alle. Junze Bao, Site Reliability Engineer für General Marketplaces bei der SMG Swiss Marketplace Group, gab uns einen Einblick in eine kürzlich durchgeführte Migration und die damit verbundenen Erfolge und Herausforderungen. 

Kubernetes? Kubernetes!

Obwohl tutti.ch in die Cloud migriert wurde, handelte es sich eher um einen Lift-and-Shift-Ansatz. Es wurden viele, aber nicht alle Probleme gelöst, die tutti.ch hatte, als sie noch mit Legacy arbeiteten. (Hier könnt ihr alles über diesen grossen Umzug in einem unserer früheren Blogbeiträge lesen). Das Hinzufügen neuer Applikationen war immer noch relativ langsam und umständlich, und die Entwickler waren zu sehr von den Systemingenieuren abhängig, wenn es ums Deployment von Applikationen ging. Ausserdem nimmt die gemeinsame Nutzung einer einzigen Testumgebung durch alle Entwickler viel Flexibilität und Autonomie weg. Diese und andere Faktoren machten es notwendig, eine noch bessere Lösung für tutti.ch zu finden. Hier kommt Kubernetes ins Spiel. Kubernetes ist eine moderne Container-Orchestrierungsplattform. Sie wurde erstmals 2014 veröffentlicht und erleichtert die Verwaltung, das Deployment und die Skalierung unserer Applikationen. Zahlreiche Unternehmen setzen sie ein, da die Containerisierung von Applikationen eine Vielzahl von Problemen löst

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery.

Zusammenfassend lässt sich sagen, dass tutti.ch in die Cloud verlagert wurde, die Applikationen aber weiterhin als einzelne Prozesse auf einer virtuellen Maschine (die einen physischen Server repräsentiert) bereitgestellt sind. Das Hinzufügen neuer “Server” oder die Skalierung bestehender war mit viel manueller Arbeit verbunden, weshalb der Wechsel zu Kubernetes der nächste logische Schritt war, um Prozesse zu automatisieren.

Container zu Weihnachten

Junze kam im Mai letzten Jahres zum Team von tutti.ch und begann bereits zwei Wochen nach seinem Start mit der Arbeit an diesem Projekt. Dies stellte für ihn eine doppelte Herausforderung dar, da er zwar Erfahrung mit Kubernetes hatte, aber noch nicht mit dem tutti.ch-Ökosystem vertraut war und über keinerlei Erfahrung mit dem AWS-Cloud-Service verfügte. Trotz dieses herausfordernden Starts in eine neue Rolle gelang es Junze und dem Team, die erste Runde dieses Projekts noch vor der Winterpause zu beenden. Er arbeitete eng mit Andor Uhlár zusammen, der den Backend-Service vorbereitete und ihn containerisierte, damit Junze die Infrastrukturplattform einrichten konnte. Andor und Pawel (den ihr vielleicht noch aus dem grossen tutti.ch-Migrationsartikel kennt) waren auch eng in die Auswahl der Architektur eingebunden. Nach der Einrichtung der Infrastruktur und mit Hilfe der Backend- und Frontend-Teams konnte Junze dann alle “Non-Legacy-Dienste” auf die Plattform verlagern und dafür sorgen, dass jeder zu Weihnachten einen Container bekam. Natürlich muss an dieser Umstellung noch gefeilt und die Funktionalitäten stetig verbessert werden, aber die positiven Auswirkungen sind bereits spürbar.

Worth the Hype

Durch den Einsatz dieser Container-Orchestrierungsplattform wird die Verwaltung und Skalierung von Applikationen erheblich erleichtert. Die automatische Skalierung von Applikationen reduziert die Cloud-Ressourcen in Zeiten mit geringem Datenverkehr und senkt so die Kosten. Auch das Deployment erfolgt kontinuierlich und automatisch und erfordert eigentlich keine manuelle Arbeit mehr. Darüber hinaus wird das Projekt erweitert, um die Erstellung vollständig isolierter Umgebungen aus einer Zweigstelle zu ermögliche. Dadurch kann jeder Entwickler gleichzeitig an verschiedenen Projekten arbeiten, ohne von einer einzigen Testumgebung abhängig zu sein – dies alles ist dank Kubernetes möglich. Der Beginn dieses Projekts war eine ziemliche Herausforderung: Es galt, sich mit einer neuen Umgebung vertraut zu machen und eine neue Plattform einzurichten, für die viele wichtige architektonische Entscheidungen getroffen werden mussten. „Tatsache ist, man muss klein anfangen und sich Schritt für Schritt vorwärts bewegen“, sagt Junze. Nachdem bei der Ersteinrichtung mehr Erfahrung gesammelt wurde, liess sich der Rest viel leichter bewältigen, ohne unvorhersehbare Herausforderungen zu unterschätzen. Die Verbesserungen überwogen jedoch definitiv die anfänglichen Stolpersteine bei der Einrichtung, und wir sind gespannt, wie sich dieses Projekt weiterentwickeln wird. Vielen Dank an Junze, der uns einen Einblick in dieses Projekt gewährt hat!

Neueste Artikel

Fotos vom Management mit und ohne Hintergrundfarbe als ZIP-Datei

Logo zum Download in allen Versionen