Olá pessoal, meu nome é Anton Tupikov, sou o líder da equipe de desenvolvimento B2B em Gett.
Gett não é apenas um serviço de táxi, mas um mercado dinâmico. Este é um sistema altamente carregado: dezenas de milhares de motoristas e milhões de clientes em 120 cidades ao redor do mundo usam serviços Gett todos os dias.
Desenvolvendo inicialmente como um aplicativo B2C, a Gett nos últimos 6 anos lançou várias "startups dentro de startups". Foram experiências com entrega, microônibus e vendas corporativas. Muitos deles mais tarde se transformaram em linhas de negócios de sucesso. Por exemplo, uma solução B2B funciona com sucesso para mais de 15.000 grandes corporações, incluindo marcas como Google, Visa, Gucci, LVMH, Nestlé etc.
O próximo grande desafio que Gett enfrenta é conseguir uma oferta pública inicial no próximo ano. Esperamos que o produto da próxima geração ajude nosso IPO a ter sucesso, e foi por isso que foi decidido combinar os esforços dos melhores engenheiros da Gett e Juno para atingir esse objetivo. Trata-se de desenvolver soluções inovadoras de produtos do zero, usando a pilha de tecnologia mais avançada.
Quero convidar todos para a reunião em Minsk, em 12 de setembro, com o apoio da comunidade GoWay, onde meus colegas desenvolvedores falarão sobre os desafios técnicos que enfrentam diariamente e um pouco sobre o que temos que enfrentar no futuro, trabalhando em novas soluções.

