Interview mit Jan Löffler

STUPS.io: Zalandos Open-Source-Framework im Fokus

Hartmut Schlosser

Jan Löffler

STUPS.io ist die Infrastrukturplattform von Zalando, die vom Online-Versandhändler Open Source zur Verfügung gestellt wird. Wofür sich STUPS.io eignet, und wie das Framework dabei hilft, DevOps-Strukturen umzusetzen, haben wir im Rahmen der DevOpsCon 2015 mit Jan Löffler (Head of Platform Engineering, Zalando SE) besprochen.

JAXenter: Zalando gehört zu den umsatzstärksten deutschen Online-Versandhändlern. Keine Frage, dass eine funktionierende IT-Infrastruktur zentral für den Erfolg von Zalando ist. Kannst du uns hier einen kleinen Einblick geben – auf welchen Technologien basiert der Zalando Shop maßgebend?

Jan Löffler: Der Zalando Shop ist hauptsächlich in Java programmiert und teilt sich neben unseren Webseiten und den Mobile Apps in viele kleine Services, sogenannte Microservices auf. Diese Services sind jeweils für einen speziellen Anwendungsfall verantwortlich, wie z.B. Katalogdaten, Kundeninformationen, Wunschliste, Bezahlvorgang, Artikelverfügbarkeitsinformationen, Bestellinformationen oder Produktempfehlungen.
Damit diese Services auch sicher Daten austauschen können, wird jegliche Kommunikation TLS/SSL verschlüsselt und Zugriffe werden über OAuth2 oder OpenID Connect abgesichert.

Für unsere relationalen Datenbanken setzen wir hauptsächlich auf PostgreSQL mit georedundanter Master-Slave- und Sharding-Konfiguration. Als NoSQL-Datenbanken verwenden wir meist Cassandra.

Damit unser Kunde zu jeder Zeit das beste Nutzererlebnis bekommt, verwenden wir Solr als Suchserver und ein Content-Delivery-Network (CDN), um Fotos und Videos möglichst nah zum Kunden zu bringen.

JAXenter: Ihr habt euch für einen Microservice-Ansatz entschieden. Welche Gründe spielten für diese Entscheidung eine Rolle?

Jan Löffler: Damit wir kontinuierlich das Kundenerlebnis verbessern können, müssen unsere über 70 Entwicklerteams selbständig Source-Code-Änderungen durchführen und online stellen können. Das funktioniert nur dann effizient und reibungslos, wenn die Teams untereinander keine oder kaum Abhängigkeiten haben. Daher sind Applikationen bei uns maximal so groß, dass sie von exakt einem Team verantwortet und entwickelt werden. Das stellt – in Verbindung mit den passenden Architekturrichtlinien, wie z.B. REST – sicher, dass unsere Teams ihre Software selbständig bis zu mehrmals täglich ausrollen können, ohne sich großartig mit anderen Teams absprechen zu müssen.

JAXenter: Hier auf der DevOpsCon stellst du das STUPS.io Framework vor. Wie ist das Framework bei Euch im Einsatz?

Jan Löffler: Bei Zalando arbeiten wir in autonomen Teams, die ihre Software eigenständig entwickeln, testen und betreiben. Damit die Selbstorganisation der Teams überhaupt möglich wird, benötigen diese vollen Zugriff auf eine Cloud-Infrastruktur inklusive Cloud-Services. STUPS.io stellt dabei unsere grundlegende Infrastrukturplattform dar. STUPS.io ist ein Open-Source Framework mit vielen interessanten Applikationen und Tools, wie z.B. einem Cloud Formation Deployment-Tool, dem Docker Registry, der Application Registry oder dem Passwort-Rotator.

Des Weiteren unterstützt STUPS unsere Teams dabei, unsere Compliance- und Audit-Anforderungen zu erfüllen sowie unsere Sicherheitsanforderungen einzuhalten. Ein integrierter Audit-Daemon überwacht alle Applikationsinstanzen sowie AWS-Accounts und überprüft, ob unsere Compliance-Anforderungen eingehalten werden. So können wir zu jeder Zeit beantworten, wer wann was wo und warum deployed hat.

