Flexible, neue Web-Technologien wie zum Beispiel PWAs können ihr Potential im E-Commerce nur entfalten, wenn die Basis stimmt – und die beginnt bei der Infrastruktur. Wir erklären, wie wir mithilfe von Amazon ECS (Elastic Container Service) für unseren Kunden Mey eine moderne und skalierbare Infrastruktur in einem kostengünstigen Rahmen für die Magento E-Commerce-Plattform geschaffen haben.
Die Voraussetzungen
Der erfolgreiche GoLive des neuen Webshops von mey story war zugleich auch der erste Launch eines Kundenprojekts, das auf der mächtigen PWA-Technologie (Progressive Web Apps) fußt. Neuartige Technologie-Ansätze wie diese müssen nicht nur aufwändig mit den eigenen Entwicklungsmethoden verzahnt werden, sondern erfordern auch ein Umdenken sowie neue Lösungsansätze für die benötigte Infrastruktur. So ergeben sich bei der Umsetzung einer modernen E-Commerce-Infrastruktur einige Voraussetzungen, die zunächst erfüllt werden müssen.
Eine geeignete PWA Entwicklungsumgebung
Neben dem benötigten Knowhow bei der Entwicklung eines PWA-fähigen Webshops ist natürlich auch eine gewisse Basis an Tools notwendig. Als Entwicklungsumgebung für den PWA-Kern haben wir daher Vue Storefront gewählt. Diese Applikation ist ein umfangreiches Framework, welches das Gerüst für sämtliche PWA-Funktionen (Offline-Verfügbarkeit, endgeräteunabhängige Installierbarkeit etc.) und ein passendes, responsives Frontend liefert.
In Docker-Containern gekapselte Applikationen
Ein wesentlicher Bestandteil eines solchen Infrastruktur-Setups ist die Verwendung von Docker-Containern. Die Docker-Technologie stellt einzelne Prozesse in einem gekapselten Container bereit, sodass diese dezentral und unabhängig voneinander ausgeführt werden können. Diese Vorgehensweise hat gleich mehrere Vorteile. Zum einen kann die System-Umgebung leichter bereitgestellt werden, da jedes Tool und jeder Prozess bereits innerhalb ihrer eigenen „Kapsel“ funktionieren. Die Container müssen nur noch mit den richtigen Schnittstellen orchestriert werden. Dies mindert zum anderen auch zusätzlich den Entwicklungsaufwand des Projekts, da die Entwickler mit den gleichen „Kapseln“ wie das Produktivsystem arbeiten können. Außerdem sind die Container nicht an ein bestimmtes System gebunden und können deshalb auf vielen unterschiedlichen Systemen bereitgestellt und verwendet werden. Das kann vor allem bei der Entwicklung eines neuen Webshops auf der gleichen Technologiebasis oder bei tiefgreifenden Veränderungen und/oder Erweiterungen einer E-Commerce-Plattform nützlich sein.
Die dedizierte Verwendung von Microservices
Ganz im Sinne der Funktionsweise von Docker und PWA ist auch die Bereitstellung von Microservices. Diese Technologie ist die Grundlage einer dezentralisierten E-Commerce-Plattform und bricht monolithische Strukturen auf. Dadurch war es uns möglich, unter anderem das PWA-Frontend und die Datenverarbeitungs-API von Magento zu separieren und zu unterteilen. Dies bringt vor allem bei der Geschwindigkeit des mey story Webshops enorme Vorteile, da spezifisch nur die stark belasteten Services hoch skaliert werden können.
Erste Umsetzungsphase: Proof of Concept und dessen Ergebnisse
Nachdem in aufwendiger Vorarbeit die benötigten Voraussetzungen erkannt und geschaffen wurden, galt es, ein geeignetes Konzept für die Projektentwicklung des mey story Webshops zu erstellen. Für dieses Proof of Concept ergaben sich folgende Maßnahmen und Erkenntnisse:
- Bereitstellung der Anwendung in zwei Docker-Containern – Für eine bessere Lastverteilung und Skalierbarkeit wurde das System in zwei separaten Docker-Container implementiert.
- Host-System in Staging-Umgebung mit nginx Proxy hochfahren – Ein nginx-Webserver, eingesetzt als Reverse Proxy, hat den Vorteil, dass schnell und kostengünstig ein Zielsystem aufgebaut werden kann. Es wird kein aufwendiges Setup mit vorgeschalteten LoadBalancern (wie beim Produktivsystem) benötigt und so die Komplexität gemindert.
- Nachteile dieser Installation nach ersten Tests erkannt – Der Aufbau mit einem herkömmlichen Hosting-System ist bei dieser Installation nicht redundant und hat zudem zwei große Fehleranfälligkeiten:
- Der Ausfall des Host-Systems bewirkt den Ausfall der gesamten Applikation.
- Ein Fehler in einem der Container kann ebenfalls den Ausfall der gesamten Applikation bedeuten.
Zweite Umsetzungsphase: Aufsetzen der Live-Umgebung
Wie an unserem konkreten Beispiel sehr ersichtlich ist das Proof of Concept eine sehr hilfreiche Methode um schwerwiegende Hindernisse bei der Projektentwicklung zu erkennen und zu beheben.
Die wichtigste Erkenntnis unserer Tests: Es musste eine schnelle und kostengünstige Lösung her, die die festgestellten Fehleranfälligkeiten minimiert oder sogar vollständig behebt. Da die Einrichtung einer Kubernetes-Plattform, zur Orchestrierung der Docker-Container, für dieses Setup zu aufwändig ist, blieb nur die Analyse der vorhandenen Systemlandschaft.
Da unser Kunde Mey den Plattform-Hosting-Service AWS (Amazon Web Services) nutzt, bot sich an, einen weiteren AWS-Dienst zur Lösung der Probleme heranzuziehen. Nach eingehender Prüfung haben wir uns für ein Setup mit Amazon ECS (Elastic Container Service) entschieden. Dieser Dienst verfügt über die entsprechenden Skalierungsmöglichkeiten unter Last – sowohl bei den beteiligten Host-Instanzen als auch bei den Containern. Im Betrieb unterzieht ECS die involvierten Container einer ständigen Prüfung und startet bei einer Fehlerrückgabe den betreffenden Container neu. Somit ist Amazon ECS in der Lage, alle festgestellten Fehleranfälligkeiten der ursprünglichen Infrastruktur zu entfernen.
Für eine reibungslose Bereitstellung der einzelnen Container verwenden wir außerdem die Amazon Elastic Container Registry (ECR). Dies hat den wichtigen Vorteil, dass wir das vollständige Setup nahtlos in unser Deployment übernehmen können.
Zukunftsfähigkeit und Zuverlässigkeit in einem
So hat unser Kunde Mey durch die Amazon-Dienste bei der Infrastruktur zwar alles „unter einem Dach“, aber durch die Container-Architektur trotzdem kein monolithisches System, das die Wartung und Erweiterung der Magento E-Commerce-Plattform behindert und auch keine Anfälligkeiten für Flaschenhälse beim Datentransfer hat. Und dieses Setup bietet noch weitere Vorteile: Durch die enorme Flexibilität und Skalierbarkeit sowie die einfach zu ändernde Container-Struktur ist Mey vollkommen zukunftsfähig und kann eine langfristige Digitalisierungsstrategie verfolgen.
Bilder: netz98