Go Gett Juno Meetup - 12 septembre, Minsk

Bonjour à tous, je m'appelle Anton Tupikov, je suis le chef d'équipe du développement B2B à Gett.

Gett n'est pas seulement un service de taxi, mais un marché dynamique. Il s'agit d'un système très chargé: des dizaines de milliers de conducteurs et des millions de clients dans 120 villes du monde utilisent quotidiennement les services Gett.

Développant initialement une application B2C, Gett a lancé au cours des 6 dernières années plusieurs «startups au sein de startups». Il s'agissait d'expériences de livraison, de minibus et de ventes aux entreprises. Beaucoup d'entre eux se sont par la suite transformés en secteurs d'activité prospères. Par exemple, une solution B2B fonctionne avec succès pour plus de 15000 grandes entreprises, y compris des marques telles que Google, Visa, Gucci, LVMH, Nestlé, etc.

Le prochain défi majeur auquel Gett est confronté est d'obtenir une introduction en bourse l'année prochaine. Nous espérons que le produit de nouvelle génération aidera notre introduction en bourse à réussir, et c'est pourquoi il a été décidé de combiner les efforts des meilleurs ingénieurs Gett et Juno pour atteindre cet objectif. Il s'agit de développer des solutions produits innovantes à partir de zéro en utilisant la pile technologique la plus avancée.

Je veux inviter tout le monde à la réunion de Minsk le 12 septembre avec le soutien de la communauté GoWay, où mes collègues développeurs parleront des défis techniques auxquels ils sont confrontés quotidiennement et un peu de ce que nous devrons faire face à l'avenir en travaillant sur de nouvelles solutions.

image



Lors de la réunion, les conférenciers parleront des défis techniques résolus dans Gett en utilisant le langage Go.
Conférenciers:

  • Sasha Grunin , Gett, Ingénieur backend senior au sein de l'équipe de développement B2B - Historique du développement on Go dans Gett 2018-2019.

    Gett est une histoire classique lorsque, après plusieurs années de développement d'un monolithe, il s'est avéré plus judicieux de diviser le monolithe en services que de le remanier. La transition vers Go n'est pas un processus instantané: avec l'évolution de la technologie, les processus autour ont également évolué.
    Dans ce rapport, Sasha expliquera comment la société a développé le développement sur Go et comment les processus et technologies de développement sont désormais organisés.
  • Sagi Kritchbets , Gett, ingénieur principal de backend à Pricing Team - Etat de l'art (parler en anglais)

    Dans Gett, la plupart des fonctionnalités sont basées sur la localisation. Lors de chaque commande, il est nécessaire de récupérer les données de configuration en fonction des positions GPS. Les services géographiques traitent un grand nombre de demandes et sont sur le chemin critique du flux commercial. Il est nécessaire que le service réponde rapidement et soit évolutif. Le service de zone hérité à Gett était entièrement basé sur PostGIS, ce qui a conduit à un goulot d'étranglement sur DB. Sagi va parler du nouveau service de zone et de son implémentation de cache géographique distribué en mémoire basé sur une grille hexadécimale et redis pubsub. Sagi passera par les algorithmes de géométrie de base utilisés dans la solution et les défis que nous avons dû surmonter.
  • Ron Ludmer , Gett, développeur principal du backend de l'équipe Matching & Ride Exchange - Sémaphore basé sur Redis (rapport en anglais)

    À mesure que la popularité du style d'architecture de microservices augmente, les risques qui découlent de l'utilisation d'un système distribué deviennent de plus en plus ciblés. Un problème courant est l'accès à nos ressources partagées à partir de plusieurs instances simultanément, provoquant une incohérence des données. Quelle est la meilleure façon d'assurer l'exactitude avec un minimum de dommages à l'efficacité? On peut dire que le moyen le plus simple consiste à utiliser un mécanisme de verrouillage. Ron va parler de différentes approches du verrouillage distribué et de la manière dont ils ont résolu ce problème chez Gett, ce qui a conduit à notre solution actuelle: verrou distribué basé sur Redis implémenté à Golang.


