Skip to main content

DevFest Triângulo 2023

· 6 min read
Bruno Carneiro

No dia 02 de Dezembro de 2023 rolou o Dev Fest Triângulo 2023, um evento global de tecnologia organizado pela comunidade Google Developer Group (GDG). O evento este ano ocorreu em Uberlândia, em Minas Gerais, e contou com a participação de mais de 900 pessoas, entre elas estudantes, profissionais e entusiastas de tecnologia.

Tive o prazer de poder compartilhar um pouco do meu conhecimento a respeito de Serverless, e como a AWS pode nos ajudar a criar aplicações escaláveis e resilientes, com um custo muito baixo. Além de demonstrar um case de migração da Base39.

Foi um dia incrível, com muitas palestras, troca de conhecimento, energia lá em cima e bastante networking.

Tive a oportunidade de falar sobre Serverless, tecnocalogia que utilizamos dentro da Base39 e que nos ajuda a manter e escalar nossas aplicações.

Estamos trabalhando com Serverless a mais de 4 anos e temos muita experiência para compartilhar. Aqui um pouco do que apresentei no DevFest Triângulo 2023.

info
Hoje: 80% do tempo do desenolvedor é de operações e manutenção. No futuro, o único código que você vai escrever é o seu negócio. Fonte: Deloitte: 2019

O que é Serverless?

Serverless é um modelo de computação que permite executarmos um código - em uma cloud sem a necessidade de gerenciar servidores. Ex.: AWS Lambda, Google Cloud Functions, Azure Functions, etc.

Desta maneira, o time de desenvolvimento não precisa se preocupar com a infra estrutura e pode focar no que é importante, o negócio.

Com isso, podemos substituir servidores por serviços gerenciados.

tip

Saiba mais em: Trilha sobre Serverless.

Arquitetura utilizando Kubernets:
Arquitetura utilizando serviços gerenciáveis:

Repare que na segunda imagem temos o conceito de Serverless. É uma maneira muito mais rápida e simples de se trabalhar. Sem contar que pode também ser mais econômico.

Serverless permite que o cliente se concentre no valor comercial

Agilidade, desempenho, segurança, custo e muito mais. Este são pontos cruciais para o sucesso de um projeto. E o Serverless nos ajuda a atingir todos eles.

Agilidade: É muito simples provisionar um serviço. Em poucos minutos podemos realizar um deploy e colocar em produção.

Desempenho: Como não precisamos nos preocupar com desempenho, podemos focar em escrever um código de qualidade e que atenda as necessidades do negócio. A cloud que é responsável pela gestão da infraestrutura e escala.

Segurança: Podemos trabalhar com o conceito de "least privilege", ou seja, cada serviço tem apenas as permissões necessárias para executar sua função. Além disso, podemos utilizar ferramentas de segurança como o AWS Shield, que nos ajuda a proteger nossas aplicações contra ataques DDoS.

Custo: Os custos para operar um serviço Serverless são baixos. Pay as you go é o modelo de cobrança utilizado. O modelo de cobrança é por requisição e tempo de execução. Se ninguém estiver utilizando os serviços a cobrança é zero.

O que os clientes estão criando com Serverless?

  • Automação de TI: Provisionamento de recursos, backups, scripts e muito mais;

  • Aplicações Web: APIs, websites, sistemas SaaS, edge apis;

  • Aplicações de IoT: Coleta de dados, processamento de dados, análise de dados;

  • Processamento de dados: ETL, processamento de logs, processamento de dados em tempo real;

  • Aplicações de Machine Learning: Treinamento de modelos, inferência de modelos, processamento de imagens, processamento de linguagem natural;

Serverless é mais do que computação

Algumas ferramentas do GCP (Google Cloud Platform) que podem nos ajudar a criar aplicações Serverless:

  • Cloud Functions: Funções sem servidor que respondem a eventos;
  • Cloud Run: Executa containers sem servidor;
  • Cloud Tasks: Orquestração de tarefas sem servidor;
  • Cloud Scheduler: Agendamento de tarefas sem servidor;
  • Cloud Pub/Sub: Mensagens sem servidor;
  • Cloud Storage: Armazenamento sem servidor;
  • Cloud SQL: Banco de dados sem servidor;
  • Cloud Datastore: Armazenamento de dados sem servidor;
  • Cloud Armor: Proteção contra DDoS sem servidor;
  • Cloud Key Management Service: Gerenciamento de chaves sem servidor;

Saiba mais em: GCP

Quando não utilizar Serverless?

  • Sistema de processamento de trasações em tempo real;
  • Aplicações que precisam de um alto poder de processamento;
  • Aplicações que precisam de um alto poder de armazenamento;
  • Aplicações de jogos online;
  • Streams de vídeos;
  • Sistemas de controle industrila;
  • Sistemas de controle de tráfego aéreo;
  • Negócios síncronos.

Estes são alguns exemplos de aplicações que não são recomendadas o uso de uma arquitetura Serverless. Podendo ter problemas de latência, custo e desempenho.

Padrões de arquitetura Serverless

Evento

Uma coisa que acontece particularmente uma de importância ou notoriedade. Dados de invocação enviados para a função. A forma diferete de acordo com a origem do evento.

Lambda function

Função que é executada quando um evento ocorre (handler). Processo o evento de entrada.

Contexto

Informações adicionais do serviço Lambda. Ex.: request ID, tempo de execução, limite de memória, etc.

anatomia de uma função lambda:

Case Base39

warning

Este case ainda estou escrevendo, vou separar em outro artigo para não ficar muito extenso.

Conclusão

Serverless é uma excelente tecnologia para escalar aplicações e reduzir custos. Mas é preciso ter cuidado ao utilizá-la. É preciso entender o negócio e o que se deseja alcançar. Além disso, é preciso ter um bom conhecimento de arquitetura e de boas práticas de desenvolvimento. A tecnologia não é bala de prata e dependendo da forma como for utilizada (como qualquer tecnologia) pode trazer mais problemas do que soluções. Estude bastante como serverless funciona, o paradigma é diferente do uso de outras tecnologias utilizando gerenciamento de servidores. Muitas pessoas acabam tendo problemas por não entenderem como funciona o serverless e acabam utilizando de forma errada.

Como falado anteriormente, nem toda aplicação deve utilizar essa abordagem, podendo ter efeito contrário ao esperado. Por isso, é importante entender o negócio e o que se deseja alcançar.

Na Base39 utilizamos em 100% dos nossos serviços e não pretendemos mudar de tecnologia. É importante salientar que não escalamos somente com lambda function, mas com uma série de outros recursos da AWS que compõem a nossa arquitetura e que também são serverless (sem gerecniamento de infraestrutura).

Quem quiser ver a apresentação, pode acessar o link: Slides da palestra

vlw!