No dia 26/11 fizemos a migração total de nossos serviços para o Google Cloud Platform, que após várias pesquisas realizadas, identificamos ser a melhor infra-estrutura que existe atualmente.

Pra que pudéssemos aproveitar corretamente os recursos da infra estrutura do Google, várias alterações foram feitas ao sistema para otimizar o armazenamento das informações, arquivos de mailing, relatórios em CSV, e o principal: as gravações

Durante a semana inteira do dia 19/11 fizemos inúmeros testes no sistema já rodando em um ambiente de testes no Google, simulamos o uso do sistema com nosso time todo aqui e tivemos sucesso. Identificamos bom funcionamento e nenhuma falha nestes testes, então, durante o fim de semana  nos dias 24 e 25/11 migramos os dados de produção para este ambiente. Ficando apenas um processo de migração rodando ainda por mais 1 semana, que foi o envio de todas as gravações.

No dia 26/11 quando tivemos tráfego real de clientes usando o sistema verificamos que o ambiente estava instável, consumindo 100% de recursos que havíamos provisionado. Tentamos de todas as formas manter tudo funcionando porém não foi possível. Tivemos que parar o sistema, provisionar servidores muito maiores e aí sim voltou a operar como deveria.

Acontece que os custos pra manter esta infra estrutura da forma como deixamos estavam totalmente inviáveis e nos impediriam de sermos competitivos e continuar operando com taxas de assinatura abaixo do valor de mercado, fator muito importante pra nós. Então durante as ultimas 2 semanas passamos a procurar o motivo de o sistema estar demandando tanto recurso de servidor, de forma que entendêssemos o porquê, de após feito deploy no Google, onde teoricamente os servidores tem muito mais performance do que a infra anterior, o sistema necessitou de o dobro de recursos.

Mantivemos rodando desta forma até ontem, quando finalmente encontramos o problema! A falha que identificamos é numa biblioteca fornecida pela própria Google, a GSUTILS, que é responsável por armazenar arquivos no Google Storage Bucket. Usamos esta biblioteca para enviar todas as gravações de chamadas para o storage e após algumas análises verificamos que esta simples ação era quem estava consumindo todos os recursos dos servidores. Fizemos testes e encontramos uma forma muito mais leve de realizar esta ação, então desenvolvemos nosso próprio método e subimos ontem a noite para os servidores. 

Por um lado, sentimos muito mesmo pelas falhas ocorridas nestes últimos dias, e por outro estamos muito satisfeitos em termos resolvido, sabermos que agora nosso sistema está em um ambiente totalmente escalável e 100% protegido contra falhas, instabilidades, ou qualquer tipo de ataque. 

Outro grande benefício que temos agora é que estamos com todos os serviços rodando em cima do Kubernetes em modo AUTOSCALE, ou seja, toda vez que o tráfego aumentar, os serviços detectam necessidade de novos servidores e que são provisionados automaticamente em menos de 2 minutos...

Realmente estamos muito confiantes de que agora estamos em uma nova fase e que não passaremos mais por nenhum tipo de problema parecido. Agradecemos à todos por estarem conosco durante estas dificuldades e seguimos em frente, tendo a certeza de que todas estas falhas e prejuízos gerados serão revertidos em aumento considerável de produtividade com a (muito maior) performance que podemos oferecer agora.

Att,
Diogo Hartmann
Co-Founder

Encontrou sua resposta?