🚀 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:

  1. 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!
  2. 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!
  3. 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:

  1. Um sistema de banco que precisa processar milhões de transações por segundo durante o dia, mas que fica totalmente parado de madrugada.
  2. 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.
  3. 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).

  1. 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 17 DevOps) e clique em Commit to main.
  2. 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:

  1. Serverless (Você economiza muito dinheiro não pagando pela madrugada ociosa).
  2. Servidor Tradicional (Serverless tem limite de tempo de execução, geralmente 15 minutos, e fica caro para conexões longas).
  3. Serverless (É uma tarefa rápida, isolada e esporádica). Gabarito da Prática 2:
  4. 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.

Capitulo Anterior | Proximo Capitulo