Case ESX | ConectCar - Infra as Code
Aumentamos a capacidade da ConectCar entregar novas funcionalidades através da implementação técnica de Infraestrutura como Código
Trazendo comodidade e agilidade para o dia a dia dos nossos clientes, a tecnologia ConectCar está presente nas rodovias pedagiadas do país, além de estacionamentos, shoppings e aeroportos.
Transformação digital num mercado ultrapassado e monopolizado
Apesar de metade dos pagamentos de pedágios em rodovias no Brasil serem feitos de maneira automática, esse mercado até bem pouco tempo atrás havia estacionado num platô tecnológico por vários anos.
Felix Cardamone, CEO da Conectcar, conta que uma troca de comando que ocorreu em 2016 botou o cliente no centro das estratégias da companhia. Isso resultou em um plano de transformação digital com etapas que incluíam inclusive o redesenho da plataforma visando estabilidade, escalabilidade e flexibilidade.
Além disso recentemente a companhia tem se aproximado de startups e agentes do ecossistema que desenvolvem soluções de mobilidade. Felix Cardamone afirma em entrevista dada à revista digital Meio e Mensagem que:
"A plataforma tecnológica permite conexão com qualquer solução ou parceiro, sendo potenciais oportunidades as montadoras de veículos, empresas com soluções de mobilidade urbana como car sharing, táxis, e demais modais de circulação entre cidades, parcerias B2B no sentido de facilitar a gestão das frotas, transportadores e embarcadores, além de qualquer pagamento durante a jornada do consumidor com seu veículo."
Um exemplo disso é a recente parceria feita entre Conectcar e a gigante mineira Localiza, que promete trazer crescimento econômico e desafios tecnológicos ao time de TI.
Para suportar as metas agressivas de mercado da Conectcar, seu time de TI trabalha constantemente na redução do leadtime de publicação de novas features
Com aproximadamente 500 mil usuários a Conectcar ocupa hoje o segundo lugar no mercado de pagamento contactless em pedágios. Ainda assim encontra-se em um ritmo de crescimento acelerado, onde a frequência de criação de novas funcionalidades é muito grande.
Após o início ​da utilização da plataforma Microsoft Azure o processo para adquirir novos recursos computacionais tornou-se muito mais simples, mas por um tempo novas aplicações eram criadas manualmente, sem nenhuma padronização ou garantia de que estavam de acordo com os requisitos ou configurações necessárias para seu correto funcionamento.
Num trabalho conjunto da ESX com o time Conectcar, iniciamos um projeto de implantação de Infraestrutura como Código, que reduziu em média 90% o tempo gasto com a criação de novos recursos, tornando possível a criação de recursos de maneira rápida, padronizada e replicável. Isso contribuiu para a manutenção dos ritmos de crescimento da companhia.
Resumidamente, Infraestrutura como Código (IAC) é o nome dado ao conjunto de práticas que permite um time de tecnologia a gerenciar e provisionar recursos de infraestrutura em nuvem por meio de código. Essa prática, que elimina etapas manuais, permite que o processo seja mais rápido, com menos erros e maior padronização entre as aplicações.
Os desafios de padronização em um ambiente com mais de 200 aplicações
O objetivo inicial do projeto era automatizar o provisionamento de ambientes de maneira organizada, escalável e automatizada.
O primeiro grande desafio do projeto era o volume de aplicações. Devido à grande quantidade de aplicações e a necessidade de padronização, não era possível que cada aplicação controlasse como seu ambiente seria criado.
Para solucionar esse problema foi criado um repositório centralizado, onde no momento de entrega da aplicação, validamos se o ambiente corresponde ao padrão definido e, em caso negativo é criado de acordo com essa definição.
Para informações específicas de cada projeto, utilizamos um arquivo de configuração em formato JSON, que é versionado junto à aplicação, onde ficam armazenadas informações de cada aplicação, como: nome, quantidade de recursos, local de armazenamento de log, etc.
O segundo desafio foi resolver a gestão de recursos compartilhados. Existem alguns recursos que são utilizadas por diversas aplicações. Para solucionar este problema, criamos um script único onde são criados os principais recursos que as aplicações possuem dependência.
O terceiro grande desafio foi encontrar formas de conciliar a criação manual de recursos com o processo automatizado. Ao iniciar o projeto já existiam diversas aplicações utilizando Web Apps e novas eram criadas em uma frequência alta.
Foi criado um script customizado, onde é passado o nome da aplicação, e caso a aplicação já exista, é realizada a validação de consistência de definição. Havendo divergência o script corrige de forma automática.
Recursos de infraestrutura em um clique
Temos um processo de entrega contínua desde o início dos projetos até sua implementação em produção de maneira simples, rápida e padronizada, onde é possível criar um novo site em apenas alguns minutos.
Após a versão inicial fomos inspecionando e ajustando o processo continuamente até que a expectativa da ConectCar fosse completamente atendida.
Deixamos registrados os agradecimentos à todo o time ConectCar e ESX, em especial ao Maicon Guerra, por todo o apoio e confiança empreendidos em nossa solução para este desafio.
"Nós da ConectCar, uma empresa de tecnologia em meios de pagamento, optamos como estratégia de tecnologia migrar a infraestrutura para a nuvem da Microsoft, e evoluir a arquitetura para uma abordagem distribuída em micro serviços. Entendemos que para esta jornada, também seria mandatório a adoção de práticas DevOps, que envolvia desde a evolução das ferramentas, práticas de CI/CD, automação e principalmente questões culturais. No que tange a automação, também consideramos a abordagem de infraestrutura como código, que somado as facilidades da Azure e a parceria da ESX, hoje estamos ganhando agilidade e autonomia para os times de desenvolvimento de produtos."