Arquiteturas de SoftwareParticipação III21.09.2026

Server
lessExecutar código na nuvem sem gerenciar diretamente os servidores.

Integrantes
Bruno WernerPedro UrioVitor Rafael MarcelinoRuan Carlos
Disciplina
Engenharia de Software
Blocos de código subindo para uma nuvem
zsh — minha-api

        
01

O que é

Definição, componentes e quem é responsável pelo quê.

O que é serverless?

Um modelo de computação em nuvem no qual você executa código sem gerenciar diretamente os servidores.

  • Os servidores existem

    O nome engana: a máquina continua lá, só não é você quem cuida dela.

  • O provedor gerencia

    Manutenção, disponibilidade e escalabilidade passam para a nuvem.

  • Execução por evento

    O código roda quando algo acontece, não o tempo todo.

  • Foco na aplicação

    O time trabalha na lógica de negócio, não na infraestrutura.

Tradicional vs. serverless: rack ligado 24/7 com gerenciamento manual versus funções na nuvem que executam só quando chega um evento

Componentes e responsabilidades

Quem faz o quê dentro da arquitetura.

ComponenteResponsabilidade
EventoDispara a execução: requisição HTTP, upload, mensagem, agendamento.
API / GatewayRecebe a requisição, autentica e roteia para a função correta.
FunçãoExecuta a lógica de negócio; é pequena, isolada e sem estado.
Banco de dadosGuarda o estado da aplicação, já que a função não o mantém.
ArmazenamentoGuarda arquivos e mídia, e pode gerar eventos ao receber conteúdo.
Provedor de nuvemProvisiona, escala, monitora e mantém toda a infraestrutura.
Usuário dispara evento → API/Gateway → Função → Banco de dados e Armazenamento, dentro do provedor de nuvem
02

Como funciona

Do evento até a resposta, e o que acontece quando chegam mil de uma vez.

Do evento até a resposta

Sem nenhum servidor provisionado por nós.

01

Usuário

Envia a requisição.

02

API / Gateway

Autentica e roteia.

03

Função

Executa a lógica.

04

Banco / Storage

Lê e grava o estado.

05

Resposta

Volta ao usuário.

A função só existe enquanto executa: termina o trabalho, o ambiente é liberado.

E quando chegam mil de uma vez?

1requisição simultânea

Mil requisições simultâneas viram mil execuções em paralelo, sem nenhuma configuração.

Quais problemas resolve?

A dor operacional de um lado, a resposta da arquitetura do outro.

Gerenciar e manter servidoresO provedor assume a operação
Provisionar infraestrutura à mãoRecursos criados sob demanda
Picos e quedas no número de acessosEscalabilidade automática
Máquinas ligadas e ociosasPagamento pelo uso real
Publicar uma funcionalidade novaCiclo de entrega mais curto
03

Quando usar

Trade-offs, cenários, ferramentas e um caso real do começo ao fim.

Vantagens e desvantagens

Vantagens

  • Menos gerenciamento de infraestrutura
  • Escalabilidade automática conforme a demanda
  • Pagamento baseado no uso, sem recurso ocioso
  • Publicação rápida de novas funcionalidades
  • Foco do time no código e na regra de negócio

Desvantagens

  • Dependência do provedor de nuvem
  • Limites do ambiente de execução (tempo, memória)
  • Cold start na primeira chamada de uma função
    partida fria~800 ms
    função quente~10 ms
  • Depuração difícil em sistemas distribuídos
  • Custo que cresce com o volume de execuções
  • Menor controle direto sobre a infraestrutura

Onde faz sentido

A pergunta não é se é melhor, e sim em qual cenário as características ajudam.

Indicado para

  • APIs e backends de aplicações web e mobile
  • Processamento de arquivos e imagens
  • Tarefas agendadas e automações
  • Sistemas orientados a eventos
  • Demanda imprevisível, com picos e longos períodos ociosos

Avalie outras opções quando

  • A aplicação precisa de execução contínua
  • A latência precisa ser baixa e previsível
  • O processamento é longo demais para os limites
  • A carga é alta e constante: o custo pode superar o de um servidor dedicado
  • Controle fino da infraestrutura ou independência de provedor são requisitos

Tecnologias e ferramentas

O papel de cada serviço dentro do ecossistema.

AWS

Lambda

Executa a função em resposta a um evento. É o FaaS mais conhecido.

AWS

API Gateway

Porta de entrada HTTP: recebe, autentica e encaminha às funções.

