Etsy, ein Online-Marktplatz für einzigartige, handgefertigte und Vintage-Artikel, verzeichnete in den letzten fünf Jahren ein starkes Wachstum. Dann veränderte die Pandemie die Einkaufsgewohnheiten dramatisch, was dazu führte, dass mehr Verbraucher online einkauften. Infolgedessen wuchs der Etsy-Marktplatz von 45,7 Millionen Käufern Ende 2019 auf 90,1 Millionen Käufer (97 %) Ende 2021 und von 2,5 auf 5,3 Millionen (112 %) Verkäufer im gleichen Zeitraum.
Das Wachstum hat die Nachfrage auf der technischen Plattform massiv erhöht und den Traffic über Nacht fast verdreifacht. Und Etsy hatte deutlich mehr Kunden, denen es weiterhin großartige Erlebnisse bieten musste. Um mit dieser Nachfrage Schritt zu halten, mussten sie die Infrastruktur, die Produktbereitstellung und die Talente drastisch erweitern. Während das Wachstum die Teams herausforderte, kam es im Geschäft nie zu Engpässen. Etsys Teams konnten neue und verbesserte Funktionen bereitstellen, und der Marktplatz bot weiterhin ein hervorragendes Kundenerlebnis. Dieser Artikel und der nächste erzählen die Geschichte von Etsys Skalierungsstrategie.
Etsys grundlegende Skalierungsarbeit hatte lange vor der Pandemie begonnen. 2017 trat Mike Fisher als CTO bei. Josh Silverman war kürzlich als CEO von Etsy eingetreten und etablierte institutionelle Disziplin, um eine Wachstumsphase einzuleiten. Mike hat einen Hintergrund in der Skalierung wachstumsstarker Unternehmen und hat zusammen mit Martin Abbott mehrere Bücher zu diesem Thema geschrieben, darunter Die Kunst der Skalierbarkeit
und Skalierbarkeitsregeln.
Etsy verließ sich auf physische Hardware in zwei Rechenzentren, was mehrere Skalierungsherausforderungen mit sich brachte. Mit ihrem erwarteten Wachstum war es offensichtlich, dass die Kosten schnell steigen würden. Dies beeinträchtigte die Agilität der Produktteams, da sie Kapazitäten weit im Voraus planen mussten. Zudem lagen die Rechenzentren in einem Bundesland, was ein Verfügbarkeitsrisiko darstellte. Es war klar, dass sie schnell in die Cloud wechseln mussten. Nach einer Bewertung wählten Mike und sein Team die Google Cloud Platform (GCP) als Cloud-Partner und begannen mit der Planung eines Programms, um ihre vielen Systeme in die Cloud zu verlagern.
Während die Cloud-Migration stattfand, baute Etsy sein Geschäft und sein Team aus. Mike identifizierte den Produktbereitstellungsprozess als einen weiteren potenziellen Skalierungsengpass. Die den Produktteams eingeräumte Autonomie hatte ein Problem verursacht: Jedes Team lieferte auf unterschiedliche Weise. Sich einem Team anzuschließen, bedeutete, eine Reihe neuer Praktiken zu lernen, was problematisch war, da Etsy viele neue Leute einstellte. Außerdem waren ihnen mehrere Produktinitiativen aufgefallen, die sich nicht wie erwartet auszahlten. Diese Indikatoren veranlassten die Führung, die Effektivität ihrer Produktplanungs- und Lieferprozesse neu zu bewerten.
Strategische Prinzipien
Mike Fisher (CTO) und Keyur Govande (Chief Architect) erstellten die anfängliche Cloud-Migrationsstrategie mit diesen Prinzipien:
Minimal lebensfähiges Produkt – Ein typisches Anti-Pattern, das Etsy vermeiden wollte, war, zu viel neu aufzubauen und die Migration zu verlängern. Stattdessen nutzten sie das schlanke Konzept eines MVP, um so schnell und kostengünstig wie möglich zu validieren, dass Etsys Systeme in der Cloud funktionieren, und beseitigten die Abhängigkeit vom Rechenzentrum.
Lokale Entscheidungsfindung – Jedes Team kann unter Aufsicht eines Programmteams seine eigenen Entscheidungen darüber treffen, was es besitzt. Die Etsy-Plattform wurde in eine Reihe von Funktionen wie Compute, Observability und ML-Infra sowie domänenorientierte Anwendungsstapel wie Suche, Bid-Engine und Benachrichtigungen aufgeteilt. Jedes Team führte Proof of Concepts durch, um einen Migrationsplan zu entwickeln. Die Hauptmarktanwendung ist ein bekanntermaßen großer Monolith, daher musste eine teamübergreifende Initiative geschaffen werden, um sich darauf zu konzentrieren.
Keine Änderungen an der Entwicklererfahrung – Etsy betrachtet eine qualitativ hochwertige Entwicklererfahrung als Kern der Produktivität und Zufriedenheit der Mitarbeiter. Es war wichtig, dass die Cloud-basierten Systeme weiterhin Funktionen bieten, auf die sich Entwickler verlassen können, wie z. B. schnelles Feedback und ausgefeilte Beobachtbarkeit.
Es gab auch eine Frist, die mit bestehenden Verträgen für das Rechenzentrum verbunden war, die sie unbedingt einhalten wollten.
Mit einem Partner
Um die Cloud-Migration zu beschleunigen, wollte Etsy externes Fachwissen hinzuziehen, um bei der Einführung neuer Tools und Technologien wie Terraform, Kubernetes und Prometheus zu helfen. Im Gegensatz zu vielen typischen Kunden von Thoughtworks hatte Etsy keine brennende Plattform, die ihr grundlegendes Bedürfnis nach Engagement förderte. Sie sind ein Digital-Native-Unternehmen und hatten einen durch und durch modernen Ansatz für die Softwareentwicklung. Auch ohne ein einziges Problem, auf das man sich konzentrieren musste, wusste Etsy, dass es Raum für Verbesserungen gab. Der Engagement-Ansatz bestand also darin, die gesamte Plattformorganisation einzubetten. Thoughtworks-Infrastrukturingenieure und technische Produktmanager schlossen sich Teams für Suchinfrastruktur, kontinuierliche Bereitstellungsdienste, Datenverarbeitung, Beobachtbarkeit und Infrastruktur für maschinelles Lernen an.
Ein inkrementeller föderierter Ansatz
Das anfängliche „Lift & Shift“ in die Cloud für den Marktplatz Monolith war am schwierigsten. Das Team wollte den Monolithen mit minimalen Änderungen intakt halten. Es verwendete jedoch einen LAMP-Stack und wäre daher schwierig zu re-plattieren. Sie führten eine Reihe von Trockenläufen durch, um Leistung und Kapazität zu testen. Obwohl die erste Umstellung erfolglos war, konnten sie schnell ein Rollback durchführen. In typischer Etsy-Manier wurde das Scheitern gefeiert und als Lernchance genutzt. Es wurde schließlich in 9 Monaten fertiggestellt, weniger Zeit als das ursprünglich geplante ganze Jahr. Nach der anfänglichen Migration wurde der Monolith dann optimiert und optimiert, um sich besser in der Cloud zu positionieren, indem Funktionen wie automatische Skalierung und automatische Behebung fehlerhafter Knoten hinzugefügt wurden.
Inzwischen wurden auch andere Stacks migriert. Während jedes Team seine eigene Reise kreierte, waren die Teams nicht ganz auf sich allein gestellt. Etsy setzte eine teamübergreifende Architekturberatungsgruppe ein, um einen breiteren Kontext zu teilen und den Musterabgleich im gesamten Unternehmen zu unterstützen. Beispielsweise wurde der Suchstapel als Teil der Cloud auf GKE verschoben, was länger dauerte als der Lift-and-Shift-Vorgang für den Monolithen. Ein weiteres Beispiel ist die Data-Lake-Migration. Etsy hatte einen On-Prem-Vertica-Cluster, den sie zu Big Query verschoben und dabei alles daran geändert haben.
Kein Wunder für Etsy, dass nach der Cloud-Migration die Optimierung für die Cloud nicht aufhörte. Jedes Team suchte weiterhin nach Möglichkeiten, die Cloud in vollem Umfang zu nutzen. Mit Hilfe der Architekturberatungsgruppe befassten sie sich unter anderem mit der Frage, wie die Menge an benutzerdefiniertem Code reduziert werden kann, indem auf branchenübliche Tools umgestellt wird, wie die Kosteneffizienz verbessert und wie Feedbackschleifen verbessert werden können.
Abbildung 1: Föderierte Cloud-Migration