Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Road to Serverless

Road to Serverless

Palestra sobre arquitetura Serverless na AWS.

Matheus Fidelis

September 22, 2018
Tweet

More Decks by Matheus Fidelis

Other Decks in Programming

Transcript

  1. SEM SERVIDOR? SEM SERVIDOR? RODA ONDE? IT’S M AGIC?? BRURRARIA?

    SEM SERVIDOR?? COM O SEM ??? IT’S POSSIBRU??
  2. Funções tem entrega e escala de forma unitária; Máquinas, VM's

    ou containers não são VISÍVEIS ao usuário; Storage Persistente é mantido transparentemente; Scaling por request; Nunca acima ou abaixo da necessidade; Never pay for idle; Sem custos por recursos sem utilização; Tolerante a falhas; Bring Your Own Code; Métricas e logging são direitos universais; MANIFESTO
  3. IaaS Capacidade Computacional; VM Servers, Network, Routers e etc; Focado

    em Infraestrutura e SO; Requer mais provisionamento e configuração; Ideal para equipes grandes ou aplicações mais complexas;
  4. PaaS Nível básico de abstração de infra; Focado em plataformas

    e aplicação; Ideal para equipes de desenvolvedores; Provisionamento e Escala Facilitado;
  5. COLD WARM UP Uma nova execução é requisitada O código

    é copiado para o container A função é inicializada A função é executada O container é congelado para execução
  6. HOT WARM UP Uma nova execução é requisitada Um container

    é descongelado (warm) A função é executada O container é congelado novamente
  7. nome do app providers, runtimes e configurações globais Declaração de

    uma função serverless.yml Configuração de um evento HTTP
  8. COMEÇANDO DO ZERO Pequenos serviços satélites Projetos novos em geral

    Processos mais braçais Crons e outros processos agendados Gerenciamento de logs e alertas
  9. Unit Tests Módulo da função lambda Mock de um evento

    HTTP Captura do callback do Lambda
  10. API Logs / IDS / Comportamento App Servers RedisMQ -

    IDS RedisMQ - API Logs IDS Consumer Logs Consumer
  11. Cron Jobs ETC... S3 Batch Processing HTTP Requests AWS API

    Actions Database Process rate(2 hours) cron(00 23 * * ? * ) cron(00 05 1 * * ? *) cron(00 05 1 * ? * ) cron(* * * * * * )