Suche
Interview mit Samuel Ferraz-Leite

Spreadshirt auf dem Weg zur DevOps-Kultur: „Es geht immer um Menschen“

Hartmut Schlosser

Samuel Ferraz-Leite

Mit DevOpsCon-Speaker Samuel Ferraz-Leite (Spreadshirt) sprachen wir über den Übergang von einer monolithischen Architektur hin zu Microservices. Und natürlich spielt DevOps dabei eine große Rolle. Ein Patentrezept für den Kulturwandel sieht er jedoch nicht: Jedes Unternehmen sei zu einzigartig.

JAXenter: In deinem Talk auf der DevOpsCon berichtest du darüber, wie sich Spreadshirt vom kleinen Start-Up zum globalen Player entwickelt hat. Eine funktionierende IT-Infrastruktur war und ist dafür sicherlich eine zentrale Voraussetzung. Kannst du hier ein wenig aus dem Nähkästchen plaudern? Auf welchen Technologien baut der Spreadshirt-Shop auf?

Samuel Ferraz-Leite: Absolut richtig, Spreadshirt hat eine Zeit rasanten Wachstums hinter und vor sich. Die ursprüngliche Code-Basis, von unseren Entwicklern liebevoll „Opossum“ genannt, ist ein in PHP entwickelter Monolith. Mit den wachsenden Anforderungen an Skalierbarkeit und dem Anspruch neue Geschäftsfelder, Länder und Kundengruppen zu erschließen, musste das Opossum allerdings mit der Zeit weichen. Teile davon sind noch produktiv, aber mittlerweile baut der Großteil unserer Plattform auf Microservices. Typischerweise handelt es sich um Java Services, meist mit MySQL oder MongoBD als Datenbank und Spring oder Dropwizard als Frameworks. Dabei ist uns wichtig, dass alle unsere Services über REST APIs bedienbar sind.

Bei unseren neueren Frontends handelt es sich fast durchgehend um Single Page Apps. Dabei setzen unterschiedliche Teams aber auf unterschiedliche Frameworks. Unser Shopsystem Spreadshop und der Spreadshirt-Marktplatz bauen auf (m)GWT, der T-Shirt-Designer sowie der Checkout auf das von unseren Ingenieuren entwickelte Framework rappid.js und der Partnerbereich sowie viele interne Tools setzen auf Angular.js.

JAXenter: Nun sind mit wachsender Unternehmensgröße sicherlich die Anforderungen an Skalierung und Delivery-Prozesse gestiegen. Vor welchen Herausforderungen standet ihr – und wie habt ihr sie bewältigt?

Samuel Ferraz-Leite: Am Anfang stand eine wachsende IT vor der Herausforderung, mit dem Unternehmenswachstum und den Anforderungen des Produktmanagements Schritt zu halten. Wir sind bewusst von den Linien-Teams Frontend, Backend und QA weggegangen und haben alle Kompetenzen in agile Teams integriert. Als wir Schritt für Schritt Funktionalität aus dem Opossum ausgebaut und durch neue, flexiblere Microservices ersetzt haben, stieg damit aber natürlich die Komplexität aus operativer Sicht. Routing, Loadbalancing, Authentifizierung, Monitoring oder auch Deployment und Konfiguration wurden zunehmend schwieriger, weil sich einfach immer mehr Microservices in unseren Datenzentren tummeln.

Es gibt im Grunde zwei Dinge, die wir getan haben, um dieser wachsenden Komplexität Herr zu werden: Einerseits haben wir automatisiert, was sich automatisieren lässt. Andererseits haben wir Verantwortung dezentralisiert und in die Entwicklungs-Teams gebracht. Während unser Operations-Team etwa den Zustand unserer VMs ständig im Auge behält und alarmiert wird, wenn ein Service als Ganzes ausfällt, liegt es in der Verantwortung der Entwickler, die Telemetrie ihrer Services auszuwerten und zu monitoren.

Im Bereich Automatisierung hat unser Operations-Team hart gearbeitet, um mithilfe von Puppet eine transparente Virtualisierung aufzubauen und unser internes Tooling zu verwalten. Integrations-Server, Staging-Umgebungen und nun auch unser noch recht neuer Release-Prozess werden so gemäß dem Motto „Infrastructure as Code“ gepflegt. Außerdem haben wir gerade bei unserer Produktions-Infrastruktur viel technische Schuld abgebaut, zum Beispiel im Bereich Routing.

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.

JAXenter: Nun geht es bei DevOps ja nicht nur um technologische Veränderungen, sondern auch um einen kulturellen Wandel. Wie wird bei euch DevOps praktiziert?

Samuel Ferraz-Leite: Wir sind unsere größten Probleme Schritt für Schritt angegangen. Früher haben wir mit einem gefühlten Mangel an QA-Ingenieuren gekämpft. Wir könnten zwar immer noch mehr gute Leute brauchen, aber im Zuge der Stärkung des agilen Gedankens haben wir jeweils einen QA-Experten in die Entwicklerteams integriert und die Verantwortung für die Qualitätssicherung an das komplette Team übertragen. Dadurch haben Entwickler ganz natürlich angefangen zu lernen, wie man gute Integrations- und Akzeptanztests schreibt. Wenn heute ein neuer Service designt wird, stellt auch immer jemand aus dem Team Fragen wie: Wie testen wir das? Welche Mocks brauchen wir dafür? Wie setzen wir unsere Test-Umgebung auf?