JAXenter: STUPS ist Open Source und steht damit jedem zur Verfügung. Wem würdest du die Nutzung von STUPS ans Herz legen? Welche Art von Projekten können davon profitieren?

Jan Löffler: STUPS ist modular aufgebaut, so dass auch nur einzelne Komponenten verwendet werden können. Daher kann es für viele Unternehmen, die AWS verwenden, interessant sein. Zum Beispiel bietet unsere Docker Registry „PierOne“ einige Vorteile im Vergleich zur offiziellen Docker Registry, wie Team-Support, OAuth2-Integration oder Immutable Tags.

Aktuell arbeiten wir auch an der Integration in unsere Private Cloud, die auf Apache Mesos basiert, und wir denken über die Anbindung weiterer Cloud-Anbieter nach. Wer etwas dazu beitragen möchte, ist herzlich eingeladen – der Quelltext ist komplett Open-Source.

JAXenter: Gibt es Pläne, weitere Teile der Zalando-Architektur Open Source zur Verfügung zu stellen?

Jan Löffler: Auf jeden Fall. Die Liste der Open-Source-Projekte auf unserer GitHub-Seite wächst wöchentlich. Vor allem im Infrastrukturbereich haben wir bereits sehr viele unserer Tools als Open Source veröffentlicht. Neben STUPS.io sind vor allem unsere PostgreSQL Tools PGObserver, pg_view und Spilo sowie unsere Monitoring-Lösung ZMON und connexion (unser Python Flask Framework für Swagger basiernde REST-APIs) sehr spannend.

JAXenter: DevOps ist ja momentan ein Trend-Thema. Wenn man einmal den Hype abzieht – was bleibt als Kern der Bewegung übrig? Was ist für dich die Quintessenz, um die es hier geht?

Jan Löffler: Das Wort “DevOps” mag momentan in vieler Munde sein, das Konzept dahinter gibt es aber schon sehr lange und ist erprobt. Im Kern geht es darum, dass Entwicklung und Betrieb von Software Hand in Hand gehen und nicht voneinander getrennt sind. Die jeweilige Umsetzung kann unterschiedlich sein – manche Unternehmen verstehen unter DevOps lediglich die enge Zusammenarbeit zwischen Entwicklern und Administratoren. Bei Zalando sind diese beiden Rollen direkt im Team verschmolzen. Das bedeutet, dass alle Zalando Delivery Teams nicht nur für die Konzeption und Entwicklung ihrer Software verantwortlich sind, sondern auch für das Testen (Sicherstellung der Qualität), Deployment und den Betrieb. Wir folgen damit dem Motto “You build it, you run it” und sind sehr erfolgreich mit diesem Modell.

DevOps macht in Verbindung mit Microservices, Cloud-Infrastruktur und Continuous Delivery noch mehr Sinn. Teams können somit ihre Applikationen selbständig entwickeln, mehrmals täglich ausrollen und ggf. sogar direkt am Kunden testen. Dabei sind sie in der Lage, über die Conversion Rate, die Besuchsdauer oder andere Indikatoren den Erfolg ihrer Applikationsversionen direkt am Nutzer zu messen und auf deren Bedürfnisse zu reagieren. Das bringt in Summe ein besseres Kundenerlebnis und ist deutlich effizienter.

JAXenter: Vielen Dank für diese interessanten Einsichten!

Jan Löffler has been Head of Platform Engineering at Zalando since June 2014 and is responsible for overseeing the company’s system engineering, identity & access management, continuous delivery and Git & deploy teams. He is one of the primary forces behind the company’s “radical agility” approach to tech management and development, which emphasizes autonomy, mastery and purpose for Zalando’s +800 technologists. Jan is co-organizer of Zalando’s Open Source Guild and a regular speaker at open source/tech conferences worldwide. Before joining Zalando he was Head of Development Webhosting & Server at 1&1, a subsidiary of the publicly traded United Internet AG.
DevOpsCon Whitepaper 2018

Free: BRAND NEW DevOps Whitepaper 2018

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Michiel Rook, Christoph Engelbert, Scott Sanders and many more.

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: