Hola a todos, mi nombre es Anton Tupikov, soy el líder del equipo de Desarrollo B2B en Gett.
Gett no es solo un servicio de taxi, sino un mercado dinámico. Este es un sistema altamente cargado: decenas de miles de conductores y millones de clientes en 120 ciudades de todo el mundo utilizan los servicios de Gett todos los días.
Desarrollado inicialmente como una aplicación B2C, Gett en los últimos 6 años ha lanzado varias "nuevas empresas dentro de nuevas empresas". Estos fueron experimentos con entrega, minibuses y ventas corporativas. Muchos de ellos luego se convirtieron en líneas de negocios exitosas. Por ejemplo, una solución B2B funciona con éxito para más de 15,000 grandes corporaciones, incluidas marcas como Google, Visa, Gucci, LVMH, Nestlé, etc.
El próximo gran desafío que enfrenta Gett es obtener una OPI el próximo año. Esperamos que el producto de próxima generación ayude a nuestra OPI a tener éxito, y es por eso que se decidió combinar los esfuerzos de los mejores ingenieros de Gett y Juno para lograr este objetivo. Se trata de desarrollar soluciones de productos innovadores desde cero utilizando la pila de tecnología más avanzada.
Quiero invitar a todos a la reunión en Minsk el 12 de septiembre con el apoyo de la comunidad GoWay, donde mis colegas desarrolladores hablarán sobre los desafíos técnicos que enfrentan a diario y un poco sobre lo que tenemos que enfrentar en el futuro trabajando en nuevas soluciones.

