Go Gett Juno Meetup - 12. September, Minsk

Hallo allerseits, mein Name ist Anton Tupikov, ich bin der Teamleiter von B2B Development in Gett.

Gett ist nicht nur ein Taxiservice, sondern ein dynamischer Marktplatz. Dies ist ein hoch ausgelastetes System: Zehntausende Fahrer und Millionen Kunden in 120 Städten auf der ganzen Welt nutzen täglich Gett-Dienste.

Gett wurde ursprünglich als B2C-Anwendung entwickelt und hat in den letzten 6 Jahren mehrere „Startups in Startups“ gestartet. Dies waren Experimente mit Lieferung, Kleinbussen und Unternehmensverkäufen. Viele von ihnen wurden später zu erfolgreichen Geschäftsbereichen. Beispielsweise funktioniert eine B2B-Lösung erfolgreich für mehr als 15.000 große Unternehmen, darunter Marken wie Google, Visa, Gucci, LVMH, Nestle usw.

Die nächste große Herausforderung für Gett ist der Börsengang im nächsten Jahr. Wir hoffen, dass das Produkt der neuen Generation zum Erfolg unseres Börsengangs beiträgt. Aus diesem Grund wurde beschlossen, die Bemühungen der besten Ingenieure von Gett und Juno zu kombinieren, um dieses Ziel zu erreichen. Es geht darum, innovative Produktlösungen von Grund auf mit dem fortschrittlichsten Technologie-Stack zu entwickeln.

Ich möchte alle mit Unterstützung der GoWay-Community zu dem Treffen am 12. September nach Minsk einladen, wo meine Entwicklerkollegen über die technischen Herausforderungen sprechen, denen sie täglich gegenüberstehen, und ein wenig darüber, was wir in Zukunft bei der Arbeit an neuen Lösungen zu bewältigen haben.

Bild



Während des Treffens werden die Referenten darüber sprechen, welche technischen Herausforderungen in Gett mithilfe der Go-Sprache gelöst werden.
Referenten:

  • Sasha Grunin , Gett, Senior Backend Engineer im B2B-Entwicklungsteam - Entwicklungsgeschichte auf Go in Gett 2018-2019.

    Gett ist eine klassische Geschichte, als es sich nach mehreren Jahren der Entwicklung eines Monolithen als zweckmäßiger herausstellte, den Monolithen in Dienste zu unterteilen, als ihn umzugestalten. Der Wechsel zu Go ist kein sofortiger Prozess: Mit der Entwicklung der Technologie haben sich auch die Prozesse entwickelt.
    In diesem Bericht wird Sasha darüber sprechen, wie das Unternehmen die Entwicklung auf Go entwickelt hat und wie die Entwicklungsprozesse und -technologien jetzt angeordnet sind.
  • Sagi Kritchbets , Gett, leitender Backend-Ingenieur beim Pricing Team - State of the Art Engineering (Vortrag auf Englisch)

    In Gett ist ein Großteil der Funktionalität standortbasiert. Bei jeder Bestellung müssen Konfigurationsdaten basierend auf GPS-Standorten abgerufen werden. Geo-Services verarbeiten eine große Anzahl von Anfragen und befinden sich auf einem kritischen Pfad des Geschäftsflusses. Es ist erforderlich, dass der Dienst schnell reagiert und skalierbar ist. Der Legacy-Area-Service in Gett basierte vollständig auf PostGIS, was zu einem Engpass bei der DB führte. Sagi wird über den neuen Area Service und seine im Speicher verteilte Implementierung des geografischen Cache auf der Basis von Hex Grid und Redis Pubsub sprechen. Sagi wird grundlegende Geometriealgorithmen durchgehen, die in der Lösung verwendet wurden, und die Herausforderungen, die wir bewältigen mussten.
  • Ron Ludmer , Gett, Senior Backend-Entwickler beim Matching & Ride Exchange Team - Redis-basiertes Semaphor (Vortrag auf Englisch)

    Mit zunehmender Beliebtheit des Architekturstils von Microservices werden die Risiken, die durch die Arbeit mit einem verteilten System entstehen, immer wichtiger. Ein häufiges Problem besteht darin, dass auf unsere gemeinsam genutzten Ressourcen von mehreren Instanzen gleichzeitig zugegriffen wird, was zu Dateninkonsistenzen führt. Was ist der beste Weg, um die Korrektheit bei minimaler Beeinträchtigung der Effizienz sicherzustellen? Der einfachste Weg ist wohl die Verwendung eines Verriegelungsmechanismus. Ron wird über verschiedene Ansätze für verteiltes Sperren und die Art und Weise sprechen, wie sie dieses Problem bei Gett angegangen sind, was zu unserer aktuellen Lösung führt: Redis-basiertes verteiltes Sperren, das in Golang implementiert ist.


Neben nützlichen Berichten von coolen Rednern finden Sie ein Meer an Netzwerken und natürlich Afterparty! Zur Teilnahme ist eine Registrierung erforderlich.

