🚀 Capítulo 17: Serverless (Lambda) (Tema: Doutor Estranho)
NOTE
Este capítulo utiliza a temática de Doutor Estranho para explicar o Serverless. Faça mágicas no mundo digital sem precisar de um corpo físico (servidor) presente o tempo todo!
1. 🎯 Objetivo da Aula
Compreender o conceito de Computação Sem Servidor (Serverless), conhecendo o modelo FaaS (Function as a Service), o serviço AWS Lambda e as vantagens de custo e escala dessa arquitetura.
2. 🏢 O Cenário Prático (Seu Desafio)
O Doutor Estranho consegue usar a projeção astral. A mente dele sai do corpo físico e age no mundo espiritual para resolver problemas.
- Ele não precisa que o corpo físico dele esteja lá se movendo ou gastando energia.
- A magia acontece de forma instantânea e pura.
No desenvolvimento de software tradicional, nós precisamos de um servidor (o corpo físico) ligado 24 horas por dia esperando alguém usar o site. Você paga por ele mesmo se ninguém acessar às 3h da madrugada (desperdício de energia e dinheiro). No Serverless (Sem Servidor), nós não alugamos um servidor! Nós apenas enviamos o nosso código (a magia). O código fica “dormindo”. Quando um usuário clica em um botão do site, a nuvem cria um mini-servidor em milissegundos, executa o código e o destrói na hora! Seu desafio é fazer magia sem corpo!
🧠 Fundamentos: A Teoria Traduzida
Serverless não significa que não existem servidores. Significa que você não precisa gerenciar, atualizar ou pensar em servidores. O provedor de nuvem cuida de tudo.
⚡ O que é FaaS (Function as a Service)?
Em vez de enviar um sistema inteiro para a nuvem, você envia apenas pequenas Funções (trechos de código isolados).
- Exemplo: Uma função que apenas recebe uma foto e gera a miniatura (thumbnail) dela.
- O serviço mais famoso do mundo para isso é o AWS Lambda.
🏆 As 3 Grandes Vantagens do Serverless:
- Custo Zero quando Ocioso: Se ninguém usar o seu sistema no mês inteiro, você paga R$ 0,00. Você só paga pelos milissegundos em que o código esteve rodando!
- Escala Infinita Automática: Se 1 pessoa acessar, o Lambda roda 1 vez. Se 1 milhão de pessoas acessarem ao mesmo tempo, a AWS cria 1 milhão de mini-servidores em paralelo instantaneamente! Você não precisa configurar Auto Scaling nem Load Balancer!
- Sem Manutenção: Você não atualiza o Linux, não se preocupa com memória cheia. Apenas foca no código.
4. 📖 Exemplo Guiado: Uma Função Lambda (JS)
Veja como é simples o código de uma função que roda no AWS Lambda. Ela apenas recebe dois números e devolve a soma:
// O código não precisa de servidor Express nem porta 3000!
exports.handler = async (event) => {
const numero1 = event.n1;
const numero2 = event.n2;
const soma = numero1 + numero2;
return {
statusCode: 200,
body: `A soma mágica é: ${soma}`
};
};5. 🛠️ Prática Obrigatória 1: Serverless ou Servidor Tradicional?
Diga qual modelo (Servidor Tradicional/VM ou Serverless/Lambda) é o mais inteligente para cada situação:
- Um sistema de banco que precisa processar milhões de transações por segundo durante o dia, mas que fica totalmente parado de madrugada.
- Um sistema de transmissão de vídeo ao vivo (Streaming) onde o servidor precisa ficar conectado com o usuário por 3 horas seguidas enviando dados sem parar.
- Uma função do site que apenas envia um e-mail de “Bem-vindo” quando um novo usuário se cadastra.
6. 🛠️ Prática Obrigatória 2: A Pegadinha do Serverless
Como vimos, o código Serverless fica “dormindo” e só acorda quando alguém o chama. Esse tempo que a nuvem demora para criar o mini-servidor e carregar o seu código na memória (que dura cerca de 1 a 2 segundos na primeira vez) é chamado de Cold Start (Partida a Frio).
- Se o seu sistema precisa responder em menos de 100 milissegundos para jogos de tiro online em tempo real, o Serverless é uma boa escolha? Por quê?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 17 DevOps) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_13_devops_e_cloud/
├── capitulos/
│ ├── capitulo_17_serverless.md
│ └── codigos/
│ └── cap17/
│ └── index.js💡 Checkpoint de Lógica
O Serverless mudou a forma como pensamos em arquitetura de software. Ele é perfeito para sistemas baseados em Eventos (Aconteceu algo → Execute este código)!
10. 🔥 Desafio de Fixação
Pesquise quais linguagens de programação o AWS Lambda suporta para você escrever suas funções mágicas (Dica: Python e JavaScript/Node são as mais populares!).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Serverless (Você economiza muito dinheiro não pagando pela madrugada ociosa).
- Servidor Tradicional (Serverless tem limite de tempo de execução, geralmente 15 minutos, e fica caro para conexões longas).
- Serverless (É uma tarefa rápida, isolada e esporádica). Gabarito da Prática 2:
- Não. Para jogos em tempo real onde cada milissegundo conta, o atraso do Cold Start pode estragar a experiência do jogador. Nesses casos, é melhor ter um servidor tradicional sempre ligado e aquecido.