$30 off During Our Annual Pro Sale. View Details »

A arquitetura serverless

A arquitetura serverless

Descrição, nomenclatura e tudo o que você precisa saber para entrar no mundo server --less

Lucas Santos

July 16, 2019
Tweet

More Decks by Lucas Santos

Other Decks in Programming

Transcript

  1. Server --less
    Utilizando o poder da cloud de verdade

    View Slide

  2. senior solutions architect_
    quem sou eu_
    /khaosdoctor @_staticvoid
    lsantos.dev
    @khaosdoctor
    nindoo.ai

    View Slide

  3. obarra.co
    trainingcenter.io

    View Slide

  4. abcdevelopers.org
    cupom: LSANTOSABCDEV2019

    View Slide

  5. slsweek.netlify.com

    View Slide

  6. Serverless!

    View Slide

  7. Serverless!

    View Slide

  8. Primeiro, um pouco de contexto

    View Slide

  9. Monólitos
    Prós:
    Depuração simples
    Controle de fluxo
    Simples geração de builds
    Design e planejamento rápido

    View Slide

  10. Monólitos
    Contras:
    Único ponto de falha
    Alto risco com deploys
    Efeito Black-Box
    Manutenção difícil em grandes
    aplicações

    View Slide

  11. Monólitos
    Microsserviços
    Contras:
    Único ponto de falha
    Alto risco com deploys
    Efeito Black-Box
    Manutenção difícil em grandes
    aplicações
    Prós:
    Contextos definidos
    Independente
    Fácil manutenção
    Equipes Enxutas
    Alta disponibilidade

    View Slide

  12. Monólitos
    Microsserviços
    Contras:
    Único ponto de falha
    Alto risco com deploys
    Efeito Black-Box
    Manutenção difícil em grandes
    aplicações
    Contras:
    Infraestrutura Complexa
    Orquestração complicada

    View Slide

  13. Monólitos
    Microsserviços
    Contras:
    Único ponto de falha
    Alto risco com deploys
    Efeito Black-Box
    Manutenção difícil em grandes
    aplicações
    Contras:
    Infraestrutura Complexa
    Orquestração complicada
    Nanosserviços
    λ
    Base da arquitetura serverless
    Não implementa ela em si
    Baseados em funções

    View Slide

  14. Serverless!
    A arte de mandar algo para algum lugar

    View Slide

  15. Serverless refer to applications that significantly
    depend on BaaS or on FaaS. By using these ideas, and
    by moving behavior to the front end, such
    architectures remove the need for the traditional
    'always on' server system sitting behind an
    application.
    (Mark Roberts)

    View Slide

  16. Serverless refer to applications that significantly
    depend on BaaS or on FaaS. By using these ideas, and
    by moving behavior to the front end, such
    architectures remove the need for the traditional
    'always on' server system sitting behind an
    application.
    (Mark Roberts)

    View Slide

  17. Serverless refer to applications that significantly
    depend on BaaS or on FaaS. By using these ideas, and
    by moving behavior to the front end, such architectures
    remove the need for the traditional 'always on' server
    system sitting behind an application.
    (Mark Roberts)

    View Slide

  18. Serverless refer to applications that significantly
    depend on BaaS or on FaaS. By using these ideas, and
    by moving behavior to the front end, such
    architectures remove the need for the traditional
    'always on' server system sitting behind an
    application.
    (Mark Roberts)

    View Slide

  19. Sem servidores?

    View Slide

  20. The phrase "serverless" doesn't mean servers are no
    longer involved. It simply means that developers don't
    need to think "that much" about them.
    (Quote from Quora)

    View Slide

  21. O manifesto Serverless

    View Slide

  22. Funções como unidade de deploy e
    escalabilidade (efêmeros)

    View Slide

  23. Nenhuma máquina, VM ou container visível para
    o programador

    View Slide

  24. Armazenamento permanente está em outro lugar

    View Slide

  25. Escala por requisição, usuário não tem controle
    sobre o provisionamento

    View Slide

  26. Nunca pague por tempo ocioso

    View Slide

  27. Tolerante a erros implicitamente

    View Slide

  28. BYOC - Bring Your Own Code

    View Slide

  29. Métricas e logs são direitos universais

    View Slide

  30. E afinal
    O que é serverless?

    View Slide

  31.  It’s a concept of an ad-hoc scalable distributed
    event-driven computing.
    (Denis Makogon)

    View Slide

  32. Arquitetura Serverless

    View Slide

  33. Casos de uso
    Big data / IoT
    Sites serverless
    Backend mobile
    Processamento de Streams
    Processamento paralelo massivo
    Pós processamento de arquivos

    View Slide

  34. Principais plataformas

    View Slide

  35. The Serverless Framework

    View Slide

  36. Custos

    View Slide

  37. AWS Lambda GCF (Google Cloud)
    1⁰ milhão de exec/mês Grátis
    1⁰s 400K GB/s ao mês Grátis
    Execuções/Mês US$0,20 por milhão
    GB/s US$0,17 por 10K GB/s
    128MB RAM US$0,0000208 - 10s
    2M exec/mês Grátis
    1⁰s 400K GB/s ao mês Grátis
    Execuções/Mês US$0,40 por milhão
    GB/s
    US$0,25 por 100K
    GB/s
    128MB RAM US$0,0000231 - 10s

    View Slide

  38. Azure Functions
    1⁰ milhão de exec/mês Grátis
    1⁰s 400K GB/s ao mês Grátis
    Execuções/Mês R$0,20 por milhão
    GB/s R$0,16 por 10K GB/s

    View Slide

  39. - Altíssima disponibilidade
    - Paga apenas o que está de fato usando
    - A nível de milissegundos
    - Evita custos com máquinas sempre ativas
    - Nenhum gerenciamento de infra
    - Independentes
    - Escalabilidade infinita
    - Respondem e enviam muitos tipos de eventos
    PRÓS
    - Dependência com o provedor
    - Limites de execução
    - Limites de desenvolvimento
    - Serviços em grande parte ainda betas
    CONTRAS

    View Slide

  40. Exemplos
    Padrões de projeto muito usados

    View Slide

  41. Command
    Pattern

    View Slide

  42. Messaging
    Pattern

    View Slide

  43. Pipe
    Pattern

    View Slide

  44. Demo

    View Slide

  45. Referências
    ● Manifesto Serverless: https://goo.gl/bPdH1q
    ● Serverless: https://goo.gl/QDwcLf
    ● Nanosserviços: https://goo.gl/Eb4FKG
    ● Monólitos e SOA: https://goo.gl/PCwjWo
    ● Microservices e Serverless: https://goo.gl/ADvtEy
    ● Design Patterns com Serverless: https://goo.gl/nJtZpE
    ● InfoQ Serverless Computing: https://goo.gl/dSK3TS
    ● Artigo do Martin Fowler sobre Serverless: https://goo.gl/mzx8Wg
    ● Docs do Serverless Framework: https://goo.gl/2iHm2z
    ● Repositório de demo: https://bit.ly/sls-demo

    View Slide

  46. /khaosdoctor @_staticvoid
    lsantos.dev @khaosdoctor
    obrigado_
    https://goo.gl/forms/8ysK5D2GyH2
    HYcdl2

    View Slide