Und jetzt ein wenig darüber, warum wir uns gerade entschlossen haben, uns mit Juno zusammenzutun.

Angesichts der Tatsache, dass das B2B-Segment von Gett von Anfang an operativ profitabel war (und einer Strategie für die Gesamtrentabilität unterlag), veranlasste dies Gett, sein Wertversprechen auf Unternehmenskunden und deren Bedürfnisse umzustrukturieren.

Im April 2017 kaufte Gett Juno , ein Startup in New York mit einem Entwicklungszentrum in Minsk. Juno ist ein 2015 gegründeter Mitfahrservice. Von Anfang an machte Juno eine laute Aussage über sich selbst: Der Dienst wurde im Mai 2016 in New York gestartet, und bereits im September 2016 überstieg die Anzahl der Reisen eine halbe Million pro Monat. Im September 2017 betrug die Anzahl der erfolgreichen Reisen mehr als 1 Million. Heute hat Juno eine der führenden Positionen auf dem Online-Taxitransportmarkt in New York.

Gett hat jetzt eine Priorität bei der technologischen Aktualisierung von B2B-Lösungen. Zu diesen Zwecken wurde beschlossen, die Bemühungen des Junin-Büros in Minsk und der Moskauer und israelischen Gett RnD-Teams zu kombinieren.

Die B2B-Plattform schließt alle geschäftlichen Probleme im Zusammenhang mit der Reise ab: von der Bestellung und Überwachung eines Autos über die Kostenkontrolle durch die Finanzabteilung bis hin zur Erstellung von Berichten.

Das Juno-Team wird zusammen mit Gett an mehreren Bereichen des Dienstes arbeiten:

Mitarbeiterverbindung
In Unternehmen können Mitarbeiter Taxi- und Lieferservices häufig nicht unabhängig voneinander nutzen. Manchmal wird ein Antrag für eine Reise über einen separaten Mitarbeiter / Service gestellt. Jedes Unternehmen hat seine eigenen Reiserichtlinien. Die Aufgabe von Gett B2B besteht darin, sich so weit wie möglich an die Besonderheiten jedes Kunden anzupassen: Passen Sie Ihr persönliches Konto an und berücksichtigen Sie alle Regeln und Richtlinien.

Kostenkontrolle
Eines der greifbarsten Probleme für einen Kunden, das Gett B2B löst, ist die Transparenz der Transportkosten für Unternehmen. Transparenz betrifft nicht nur die Einzelheiten der Konten jeder Reise, sondern auch die Möglichkeit, alle Ausgaben, die das Unternehmen in jeder Stadt oder jedem Land trägt, an einem Ort zusammenzufassen. Zukünftig werden diese Berichte beispielsweise für Mehrwertsteuerrückerstattungen verwendet.

Gett B2B löst diese Probleme, indem es die manuelle Arbeit von Administratoren und Finanzdienstleistern automatisiert. Sie müssen keine Schecks mehr sammeln, Reisedetails herausfinden, Kostenanfragen an verschiedene Abteilungen richten, Informationen für jeden Mitarbeiter manuell eingeben und mehrmals überprüfen. Kunden können SFTP-Daten synchronisieren oder API-Trips erstellen.

Darüber hinaus werden Juno und Gett in den Bereichen Abrechnung, Verbraucherdienste und Lieferantenverbindung zusammenarbeiten.

Die Wahl der B2B-Lösungstechnologien zielt darauf ab, die Probleme eines modernen digitalen Produkts effizient zu lösen:

  • AWS & Kubernetes helfen dabei, sich an die für den Hagelschlag typische Schwimmlast anzupassen und effektiv zu skalieren
  • Kunden jeden Tag mit neuen Funktionen begeistern zu können, wird durch die kontinuierliche Bereitstellung von Prozessen erreicht, die an Jenkins gebunden sind
  • An den Punkten mit der höchsten Systemlast können Ressourcen effizient und flexibel eingesetzt werden. Mit Go und Redis ist es möglich, mit der Zeit Schritt zu halten
  • Reagieren Sie schnell und implementieren Sie Produktänderungen, um eine großartige Benutzererfahrung zu erzielen , möglicherweise dank React / Redux & Ruby
  • Dank CloudAMQP Teil der Microservice-Architektur zu sein und gleichzeitig die Datenkonsistenz zu gewährleisten
  • Überwachen Sie die Leistung des Produkts und stellen Sie sicher, dass die Qualität hoch ist. Mithilfe eines Ökosystems können Anomalien überwacht und gesucht werden, einschließlich PagerDuty-, Airbrake-, New Relic-, Datadog- und Continuous-Integrationsprozessen mit integrierten Einheiten-, Komponenten- und Integrationstests für Java / testNG / Selen


Wenn Sie Fragen haben, beantworte ich diese gerne in den Kommentaren zu diesem Beitrag. Und wir sehen uns beim Treffen!

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


All Articles