AWS

S3

Armazena arquivos e dispara eventos quando recebe conteúdo novo.

Azure

Azure Functions

Equivalente da Microsoft para execução de funções por evento.

Google Cloud

Cloud Functions

Funções gerenciadas dentro do ecossistema do Google Cloud.

Google Cloud

Cloud Run

Contêineres sem servidor, para quando a função pura não basta.

Exemplo prático

Gatilho por evento

GATILHO · EVENTO DE STORAGE UPLOAD NO S3 GATILHO · EVENTO DA APLICAÇÃO NOVO CADASTRO REAGE AO EVENTO AWS LAMBDA RESULTADO MINIATURA NO S3 + REGISTRO NO BANCO RESULTADO E-MAIL DE CONFIRMAÇÃO (AMAZON SES)
Upload de imagemPython · Lambda
def handler(event, context):
    info = event["Records"][0]["s3"]
    bucket, key = info["bucket"]["name"], info["object"]["key"]

    obj = s3.get_object(Bucket=bucket, Key=key)
    img = Image.open(io.BytesIO(obj["Body"].read()))
    img.thumbnail((200, 200))

    buf = io.BytesIO()
    img.save(buf, format="JPEG")
    # outro bucket: evita disparar um novo evento
    s3.put_object(Bucket="miniaturas", Key=key, Body=buf.getvalue())
    tabela.put_item(Item={"arquivo": key})
E-mail de confirmaçãoPython · Lambda
def handler(event, context):
    for r in event["Records"]:
        if r["eventName"] != "INSERT":
            continue
        email = r["dynamodb"]["NewImage"]["email"]["S"]
        ses.send_email(
            Source="no-reply@exemplo.com",
            Destination={"ToAddresses": [email]},
            Message={
                "Subject": {"Data": "Confirme seu cadastro"},
                "Body": {"Text": {"Data": "Bem-vindo!"}},
            },
        )

Nenhum servidor ficou ligado esperando. A função existe apenas durante o processamento, e a cobrança corresponde a esse tempo.

Exemplo prático

Gatilho agendado (cron)

01

Agendamento

Todo dia às 8h, uma regra do Amazon EventBridge dispara a função.

02

Lambda

Consulta as vendas do dia anterior e monta o relatório.

03

Amazon S3

Guarda o relatório do dia.

Relatório diárioPython · Lambda
def handler(event, context):
    ontem = date.today() - timedelta(days=1)
    vendas = consulta_vendas(ontem)  # consulta ao banco
    relatorio = {"data": str(ontem),
                 "total": sum(v["valor"] for v in vendas)}
    s3.put_object(
        Bucket="relatorios",
        Key=f"vendas/{ontem}.json",
        Body=json.dumps(relatorio),
    )
Regra de agendamentoEventBridge
cron(0 11 * * ? *)

# minutos horas dia mês dia-da-semana ano
# todo dia às 11h UTC = 8h em Brasília

O código roda só nos minutos em que o trabalho acontece. Um servidor tradicional ficaria ligado 24 horas para trabalhar alguns minutos por dia.

Conclusão

Serverless troca o controle da infraestrutura por agilidade e escala automática. É uma escolha de cenário, não um upgrade universal.

  1. O provedor cuida do servidor; o time cuida do código e da regra de negócio.
  2. Resolve ociosidade, picos de acesso e provisionamento manual.
  3. Cold start, limites de execução e dependência do provedor continuam pesando.

Referências

  • AWSComputação sem servidor.aws.amazon.com/serverless
  • AWSUnderstanding the Lambda execution environment lifecycle.docs.aws.amazon.com/lambda/latest/dg/lambda-runtime-environment.html
  • AWSAmazon Web Services Announces AWS Lambda (2014).press.aboutamazon.com/2014/11/amazon-web-services-announces-aws-lambda
  • GoogleGoogle App Engine at Campfire One (2008).developers.googleblog.com/2008/04/google-app-engine-at-campfire-one.html
  • IBMWhat is serverless?ibm.com/topics/serverless
  • DatabricksWhat is Serverless Computing?databricks.com/glossary/serverless-computing
  • Red HatO que é serverless?redhat.com/pt-br/topics/cloud-native-apps/what-is-serverless
  • AluraArquitetura Serverless.alura.com.br
  • Serverless, Inc.Serverless Framework.serverless.com
  • [Acrescentar demais fontes consultadas]
Obrigado · perguntas?