En la reunión, los oradores hablarán sobre los desafíos técnicos que se resuelven en Gett usando el lenguaje Go.
Oradores:
- Sasha Grunin , Gett, ingeniera de backend senior en el equipo de desarrollo B2B - Historia del desarrollo en Go en Gett 2018-2019.
Gett es una historia clásica cuando, después de varios años de desarrollar un monolito, resultó más conveniente dividir el monolito en servicios que refactorizarlo. La transición a Go no es un proceso instantáneo: junto con la evolución de la tecnología, los procesos han evolucionado.
En este informe, Sasha hablará sobre cómo la compañía desarrolló el desarrollo en Go y cómo se organizan los procesos y tecnologías de desarrollo ahora.
- Sagi Kritchbets , Gett, ingeniero de backend senior en el equipo de precios - Ingeniería de vanguardia (charla en inglés)
En Gett, gran parte de la funcionalidad se basa en la ubicación. Durante cada pedido es necesario recuperar datos de configuración basados en ubicaciones GPS. Los servicios geográficos manejan una gran cantidad de solicitudes y se encuentran en la ruta crítica del flujo de negocios. Se requiere que el servicio responda rápidamente y sea escalable. El servicio de área heredada en Gett se basó completamente en PostGIS, lo que condujo a un cuello de botella en DB. Sagi hablará sobre el nuevo servicio de área y su implementación de memoria caché geográfica distribuida en memoria basada en cuadrícula hexadecimal y redis pubsub. Sagi pasará por los algoritmos básicos de geometría utilizados en la solución y los desafíos que tuvimos que superar.
- Ron Ludmer , Gett, desarrollador sénior de backend en el equipo de Matching & Ride Exchange - Semaphore con sede en Redis (habla en inglés)
A medida que aumenta la popularidad del estilo de la arquitectura de microservicios, los riesgos que surgen de trabajar con un sistema distribuido se están volviendo más enfocados. Un problema común es tener acceso a nuestros recursos compartidos desde múltiples instancias simultáneamente, causando inconsistencia de datos. ¿Cuál es la mejor manera de garantizar la corrección con un daño mínimo a la eficiencia? Podría decirse que la forma más simple es usar un mecanismo de bloqueo. Ron hablará sobre diferentes enfoques para el bloqueo distribuido y las formas en que abordaron este problema en Gett, lo que condujo a nuestra solución actual: bloqueo distribuido basado en Redis implementado en Golang.
Además de informes útiles de oradores geniales, encontrará un mar de redes y, por supuesto, ¡fiesta posterior! Para participar,
se requiere
inscripción .
Y ahora un poco sobre por qué, en este momento, decidimos unir fuerzas con Juno.
Dado que desde el principio el segmento Gett B2B fue rentable desde el punto de vista operativo (y sujeto a una estrategia de rentabilidad general), esto llevó a Gett a reestructurar su propuesta de valor en torno a los clientes corporativos y sus necesidades.
En abril de 2017,
Gett compró Juno , una startup que opera en Nueva York con un centro de desarrollo en Minsk. Juno es un servicio de viajes compartidos fundado en 2015. Desde el principio, Juno hizo una fuerte declaración sobre sí mismo: el servicio se lanzó en Nueva York en mayo de 2016, y ya en septiembre de 2016 el número de viajes superó el medio millón al mes. En septiembre de 2017, el número de viajes exitosos superó el millón. Hoy, Juno tiene una de las principales posiciones en el mercado de transporte de taxis en línea en Nueva York.
Gett ahora tiene una prioridad en la actualización tecnológica de soluciones B2B, para estos fines se decidió combinar los esfuerzos de la oficina de Minsk de Juno y los equipos Gett RnD de Moscú e Israel.
La plataforma B2B cierra todos los asuntos corporativos relacionados con el viaje: desde ordenar un auto y monitorearlo, hasta controlar los gastos por parte del departamento financiero y generar informes.
El equipo de Juno, junto con Gett, trabajará en varias áreas del servicio:Conexión del empleadoA menudo, en las corporaciones, los empleados no pueden usar de forma independiente los servicios de taxi y entrega: a veces, una solicitud para un viaje se publica a través de un empleado / servicio separado. Cada compañía tiene sus propias políticas de viaje, y la tarea de Gett B2B es adaptarse lo más posible a las especificaciones de cada cliente: personalizar su cuenta personal, tener en cuenta todas las reglas y políticas.
Control de costosUno de los problemas más tangibles para un cliente que Gett B2B resuelve es la transparencia de los costos de transporte corporativo. La transparencia se refiere no solo a los detalles de las cuentas de cada viaje, sino también a la posibilidad de agregar en un lugar todos los gastos que la corporación asume en cada ciudad o país. En el futuro, estos informes se utilizan, por ejemplo, para reembolsos de IVA.
Gett B2B resuelve estos problemas al automatizar el trabajo manual de los administradores y los servicios financieros. Ya no necesitan recolectar cheques, conocer los detalles del viaje, hacer solicitudes de costos a diferentes departamentos, ingresar información para cada empleado manualmente y verificar dos veces varias veces. Los clientes pueden sincronizar datos SFTP o crear viajes API.
Además, Juno y Gett trabajarán juntos en las áreas de facturación, servicios al consumidor y conexión de proveedores.
La elección
de las tecnologías de soluciones B2B tiene como objetivo resolver de manera eficiente los problemas que enfrenta un producto digital moderno:
- AWS & Kubernetes ayudan a adaptarse a la carga flotante típica del mercado de transporte y escalar de manera efectiva
- para poder deleitar a los clientes con nuevas funciones todos los días se obtiene mediante la entrega continua de procesos vinculados a Jenkins
- en los puntos de mayor carga del sistema, use los recursos de manera eficiente y flexible, es posible mantenerse al día con Go y Redis
- Responda rápidamente e implemente cambios en el producto, brindando una excelente experiencia de usuario, tal vez gracias a React / Redux & Ruby
- ser parte de la arquitectura de microservicios manteniendo la consistencia de los datos, gracias a CloudAMQP
- supervise el rendimiento del producto y asegúrese de que sea de alta calidad y es posible con la ayuda de un ecosistema para monitorear y buscar anomalías, incluidos los procesos de integración PagerDuty, Airbrake, New Relic, Datadog y Continuous con unidad integrada, componente, pruebas de integración para Java / testNG / Selenium
Si tiene preguntas, con gusto las responderé en los comentarios a esta publicación. ¡Y nos vemos en la reunión!