Ähnliche Erfahrungen machen wir jetzt mit operativen Themen. Wir haben den Teams die Möglichkeit und die Verantwortung gegeben, ihre eigenen Services und Anwendungen auszurollen und zu monitoren. Und auch hier werden jetzt in jeder Phase von Software-Projekten selbstverständlich Fragen bedacht wie: Welche Metriken werden wir brauchen? Wie rollen wir die Konfiguration in Produktion aus? Wie stellen wir Redundanz oder Replikation sicher?

Wir haben die Erfahrung gemacht, dass gemeinsam vom Team getragene Verantwortung effektiver ist als getrennte und entkoppelte Einheiten für Qualitätssicherung und Operations. Da die Entwickler bei uns die Probleme des Betriebs aus eigener Erfahrung kennen, interessieren sie sich natürlich für Themen rund um DevOps.

JAXenter: Was kannst du Unternehmen raten, die ebenfalls vor Transitionsprozessen stehen: Wie lässt sich eine DevOps-Kultur etablieren?

Samuel Ferraz-Leite: Zunächst einmal würde ich immer erst kritisch hinterfragen, was sich ein Unternehmen konkret davon erhofft. Welches Problem möchte es dadurch lösen? Ich bin kein Fan davon, Veränderungen ohne guten Grund zu erzwingen. Die Anforderungen und Probleme sind meines Erachtens von Unternehmen zu Unternehmen sehr unterschiedlich. Bei Kultur geht es ja immer um Menschen − und die bilden in jedem Unternehmen eine einzigartige Dynamik.

Um jetzt vielleicht trotzdem noch die Antwort zu geben, auf die Du vielleicht gehofft hast, möchte ich drei Gedanken teilen. Erstens würde ich dringend raten, auf einen möglichst vielfältigen Pool an Ingenieuren im Unternehmen zu achten. Je vielfältiger die Sicht- und Denkweisen, desto wahrscheinlicher ist es, dass sich auch genügend Leute für eines der vielen unterschiedlichen Themen interessieren und die entsprechenden Nischen im Team ausfüllen.

Zweitens würde ich das IT-Management in die Pflicht nehmen. Die IT wird zu oft von Produktanforderungen und Features getrieben. Wenn es dann jemanden aus dem Management gibt, der sich für die Themen der Peripherie, also etwa Security, Clean Code oder DevOps, ehrlich interessiert und diese fördert, dann wird das meiner Erfahrung nach auch von genügend Ingenieuren wahrgenommen.

Drittens würde ich davon abkommen, die Verantwortungsbereiche von Einzelpersonen zu definieren und sie stattdessen selbst organisierenden Teams übertragen.

JAXenter: Und worum wird es in deiner DevOpsCon Session gehen?

Samuel Ferraz-Leite: Am Pokertisch würde ich jetzt sagen: Wer sehen will, muss zahlen. Scherz beiseite, es wird genau um die Themen gehen, über die wir gesprochen haben. Ich möchte meine Erfahrungen bei Spreadshirt mit dem Publikum teilen. Mir ist bewusst, dass ich keine Patentlösung anbieten kann, weil jedes Unternehmen, jede Aufgabe und jede Gruppe von Menschen einzigartig ist. Trotzdem bin ich zuversichtlich, dass unsere Kollegen von den Erfahrungen bei Spreadshirt profitieren können. Ich werde Einblicke in unsere Infrastruktur und unser Tooling geben − gepaart mit konkreten Erfahrungen, was gut für uns funktioniert und was nicht. Zusätzlich zum Technischen gehe ich auch auf die Management-Sicht ein.

Und ich habe eine Kernbotschaft, die ich vermitteln möchte. Diese werde ich jetzt aber nicht verraten. Ich freue mich schon sehr auf den Vortrag und ganz besonders auf die Gespräche und den Gedankenaustausch, der sich im Nachgang immer ergibt.

JAXenter: Vielen Dank für dieses Interview!

Samuel Ferraz-Leite ist ein erfahrener Agile Coach und Software-Ingenieur. Er interessiert sich leidenschaftlich für DevOps-Kultur und die Verbesserung von Zusammenarbeit und Produktivität. Er hat Erfahrung sowohl in Hands-on-Engineering als auch in Management und Coaching. Er hat aktiv als Software-Ingenieur, Architekt,  Test-Automasitisierung-Ingenieur, Scrum Master, Freelance Consultant und Interim-Product-Owner gearbeitet. Nach zwei Jahren als Post Doc am Max-Planck-Institut für Mathematik in den Naturwissenschaften wurde er von Spreadshirt eingestellt. Dort arbeitet er zurzeit als Delivery Engineer im IT-Management. In dieser Rolle ist er verantwortlich für Agile Coaching, Infrastruktur und internes Tooling sowie den Übergang der Unternehmenskultur hin zu Continuous Delivery.

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: