Lamoda von innen: Warum der Online-Shop von 300 Ingenieuren

Hallo Habr! Mein Name ist Valentine, ich bin CTO in Lamoda, wo ich fast seit der Gründung des Unternehmens arbeite. In all den Jahren lief das gesamte Team so schnell vorwärts, dass es nicht möglich war, ein bisschen anzuhalten und über uns selbst zu sprechen. Ich denke, die Zeit ist gekommen.



Es mag scheinen, dass Lamoda einer der Pioniere des russischen Internets ist, aber wir sind erst sieben Jahre alt. Seit seiner Gründung im Jahr 2011 bis heute ist unser Unternehmen von 11 auf über 5.000 Mitarbeiter angewachsen. Jeden Monat besuchen> 10 Millionen Menschen unsere Website. Tatsächlich waren wir ein Neuling in der etablierten russischen IT, und so konnten wir in so kurzer Zeit viele geehrte Leute einholen und übertreffen.

Ich hoffe, dass wir Ihnen ein wenig über unsere nützlichsten und interessantesten Erfolge, Misserfolge, Erfahrungen und die täglichen Aufgaben unseres Teams erzählen werden. Wir werden diesen Beitrag als unsere Bekanntschaft betrachten.

Im Jahr 2011 haben wir eigenständig nur die Erstellung von Inhalten und den Kauf von Aktien zum Verkauf entwickelt, alles andere wurde ausgelagert. Jetzt machen wir alles selbst. Wir überwachen den Betrieb unseres eigenen fünfstöckigen Lagers in der Größe eines Fußballfeldes, drei Contact Center und die Lieferung an Kunden. Trotz der Tatsache, dass Russland eine sehr hohe IT-Kultur hat, beginnen große Unternehmen gerade erst, sich mit dem Aufbau einer solchen Infrastruktur zu befassen, und in Lamoda verfolgen sie diesen Weg seit vielen Jahren erfolgreich.

Woraus besteht die technische Backstage von Lamoda? In der Tat sind dies fünf große Einheiten:

  • Entwicklungsabteilung (Abteilung für Automatisierung von Geschäftsprozessen und Entwicklungsabteilung für Online-Shops)
  • IT-Support-Abteilung (Infrastruktur und Sicherheit)
  • Abteilung für Implementierung und Support von ERP-Systemen
  • Service-Support-Abteilung
  • Daten- und Analyseabteilung



Alles in GO


Diese Geschichte handelt von den Leuten, die eine E-Commerce-Plattform entwickeln und in ihrer Freizeit mit Motos fahren und Führungen durch Craft Beer Bars machen.

In der E-Commerce-Entwicklungsabteilung erstellen die Plattformen alles, was Lamoda-Kunden täglich verwenden: die Desktop- und Mobilversionen der Website und Anwendungen für iOS und Android. Die Komplexität der Arbeit liegt nicht in der Implementierung von Funktionen für den Benutzer. Das Team muss neue Funktionen so schnell wie möglich, jedoch ohne Qualitäts- und Stabilitätsverlust, einführen und Projekte in vier Ländern unterstützen: Russland, Kasachstan, Ukraine und Weißrussland. Bisher können Mitarbeiter dieser Abteilung den Service bei Bedarf jede Woche ausführen und unter dem Motto "Everything in GO" arbeiten.


Die Teams sind hauptsächlich nach Plattformen unterteilt (Desktop, mobile Website, mobile Apps). Außerdem gibt es vier Teams für Backend-Services. Jedes Team besteht aus Front- und Back-Entwicklern, Analysten, Testern und einem Produktmanager.

Um Änderungen so oft wie möglich zu liefern, praktizieren wir diesen Ansatz für Entwicklungsiterationen: Zu Beginn des Sprints stellen wir eine Hypothese auf und veröffentlichen neue Funktionen in der Produktion. Wir testen sie, um festzustellen, ob die Innovation für das Produkt von Vorteil ist und ob das Leben der Lamoda-Benutzer besser wird. Zum Beispiel haben wir vor nicht allzu langer Zeit gelernt zu zeigen, wie viel eine Person, die von einer Person angesehen wurde, kürzlich gekauft wurde. Zu diesem Zweck haben wir die Produktaufgabe übernommen, das MVP darin gefunden und die schnellste Implementierungsstrategie festgelegt. Bevor wir alles in der Produktion einführten, stellten wir fest, dass die Steigerung der Conversion das Erfolgskriterium sein würde. Gemäß den Ergebnissen des A / B-Tests ist die Umwandlung in der Gruppe, in der das Merkmal eingeführt wurde, höher.

Vor einiger Zeit begann Lamoda einen massiven und schnellen Übergang zu Microservices. Was gibt uns das? Die erste ist eine niedrige Einstiegsschwelle für einen neuen Entwickler oder Spezialisten aus einem anderen Team. Die zweite ist die einfache Unterstützung und Änderung von Microservice-Systemen, sodass der Workflow nicht nur schmerzhaft, sondern auch interessant ist. Aber eine kleine Anzahl von Monolithen (zum Beispiel das System, das für die Verteilung von Aufträgen verantwortlich ist) lebt immer noch bei uns, und im Moment ist es schwierig und unpraktisch, sie loszuwerden.

Wir sammeln Lamoda von Grund auf ohne SMS und Registrierung


Jeder weiß, dass es keine Arbeit ohne Fehler gibt. Jedes Mal, wenn wir das Problem lösen und den Code starten, hoffen wir, dass es hier ist, Glück und dann keine Erfahrung mehr. In Bezug auf die Erfahrung ist anzumerken, dass die Mitarbeiter der Entwicklungsabteilung für E-Commerce-Plattformen wie echte Kämpfer Lamoda buchstäblich von Grund auf neu zusammenstellen können. Es kam vor, dass unser Cluster aufgrund falscher Netzwerkeinstellungen entschied, dass es sich nicht mehr um einen Cluster handelt, und sich weigerte, zu existieren. Es war ein Glück, dass es Nacht war, und in vier Stunden gelang es uns, Lamoda Leben einzuhauchen. Wir haben andere Geschichten.



Timur Nurutdinov, Entwicklungsleiter der E-Commerce-Plattform:

Bevor wir mit der Arbeit an der neuen Funktionalität begannen, setzten wir uns wie üblich zusammen, um zu bewerten, welche Ressourcen wir benötigten. An dem Projekt waren vier Teams beteiligt. Wir haben die Prioritäten anderer Aufgaben, den Urlaubsplan der Kollegen und die Arbeitskosten berücksichtigt. Als Ergebnis haben wir 32 Wochen.

Acht Monate, um eine Funktion zu implementieren. Das klingt wild. Mit Hilfe einfacher Änderungen konnten wir die Markteinführungszeit auf 4 Wochen verkürzen, und genau das haben wir getan.

Der Trick der Plattformteams besteht darin, dass sie sowohl vorne als auch hinten arbeiten können. So arbeiten sie in unserer Abteilung. Im Backend müssen jedoch Änderungen an vielen integrierten Systemen vorgenommen werden, und die Kompetenzen des Plattformteams lassen dies nicht zu. Wir haben das Sizes-Projekt gestartet, um dem Kunden die detailliertesten Dimensionsraster zur Verfügung zu stellen, und wollten nicht warten. Zuerst musste ich herausfinden, welche Systeme geändert werden mussten, dann stellten wir ein kleines Team mit den entsprechenden Kompetenzen zusammen. Also haben wir den Block entfernt, um auf Ressourcen von anderen Plattformteams zu warten, und ein Produktteam zusammengestellt. Was die Aufgaben angeht, haben wir nach unserer eigenen bewährten Methode gehandelt - wir haben große Aufgaben in kleinere aufgeteilt, sie erstellt, in das Produkt gerollt und unsere Hypothesen an Benutzern getestet, um zu verstehen, ob wir uns in die richtige Richtung bewegen. Nach einem so erfolgreichen Experiment mit der Schaffung eines Produktteams planen wir, Teams in Bereichen zu organisieren, in denen Mitarbeiter eine Einheit bilden, und eine bestimmte Richtung zu entwickeln, beispielsweise die Lieferung.

Lagerautomatisierung und 15-minütige Lieferintervalle


Die Automatisierungsmitarbeiter haben keine Zeit, sich zu langweilen, und die Aufgaben hier sind nicht trivial. Zum Beispiel, wie man Millionen von Waren mit der gleichen hohen Qualität von Inhalten (Automatisierung eines Fotostudios) auf die Website hochlädt, wie man alle Bestellungen von der Website verarbeitet und berücksichtigt, unter Berücksichtigung von Hunderten von Marktpartnern und vier GUS-Ländern, wie man eine Bestellung in einem fünfstöckigen Lager in drei Stunden abholt. wie man die Lieferung an den Kunden am nächsten Tag in seinem gewählten 15-Minuten-Intervall in 600 Städten nur in Russland realisiert. Und zum Nachtisch verkaufen sie diese ganze Farm an B2B-Partner und die Marketplace-Richtung.

Die Arbeit wird hauptsächlich in PHP erledigt. Für die Lagerautomatisierung verwenden wir Java plus Docker / Kubernetes, Atlassian Stack, PostgreSQL, RabbitMQ.







Wir haben ein Bucket-System für die Planung von Sprints in unserer Abteilung: 60% sind ein Projekt-Bucket, 20% sind technische Schulden, 10% des Sprints werden vorrangigen Bugs zugewiesen und 10% sind, dass etwas von außen fliegt. Unter anderem Backlog-Pflege, Online-Planung Poker, Stand-up, Retro, Code Review 360, Erfassung und Analyse grundlegender Metriken, Überwachung (Prometheus, Grafana, Icinga, Kibana) im Allgemeinen ist alles wie in den besten Häusern der Pariser Entwicklungsteams.

Hier sind ein paar lustige Geschichten von Pavel Savelyev, Leiter der Abteilung für die Automatisierung von Geschäftsprozessen.

Es ist unmöglich, alles zu testen und zu berücksichtigen, da die Menschen auf die eine oder andere Weise an jedem Geschäftsprozess teilnehmen. Und Menschen sind, wie Sie wissen, rationale Wesen und versuchen immer, listige Berührungen zu finden, die ihnen das Leben erleichtern. Aber wenn dieselben Vorstellungen gegen den beschriebenen Geschäftsprozess verstoßen, passieren lustige Geschichten.

Einmal haben wir festgestellt, dass das System, das für die Verteilung von Waren in einem Lager verantwortlich ist, in einer Minute hundertmal mehr Scans erhält als gewöhnlich. Es stellte sich heraus, dass die Lagermitarbeiter ein Hack-System fanden und beschlossen, ihre Arbeit zu erleichtern. Sie gingen zum Mittagessen und klemmten einen Knopf am Scanner, damit sie nicht aus der Benutzersitzung geworfen wurden. Und dieser Work-Hack würde weiter funktionieren, aber in einem der Kleinigkeiten (einer speziellen Schachtel für Waren im Lager) gab es viele kleine Gegenstände. Der Scanner verarbeitete wie das Maschinengewehr von Maxim Waren aus dem unglücklichen Gewehr, was zu einem starken Lastsprung, Systemfehlern und der Erkennung eines offensichtlichen Fehlers durch die Entwickler führte. Natürlich haben wir einen Fehler behoben, aber ich denke, dass die Lagerarbeiter uns nicht langweilen und sich etwas Neues einfallen lassen werden.

Der zweite Fall ereignete sich ebenfalls im Lager. Diese Geschichte heißt "43 Fun T-Shirts". Es ist nicht immer sofort möglich, die Komplexität des Algorithmus zu erkennen, insbesondere wenn Sie das Rucksackproblem lösen und N Objekte in einem bestimmten Volumen optimal platzieren müssen (dreidimensionales Packproblem). Es stellte sich heraus, dass, wenn 43 absolut identische T-Shirts in unser Lager gelangen, das für das Verpacken der Waren verantwortliche System für diesen Fall so viele Verteilungskombinationen generiert, dass es für den Speicher kitschig genug ist. Wir haben den Algorithmus überprüft und haben keine Angst mehr vor identischen T-Shirts - aber was passiert, wenn Hunderte Paar Socken auf die Verpackung gelangen und welche Hersteller sich entscheiden, jeweils eines zu verkaufen? Es lohnt sich zu überlegen ...

Konzentrieren Sie sich in jeder unverständlichen Situation auf Daten


Die Änderungen in Bezug auf die Analytik in Lamoda sind längst überfällig, und in diesem Jahr haben wir begonnen, unterschiedliche analytische Abteilungen mit unserer analytischen Infrastruktur und unseren Gewohnheiten in einer großen Abteilung zu kombinieren. Warum? Der Hauptgrund ist, dass Mitarbeiter in unterschiedlichen Analyseteams häufig dieselbe Arbeit erledigen, jedoch auf unterschiedliche Weise, und dann nicht klar ist, auf welche Daten sie sich konzentrieren sollen. Unterschiedliche Daten - dies ist im Allgemeinen normal, da die Teams unterschiedliche Aufgaben und Voraussetzungen haben, Sie jedoch viel Zeit aufwenden müssen, um sie zu verstehen.

Die Mitarbeiter der Abteilung sind echte Evangelisten, dass alle Entscheidungen im Unternehmen auf der Grundlage von Daten getroffen werden müssen. Deshalb untersuchen sie hier jeden Tag enthusiastisch Geschäftsphänomene in den Daten, analysieren und extrahieren Wert aus den Daten und bewerten, wie sie angewendet werden können. Das Hauptwerkzeug ist SQL sowie Spark, Hadoop, Python für die Datenanalyse, Excel, SAP BusinessObjects für die Berichterstellung und Tableau für die Visualisierung.

Eine der wichtigsten Aufgaben des Teams ist die Personalisierung des Kundenerlebnisses: Wir erstellen eine Lösung, bei der jedem Benutzer die relevanteste Liste von Waren und Angeboten angezeigt wird und alle unsere Dienstleistungen wie bisher individuell an jeden einzelnen Kunden und nicht an die Gruppe angepasst werden.

Sergey Gilev, Leiter der Abteilung Daten und Analytik:

Die Analytikabteilung steht derzeit vor zwei großen Aufgaben: Die erste ist die Konsolidierung der vielfältigen Wirtschaft, die wir vor dem Zusammenschluss hatten. Für eine weitere effektive Arbeit benötigen wir gemeinsame Metriken, analytische Infrastrukturen und Prozesse. Das zweite Ziel ist ein Projekt zur Erstellung von analytischen Dashboards, die den „Zustand“ eines bestimmten Prozesses oder des gesamten Unternehmens beschreiben. Daher bemühen wir uns, die Verfügbarkeit von Daten für Entscheidungsträger erheblich zu verbessern und jedem unseren Arbeitsansatz beizubringen: Konzentrieren Sie sich auf Daten in jeder unverständlichen Situation.

Die Geschichte des großen Umzugs: Wie wir unser eigenes Lager unbemerkt von Kunden eröffnet haben


Die schrittweise Aufgabe des Outsourcings führte dazu, dass es Zeit war, unser eigenes Lager in Betrieb zu nehmen. Neben allen Vorbereitungen für die Automatisierung von Betriebsprozessen im neuen Lager haben wir uns zum Ziel gesetzt, die Reichweite nicht zu reduzieren und auf keinen Fall den Verkauf zu stoppen. Unsere Experten haben eine Lösung entwickelt, die auf der Schaffung zusätzlicher „virtueller“ Lager basiert. Während des gesamten Umzugs hatten wir drei Arten von Lagern: alte, neue und unterwegs. Da die Waren schrittweise von LKW-Gruppen transportiert wurden, wurde der Bestand, der in der nächsten Charge landete, in ein „virtuelles“ Lager umgeladen. Wir hatten einen Lade- und Entladeplan, sodass wir genau wussten, wie lange der Lagerbestand sein würde, und die Kunden auf den richtigen Liefertermin für die Bestellung ausrichteten.

Wir haben auch einen kniffligen Algorithmus entwickelt und implementiert, der es uns ermöglicht, die Bewegungsgeschwindigkeit auszugleichen und den Empfang aller bestellten Waren in einer Lieferung zu organisieren: Wenn eine Person mehrere Waren bestellt hat, die sich physisch in verschiedenen Lagern befinden könnten, haben wir versucht, die vollständige Montage der Bestellung in einem Lager zu organisieren. Der Vorteil war das Lager des Partners, da der Montageprozess dort bereits getestet wurde.

Die Arbeiten zur Eröffnung unseres eigenen Lagers waren drei Monate lang in vollem Gange, wobei kein Kunde verletzt wurde.

Vorbereitung auf den Black Friday oder wie wir in der Zeit der Einkaufssucht überleben


Vor ein paar Jahren hatten wir Angst vor dem Schwarzen Freitag als gruseligem Monster. Wir hatten keine Ahnung, wie unsere Systeme auf einen solchen Auftragsstrom reagieren würden. Die ständige Arbeit an Refactoring und Infrastrukturentwicklung hat unsere Systeme jedoch stabilisiert und so vorhersehbar wie möglich gemacht. Der letzte schwarze Freitag war der langweiligste Tag des Jahres. Spezialisten für Schlüsselsysteme und DevOps saßen einfach am Tisch, spielten Videospiele oder schauten Filme und beobachteten den Zustand unserer Infrastruktur mit nur einem Auge. Die Vorbereitungen für diesen Tag sind jedoch etwas anders.

Wir planen Stresstests basierend auf Geschäftsprognosen. Anschließend konfigurieren Entwickler und Administratoren die Systeme so, dass sie die Tests bestehen. Mehrere Monate lang Tests, Abstürze, Korrekturen und erst danach glauben wir, dass wir für eine Welle von Benutzern und Bestellungen bereit sind.




Kriegsraum - unser Operationszentrum am Schwarzen Freitag

Die Entscheidungen, die wir treffen, um den Schwarzen Freitag zu überleben, hängen von den Engpässen ab, auf die wir beim Testen stoßen. Vor einigen Jahren haben wir Netzwerk-Switches physisch ersetzt, um Bandbreitenprobleme zu beseitigen. Eine andere Aktion, die wir normalerweise ausführen, um die Last zu reduzieren, ist das Deaktivieren von Subsystemen, die nicht kritisch sind.

Zusammenfassung


In all den Jahren haben wir versucht, unseren Workflow ständig zu verbessern und zu vereinfachen, Feedback von Mitarbeitern des Unternehmens zu sammeln, Bottom-up-Kanäle einzurichten und neue Ideen und Konzepte umfassend zu unterstützen.

Jemand wird sagen, dass Lamoda ein absoluter Zoo von Technologien und Systemen ist. Wir scherzen oft selbst über dieses Thema und sagen: "Fragen Sie besser, was wir nicht verwenden." In dieser Angelegenheit ist eine wesentliche Tatsache, dass wir den Stack und die Technologien ständig weiterentwickeln und gleichzeitig keine gedankenlose Wahl treffen. Dies hilft uns bei der Überprüfung der Architektur jedes neuen Service und Projekts, eines Leitfadens für das vorhandene Fachwissen der Mitarbeiter sowie bei der Wartung des Technologie-Radars , dessen Details und Argumente wir im nächsten Beitrag gerne mitteilen werden. Und wir freuen uns auch, dieses Thema zu feiern.

Source: https://habr.com/ru/post/de426501/


All Articles