Você tem medo de ser Serverless?

Voce está em :Home-Opinião-Você tem medo de ser Serverless?

Você tem medo de ser Serverless?

Esta tendência é um caminho sem volta para o mercado de desenvolvimento de aplicações. Especialmente para as empresas que querem deixar suas equipes de TI focadas no domínio do problema.

Esta tendência é um caminho sem volta para o mercado de desenvolvimento de aplicações. Especialmente para as empresas que querem deixar suas equipes de TI focadas no domínio do problema.

por Thiago Machado*


Você tem medo de aderir à nova tendência de arquitetura conhecida como “Serverless”?

Como desenvolvedor e diretor de tecnologia, eu digo que não tenho medo algum, mas acredito que muita gente ainda possa ter, por mais incrível que isso pareça. Acredite, essa tendência chamada Serverless é um caminho sem volta para o mercado de desenvolvimento de aplicações. Especialmente para as empresas que querem deixar suas equipes de TI focadas no domínio do problema.

Vamos pensar um pouco, para manter sua aplicação no ar, cito alguns dos itens que uma equipe de TI deve manter:

  • Servidores, máquinas virtuais
  • Consumo de CPU, memória, rede
  • Uso de Banco de Dados
  • Uso de cache
  • Escalabilidade de toda estrutura
  • Segurança no tráfego
  • Monitoramento/log;

Agora vem uma provocação: no seu negócio, o seu domínio do problema (especialidade) é cuidar de máquina, consumo de hardware, escalonamento de rede e etc ou cuidar bem do seu produto?

Pois bem, imagino a resposta.

Configurar servidores, cuidar de uso de memória, latência de rede, uso de disco para que tudo isso gire junto não faz (ou não deveria fazer) parte das preocupações de uma empresa pequena, ou até mesmo de porte maior. Então aí entramos com algumas novidades do mundo Serverless, como o “Backend as a Service” (BaaS) e “Functions as a Service”. Trataremos disso em detalhes mais pra frente.

Vale ressaltar que não tenho nada contra a abordagem mais antiga, de uma equipe grande com máquinas virtuais montadas e toda uma estrutura de pessoas dedicadas full time para cuidar de tudo. Mas vamos lá: quais os benefícios uma arquitetura Serverless nos traz? Vou contar a história de uma pequena empresa – a qual hoje sou sócio – que começou praticamente junto com o conceito do serverless, no final da década passada.

O BuscaOnibus, um serviço de metasearch de informações sobre horários e passagens de ônibus, começou em 2009 com o Engenheiro da Computação José Almeida, que fazia todo o deploy em um sistema totalmente Serverless e auto escalável (usamos o Google App Engine, lançado em Beta em 2008). E acredite, ele não só cuidava disso: tinha muito mais além da TI para se ocupar, como questões de marketing, SEO para indexação nos buscadores, parte comercial e etc.

No quarto ano de operações, com a demanda de trabalho crescendo muito, entrei como sócio da empresa e desenvolvedor – um salto de 100% na equipe da TI! Hoje somos cinco desenvolvedores na equipe, sendo três full time. Uma equipe bem enxuta, certo? Porque somos Serverless desde o início.

Por isso volto a dizer, usando meu exemplo, que não tenho medo de ser serverless porque usamos todos os benefícios que essa arquitetura de software nos trouxe. Vamos lá:

  • Deploy: usamos a GCP/GAE (fully managed Serverless application platform) e com isso é possível fazer o deploy utilizando CLI em apenas uma linha, sem nos preocupar onde e em qual máquina nosso código vai rodar, nem com a configuração necessária;
  • Segurança: não há promoção direta desse deploy para a produção, podemos fazer todos os tipos de testes e análises de performance sem comprometer o código em produção e só depois promovê-lo a produção.

Depois de um tempo começamos a usar e abusar das facilidades da arquitetura onde se abstrai onde e qual máquina está o seu código. Já que não tínhamos testes unitários (não nos xinguem, éramos só dois devs que não desenvolviam em 100% do tempo), começamos a usar várias ferramentas que os sistemas de nuvem nos forneciam como indicador de como nosso sistema de coleta de dados estava funcionando. E, acredite, ajudava muito.

Bom, mas voltando à arquitetura serverless, já que não temos medinho dela, vamos falar de uma outra mágica.

Depois de fazer o deploy, adivinha quanto tempo gastamos com escalabilidade? Ou seja, quantas instâncias estavam rodando, quanto de memória, disco ou CPU precisamos configurar ou escalonar de acordo com nosso crescimento e saber onde está isso tudo. Resposta: não gastamos tempo nenhum! E, isso que nosso modelo de negócio conta com picos de acesso em função de períodos e eventos sazonais (férias escolares, festas de fim de ano e feriado, quando explodem as buscas por passagens rodoviárias).

Nós optamos por um “Backend as a Service” (BaaS), onde você paga por hora de uso e não pela criação de máquinas preparadas para suportar seu tráfego ou picos do mesmo – que muitas vezes podem passar a maior parte do tempo ocioso gerando custos desnecessários. Também utilizamos as “Functions as a Service” (FaaS), funcionalidades que nos ajudam demais e na hora de colocar os chamados cron jobs para executar. De novo, não nos preocupamos com escalabilidade e afins na execução destes jobs.

Além de poupar tempo para cuidarmos diretamente do nosso negócio, estas “mágicas” ajudam a nos dedicar no trabalho em equipe, na organização quanto a backlog e gerenciamento interno, por exemplo. E, também, cuidar de um item muito importante: a qualidade da informação que fornecemos aos nossos usuários.

Basicamente com todas essas funcionalidades conseguimos manter um site com cerca de 4 milhões de acessos mensais com uma equipe bem reduzida e focando grande parte do nosso trabalho no nosso domínio do problema ao invés da infra. Com o crescimento das ferramentas que funcionam de forma Serverless, nossa vida de equipe extremamente pequena vem ficando cada vez melhor.

E aí, vai encarar?

* Thiago Machado é CTO do BuscaOnibus