Na reunião, os palestrantes falarão sobre quais desafios técnicos são resolvidos no Gett usando o idioma Go.
Oradores:
- Sasha Grunin , Gett, engenheiro sênior de back-end da equipe de desenvolvimento B2B - História do desenvolvimento em Go no Gett 2018-2019.
Gett é uma história clássica quando, após vários anos de desenvolvimento de um monólito, tornou-se mais conveniente dividir o monólito em serviços do que refatorá-lo. A transição para o Go não é um processo instantâneo: junto com a evolução da tecnologia, os processos ao redor evoluíram.
Neste relatório, Sasha falará sobre como a empresa desenvolveu o desenvolvimento no Go e como os processos e tecnologias de desenvolvimento estão organizados agora.
- Sagi Kritchbets , Gett, engenheiro sênior de back-end na equipe de preços - estado da arte em engenharia (fale em inglês)
Em Gett, grande parte da funcionalidade é baseada em localização. Durante cada pedido, é necessário recuperar os dados de configuração com base nas localizações do GPS. Os serviços geográficos estão lidando com um grande número de solicitações e estão no caminho crítico do fluxo de negócios. É necessário que o serviço responda rapidamente e seja escalável. O serviço da área herdada em Gett foi totalmente baseado no PostGIS, o que levou a um gargalo no DB. O Sagi vai falar sobre o novo serviço de área e sua implementação de cache geográfico distribuído na memória, com base na grade hexadecimal e no redis pubsub. O Sagi passará por algoritmos básicos de geometria usados na solução e pelos desafios que tivemos que superar.
- Ron Ludmer , Gett, desenvolvedor sênior de back-end da equipe Matching & Ride Exchange - Semáforo baseado em Redis (falar em inglês)
À medida que a popularidade do estilo da arquitetura de microsserviços aumenta, os riscos que surgem do trabalho com um sistema distribuído estão ficando mais focados. Um problema comum é ter nossos recursos compartilhados acessados de várias instâncias simultaneamente, causando inconsistência nos dados. Qual é a melhor maneira de garantir a correção com o mínimo de danos à eficiência? Indiscutivelmente, a maneira mais simples é usar o mecanismo de travamento. Ron vai falar sobre diferentes abordagens do bloqueio distribuído e as maneiras como eles resolveram esse problema na Gett, levando à nossa solução atual: bloqueio distribuído baseado em Redis implementado em Golang.
Além de relatórios úteis de palestrantes legais, você encontrará um mar de redes e, é claro, pós-festa! Para participar,
é necessário
se registrar .
E agora um pouco sobre o porquê, agora, decidimos unir forças com Juno.
Dado que, desde o início, o segmento B2B da Gett era operacionalmente lucrativo (e sujeito a uma estratégia de rentabilidade geral), isso levou a Gett a reestruturar sua proposta de valor em torno de clientes corporativos e suas necessidades.
Em abril de 2017,
Gett comprou a Juno , uma startup que opera em Nova York com um centro de desenvolvimento em Minsk. O Juno é um serviço de compartilhamento de viagens, fundado em 2015. Desde o início, Juno fez uma declaração alta sobre si mesmo: o serviço foi lançado em Nova York em maio de 2016 e já em setembro de 2016 o número de viagens ultrapassava meio milhão por mês. Em setembro de 2017, o número de viagens bem-sucedidas ultrapassou 1 milhão. Hoje, a Juno tem uma das posições de liderança no mercado de transporte on-line de táxi em Nova York.
Agora, a Gett tem prioridade na atualização tecnológica de soluções B2B; para esses propósitos, foi decidido combinar os esforços do escritório de Junk de Minsk e as equipes de Gett RnD de Moscou e Israel.
A plataforma B2B fecha todos os problemas corporativos relacionados à viagem: desde a compra e o monitoramento de um carro, até o controle de despesas pelo departamento financeiro e a geração de relatórios.
A equipe Juno, juntamente com Gett, trabalhará em várias áreas do serviço:Conexão do funcionárioFreqüentemente, nas empresas, os funcionários não podem usar de forma independente os serviços de táxi e entrega: às vezes um pedido de viagem é publicado por meio de um funcionário / serviço separado. Cada empresa possui suas próprias políticas de viagens, e a tarefa do Gett B2B é adaptar-se o máximo possível às especificidades de cada cliente: personalizar sua conta pessoal, levar em consideração todas as regras e políticas.
Controle de custosUm dos problemas mais tangíveis para um cliente que o Gett B2B resolve é a transparência dos custos de transporte corporativo. A transparência diz respeito não apenas aos detalhes das contas de cada viagem, mas também à possibilidade de agregar em um único local todas as despesas que a corporação suporta em cada cidade ou país. No futuro, esses relatórios serão usados, por exemplo, para reembolsos de IVA.
O Gett B2B resolve esses problemas automatizando o trabalho manual de administradores e serviços financeiros. Eles não precisam mais coletar cheques, descobrir detalhes da viagem, fazer solicitações de custos para diferentes departamentos, inserir informações para cada funcionário manualmente e verificar duas vezes várias vezes. Os clientes podem sincronizar dados SFTP ou criar viagens de API.
Além disso, Juno e Gett trabalharão juntos nas áreas de cobrança, atendimento ao consumidor e conexão com fornecedores.
A escolha
das tecnologias da solução B2B visa solucionar com eficiência os problemas enfrentados por um produto digital moderno:
- O AWS e o Kubernetes ajudam a se adaptar à carga flutuante típica do mercado de carona e a escalar com eficiência
- ser capaz de encantar os clientes com novas funcionalidades todos os dias é obtido através da entrega contínua de processos vinculados à Jenkins
- nos pontos de maior carga do sistema, use recursos de maneira eficiente e flexível, mantendo o ritmo possível com Go e Redis
- Responda rapidamente e implemente as alterações do produto, oferecendo uma ótima experiência ao usuário, talvez graças ao React / Redux & Ruby
- fazer parte da arquitetura de microsserviço, mantendo a consistência dos dados, graças ao CloudAMQP
- monitore o desempenho do produto e garanta alta qualidade, e isso é possível com a ajuda de um ecossistema para monitorar e procurar anomalias, incluindo processos de integração PagerDuty, Airbrake, New Relic, Datadog e Continuous com unidade integrada, componente, testes de integração para Java / testNG / Selenium
Se você tiver dúvidas, terei prazer em respondê-las nos comentários deste post. E até a reunião!