En plus des rapports utiles de conférenciers sympas, vous trouverez une mer de réseautage et, bien sûr, d'afterparty! Pour participer, l' inscription est obligatoire.

Et maintenant un peu pourquoi, en ce moment, nous avons décidé d'unir nos forces avec Juno.

Compte tenu du fait que, dès le début, le segment B2B de Gett était rentable sur le plan opérationnel (et soumis à une stratégie de rentabilité globale), cela a incité Gett à reconstruire sa proposition de valeur autour des entreprises clientes et de leurs besoins.

En avril 2017, Gett a acheté Juno , une startup opérant à New York avec un centre de développement à Minsk. Juno est un service de covoiturage fondé en 2015. Dès le début, Juno a fait une déclaration forte à son sujet: le service a été lancé à New York en mai 2016, et déjà en septembre 2016, le nombre de voyages dépassait un demi-million par mois. En septembre 2017, le nombre de voyages réussis a dépassé le million. Aujourd'hui, Juno a l'une des positions de leader sur le marché du transport en taxi en ligne à New York.

Gett a désormais une priorité dans la mise à jour technologique des solutions B2B, à ces fins, il a été décidé de combiner les efforts du bureau de Minsk de Juno et des équipes de Moscou et d'Israël Gett RnD.

La plateforme B2B clôt tous les enjeux corporatifs liés au voyage: de la commande et du suivi d'une voiture, au contrôle des dépenses par la direction financière et à la génération de rapports.

L'équipe Juno, en collaboration avec Gett, travaillera sur plusieurs domaines du service:

Connexion des employés
Souvent, dans les entreprises, les employés ne peuvent pas utiliser de manière indépendante les services de taxi et de livraison: parfois, une demande de voyage est publiée par un employé / service distinct. Chaque entreprise a ses propres politiques de voyage, et la tâche de Gett B2B est de s'adapter autant que possible aux spécificités de chaque client: personnaliser votre compte personnel, prendre en compte toutes les règles et politiques.

Contrôle des coûts
L'un des problèmes les plus tangibles pour un client que Gett B2B résout est la transparence des coûts de transport d'entreprise. La transparence concerne non seulement les détails des comptes de chaque voyage, mais aussi la possibilité de regrouper en un seul endroit toutes les dépenses que la société supporte dans chaque ville ou pays. À l'avenir, ces rapports seront utilisés, par exemple, pour les remboursements de TVA.

Gett B2B résout ces problèmes en automatisant le travail manuel des administrateurs et des services financiers. Ils n'ont plus besoin de collecter les chèques, de connaître les détails du voyage, de faire des demandes de coûts aux différents départements, d'entrer manuellement les informations pour chaque employé et de revérifier plusieurs fois. Les clients peuvent synchroniser les données SFTP ou créer des trajets API.

De plus, Juno et Gett travailleront ensemble dans les domaines de la facturation, des services aux consommateurs et de la connexion avec les fournisseurs.

Le choix des technologies B2B Solution vise à résoudre efficacement les problèmes auxquels est confronté un produit numérique moderne:

  • AWS et Kubernetes aident à s'adapter à la charge flottante typique du marché du transport en commun et à évoluer efficacement
  • être en mesure de ravir les clients chaque jour avec de nouvelles fonctionnalités grâce à la livraison continue de processus liés à Jenkins
  • aux points où la charge du système est la plus élevée, utilisez les ressources de manière efficace et flexible, il est possible de suivre le rythme avec Go et Redis
  • Répondez rapidement et implémentez les changements de produits, offrant une expérience utilisateur exceptionnelle, peut-être grâce à React / Redux & Ruby
  • faire partie de l'architecture des microservices tout en maintenant la cohérence des données, grâce à CloudAMQP
  • surveiller les performances du produit et être sûr de la haute qualité et c'est possible avec l'aide d'un écosystème pour surveiller et rechercher les anomalies, y compris les processus d'intégration PagerDuty, Airbrake, New Relic, Datadog et Continuous avec unité intégrée, composant, tests d'intégration pour Java / testNG / Selenium


Si vous avez des questions, je serai heureux d'y répondre dans les commentaires de cet article. Et à la réunion!

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


All Articles