O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Construindo APIs com Amazon API Gateway e AWS Lambda

650 visualizações

Publicada em

Com o Amazon API Gateway e AWS Lambda é possível construir API de forma escalável, sem utilização de servidor. Nessa sessão será abordado arquiteturas, boas práticas e integrações entre os serviços.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Construindo APIs com Amazon API Gateway e AWS Lambda

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thiago Paulino, Arquiteto de Soluções 2016 Construindo APIs com Amazon API Gateway e AWS Lambda
  2. 2. O que esperar dessa sessão? Introdução AWS Lambda • Benefícios • Como funciona? • Arquitetura de Referência • Demo Introdução AWS API-Gateway • Benefícios • Como funciona? • Arquitetura de Referência • Demo
  3. 3. Aplicação rodando na AWS
  4. 4. Aplicação rodando na AWS sem auto-scaling
  5. 5. AWS Lambda Um serviço de processamento o qual você não tem que pensar em: • Servidores • Alta ou baixa capacidade de recursos • Deploy de aplicações • Escalabilidade e tolerancia a falhas • Sistema operacional e atualizações • Metricas e log
  6. 6. AWS Lambda …Agora tudo pode ser mais fácil. • Porte seu código para a AWS com bibliotecas nativas • Execute código em pararelo • Crie backends, execução baseada em eventos e processamento de dados Nunca pague por algo parado!
  7. 7. Aplicação rodando na AWS com Lambda
  8. 8. AWS Lambda
  9. 9. AWS Lambda Serverless, event-driven compute service microservice sem servidores
  10. 10. O que é serverless AWS? • Serverless = Não pense em servidores • Lambda: Recursos computacionais baseado em eventos • API Gateway: Contrua API’s rest com lambda • Serverless AWS = Lambda + API Gateway • “Lambda tem pontencial para ser o ponto focal da nuvem AWS” – Janakiram MSV (janakiram.com)
  11. 11. Benefícios EVENT-DRIVEN SCALESERVERLESS SUBSECOND BILLING
  12. 12. Por que serverless AWS? Isso é barato…
  13. 13. Como Funciona 1. Upload do código 2. Configure evento e permissões 3. Lambda executa em resposta a eventos 4. Pague somente quando a fução for executada
  14. 14. Integrações Lambda Backend SNS Cognito Kinesis Dynamo S3 SDK Mobile, Alexa … API Gateway SES CloudWatch CloudFormation AWS Config Scheduled events
  15. 15. Pontos de Atenção Controle de Permissão Stateless Logging e Monitoramento
  16. 16. Casos de Uso - Tumbnail
  17. 17. Procesamento de arquivos em tempo real The Seattle Times utiliza AWS Lambda para redimensionar as imagens do seu site para diferentes dispositivos como: Computadores(Desktop e notebooks), tablets e smartphones
  18. 18. Casos de Uso - ETL
  19. 19. Encoding de arquivos Os estudios de gravação enviam os arquivos para o Amazon S3. Após o envio uma função Lambda é executada para iniciar o processo de agregação desses arquivos, validação, identificação e publicação.
  20. 20. Casos de Uso – Segurança
  21. 21. AWS Lambda Demo
  22. 22. Limites  Resource Limits  Duração máxima: 5 minutos  Heap máxima: 1.5 GB  Armazenamento temporário ("/tmp"): 512 MB  Número máximo de processos/threads : 1.024  Tamanho máximo do pacote da aplicação (zip/jar): 50 MB
  23. 23. Estendendo AWS Lambda  Use o /tmp como cache  Rode qualquer executável (independente de linguagem)  Use plugins do Grunt e Jenkins para deploys  Slack + Lambda  JAWS: The Server-less Application Framework
  24. 24. Amazon API Gateway
  25. 25. Proliferação de APIs O número de APIs publicadas está crescendo rapidamente 2418 10302 0 2000 4000 6000 8000 10000 12000 Jun-05 Nov-05 Apr-06 Sep-06 Feb-07 Jul-07 Dec-07 May-08 Oct-08 Mar-09 Aug-09 Jan-10 Jun-10 Nov-10 Apr-11 Sep-11 Feb-12 Jul-12 Dec-12 May-13 Oct-13 * Dados do ProgrammableWeb
  26. 26. Na AWS, nós rodamos muitas APIs …Com o passar do tempo, nós aprendemos algumas lições
  27. 27. Seu feedback Gerenciar múltiplas versões e estágios de uma API é difícil.
  28. 28. Seu feedback Gerenciar múltiplas versões e estágios de uma API é difícil. Monitorar acessos de desenvolvedores terceiros consome tempo.
  29. 29. Seu feedback Gerenciar múltiplas versões e estágios de uma API é difícil. Monitorar acessos de desenvolvedores terceiros consome tempo. Autorizar acessos é desafiador.
  30. 30. Seu feedback Gerenciar múltiplas versões e estágios de uma API é difícil. Monitorar acessos de desenvolvedores terceiros consome tempo. Autorizar acessos é desafiador. Picos de tráfego geram um peso operacional.
  31. 31. Seu feedback Gerenciar múltiplas versões e estágios de uma API é difícil. Monitorar acessos de desenvolvedores terceiros consome tempo. Autorizar acessos é desafiador. Picos de tráfego geram um peso operacional. E se eu não quiser nenhum servidor?
  32. 32. Amazon API Gateway Hospede múltiplas versões e ambientes das suas APIs Crie e distribua chaves de API para desenvolvedores Beneficie-se da Sigv4/JTW/OAuth para autorizar acesso às APIs Controle e monitore requisições para proteger o backend, Cache .. Use AWS Lambda!
  33. 33. Fluxo de uma chamada API Internet Mobile apps Websites Serviços API Gateway Funções AWS Lambda AWS API Gateway cache Endpoints na Amazon Qualquer outro endpoint acessível Amazon CloudWatc h
  34. 34. Configuração da API Você pode criar APIs Definir recursos da API Definir métodos para o recurso • Métodos são recurso + HTTP verb Pet Store /pets /pets/{petId} • GET • POST • PUT
  35. 35. Deploy da API Configuração da API pode ser implantado em um ambiente (stage) Stages são ambientes diferentes; por exemplo: • Dev (e.g., example.com/dev) • Beta (e.g., example.com/beta) • Prod (e.g., example.com/prod) Pet Store dev beta gamma prod
  36. 36. Gerencie múltiplos ambientes e versões de sua API API 1 (v1) Stage (dev) Stage (prod) API 2 (v2) Stage (dev)
  37. 37. Custom domain names • Você pode configurar custom domain names • Forneça API Gateway com um certificado HTTPS • Custom domain names podem ser apontados para um estágio da API • Aponte para uma API e ambiente (stage) • Beta (e.g., yourapi.com/beta) • Prod (e.g., yourapi.com/prod)
  38. 38. Segurança – Sigv4 Call login API, no authentication required Cliente API Gateway Backend /login AWS Lambda fn_login User accounts database Credentials verified Amazon Cognito developer authenticated identities Access and secret key /login Receives credentials to sign API calls
  39. 39. Segurança – Custom Authorizer
  40. 40. Caching API responses
  41. 41. Caching API responses Você pode configurar a chave de cache e TTL da resposta da API Itens cacheados retornam sem chamar o backend Um cache é dedicado para você, por estágio (stage) 0.5 GB a 237 GB de cache
  42. 42. API Gateway Back end GET - /sayHello AWS Lambda fn_sayHello /sayHello { “message” : “hello world” } <xml> <message> Hello world </message> </xml> #set($root = $input.path('$')) <xml> <message> $root.message </message> </xml> Input/output transforms
  43. 43. Input/output transforms Filtrar resultados de output • Remover dados privados ou desnecessários • Filtrar o tamanho do dataset para melhorar a performance da API GET para POST • Leia os query string parameters de sua requisição GET e crie um corpo para fazer requisições POST para seu back end JSON para XML • Receba um input JSON e transforme-o em XML para seu back end • Receba um JSON de uma função AWS Lambda e transforme-o para XML
  44. 44. Outras Funcionalidades Mock Integration Importador de Swagger Gere SDKs a partir de suas APIs Custom Domain / HTTPS Client-Side SSL Authentication Link lambda version
  45. 45. Amazon API Gateway Demo
  46. 46. Amazon API Gateway Recapitulando AWS Lambda • Não há servidores para serem gerenciados • Escalabilidade contínua • Medidor de sub-segundo • Econômico e eficiente • Desempenho em qualquer escala • Monitore facilmente as atividades das APIs • Agilize o desenvolvimento de APIs • Controles de segurança flexíveis • Crie endpoints RESTful para serviços existentes • Execute suas APIs sem servidores

×