SlideShare uma empresa Scribd logo
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Criando Aplicações Serverless
Giovani Bassan
Arquiteto de Soluções , Amazon Web Services
Matheus Polli – IT Manager - BPP
ARC302
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Anúncio público de serviço:
Node v8.10 disponível no AWS Lambda
(e ainda: Go e .NET CoreCLR 2.0 estão em GA!)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda: 6 maneiras de melhorar o serverless “trend"
1. Pensar em patterns: playbook de arquitetura serverless
2. Scale like the pros: entendendo concorrência & throttling
3. SecOps all-the-way: permissões & privilégios
4. Pensar em apps
5. Software lifecycle: do código ao deployment
6. Quando as coisas dão errado: Error-handling e diagnostics
Caso de Cliente: BPP Serverless na AWS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Key Trends
Não re:Invent a roda!!
O poder dos Serviços Gerenciados
Processamento de Streams e
computação “extremamente paralela”
Adoção exponencial de
microservices
Serverless, arquiteturas
orientadas à eventos
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1. Serverless Patterns:
Serviços Gerenciados + Funções AWS Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Serviços Gerenciados como blocos de montagem
Amazon SNS
Amazon SQS
Amazon S3
Mensageria
Monitoração e Debugging
Storage
AWS X-Ray
AWS Lambda
Amazon API Gateway
Orquestração
API Proxy
Computação
AWS Step Functions
Amazon DynamoDB
Amazon Kinesis
Analytics
Database
Computação na ponta
AWS Greengrass
Lambda@Edge
Amazon Athena
Amazon Aurora
Serverless (coming soon)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Patterns para a era Cloud
• Transformação de Media no upload: Amazon S3 event + Lambda
• Limpeza NoSQL: Amazon DynamoDB change streams + Lambda
• Website Serverless: Amazon S3 + Amazon DynamoDB + Amazon API Gateway
+ Lambda
• Click-stream analytics: Amazon Kinesis Data Firehose + Lambda
• Processamento ordenado de eventos: Kinesis + Lambda
• Fanout Multi-function: Amazon SNS (or Lambda) + Lambda
• Workflows: AWS Step Functions + Lambda
• Distribuição de Eventos: Amazon CloudWatch Events + Lambda
• Serverless cron jobs: CloudWatch timer events + Lambda
• Login hooks: Amazon Cognito User Pools + Lambda
• Ações GraphQL: AWS AppSync + Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Patterns para a era Cloud
• Resize de imagens: AWS Lambda@Edge + Amazon CloudFront
• Regras de Email: Amazon SES + Lambda
• Compliance de políticas de configuração: AWS Config + Lambda
• Stored procedures: Amazon Aurora + Lambda
• Authorizers customizados para APIs: API Gateway Auth + Lambda
• Coreografia DevOps: CloudWatch alarms + Lambda
• Alexa skills: Amazon Alexa + Lambda
• Chatbots: Slack + Amazon Lex + Lambda
• Automação IoT: AWS IoT + Lambda
• Smart devices: AWS Greengrass + Lambda
• Encriptação de arquivos para trânsito: AWS Snowball Edge + Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Meta-patterns
1. Serviço enviando evento async para Lambda (Amazon S3,
Amazon SNS)
2. Lambda com evento do serviço (Amazon DynamoDB, Kinesis)
3. Exchange Synchronous (Alexa, Amazon Lex)
4. Transformação Batch (Kinesis Data Firehose)
5. Microservice (API + Lambda + sua escolha de DB)
6. Customização via funções (AWS Config, Amazon SES rules)
7. Fanout Data-driven (S3-Lambda, Lambda-Lambda)
8. Coreografia (AWS Step Functions + Lambda)
9. Funções Lambda em devices (AWS Greengrass, AWS Snowball
Edge)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Em Breve:
Amazon SQS como built-in Lambda
event source
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Patterns: Melhores práticas
• Não re:Invent a roda – use managed services quando possível
• …e mantenha-se atualizado! 
• Lambda@Edge expande o suporte à headers com Amazon S3 origin events
• Mantenha os eventos nos serviços AWS enquanto for possível:
• Exemplo:
• Amazon S3  Lambda  client do que Amazon S3  client  Lambda
• Verifique os limites fim-a-fim
• Prefira functions idempotent, stateless e quando não puder…
• Use Step Functions se necessitar de controle stateful (retries, longa duração)
• Criando SaaS ou plataforma ISV? Use as técnicas que a AWS usa:
1. Arquitetura modo serverless usando Lambda e API Gateway
2. Ofereça ao seu ecossitema customizações via funções
3. Permita que seus clientes e parceiros criem sistemas reativos com a emissão de
eventos
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
2. Concorrência, Throttling, & Timeouts
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway Throttling
Três nívels de throttling para APIs:
API Key level throttling – configurável no usage plan
Method level throttling – configurável na config. do stage
Account level throttling – limites podem ser alterados
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway Throttling
Algoritmo de Token bucket
Burst – o tamanho máximo do bucket
Rate – o número de tokens adicionados ao bucket
Você pode setar uma quota diária, semanal ou mensal
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Gerenciamento da concorrência Lambda
Limite de segurança da conta: 1,000 (É um Soft Limit )
Limites de concorrência por função
• Você define esses limites
• Se não definido: todas as funções compartilham o pool restante
• Permite proteger a capacidade do ambiente de produção (e não
é cobrado se não utilizado)
• Também útil para:
• Evitar que a escala do Lambda não inunde o backend legado
• Limitar uma função descontrolada enquanto desenvolve/testa
• Limitar os custos totais
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda Burst & Scale Throttles
Limites instantaneos de burst:
• Em US-EAST-1, EU-WEST-1, e US-WEST-2: 3,000 concorrentes
• Em UE-CENTRAL-1:1,000
• Todas outras regiões: 500
• Após isso:
• Concorrência adicional de 500/minuto (até atingir o limite da
função ou da conta)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Max Timeouts
API Gateway: 30 segundos
Lambda: 5 minutos
Lambda@Edge: 30 segundos (origin), 5 segundos (view
events)
O que fazer quando executar uma função que precisa de
mais de 30 segundos? Vá com async:
1. API  Step Function  your function
2. API  f1 (sync)  f2 (async)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3. Segurança e AuthZ
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Perguntas chave para segurança em Serverlesss Apps
O que pode chamar essa função/ API?
O que essa função / API pode chamar?
Quem pode modificar essas decisões?
Como posso saber o que está acontecendo?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Respostas chave para segurança em Serverlesss Apps
O que pode chamar essa função/ API?
O menor número de coisas possível!
O que essa função / API pode chamar?
O menor número de coisas possível!
Quem pode modificar essas decisões?
O menor número de pessoas possível!
Como posso saber o que está acontecendo?
Auditoria!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3 Conceitos Simples
1. Resource Policies
Analogia: Quem eu posso convidar
para minha casa?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3 Conceitos Simples
2. Execution Roles
Analogia: Com o que minhas
crianças podem brincar?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3 Conceitos Simples
3. Roles
Analogia: Estou no trabalho ou em
casa?
?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Resource Policies para controlar quem
pode chamar as APIs e em quais
condições
• Use cases
• Habilitar usuários de uma conta AWS
diferente para acessar sua API de uma
forma segura
• Restringir o acesso de ranges de IP
específicos ou blocos
• Limitar o acesso à uma função Lambda
específica
Nova Feature API Gateway - Resource Policies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway: Resource policies vs. Lambda Authorizers
• Qual devo usar?
• Se uma resource policies pode expressar a restrição, use-a. (Elas
são de graça, rápidas e padrão)
• Como essas features interagem?
• Nós as calculamos em três fases; todas as 3 tem que passar:
• Pre-authN (check de tempo, check de IP origem)
• Post-authN (call principal checks)
• Lambda authorizer (se presente)
• Nós paramos assim que uma permissão é negada, portanto o
lambda authorizer só é executado se for necessário para tomar
uma decisão.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway: Quadro comparativo Auth
Feature AWS_IAM Token Request
Amazon
Cognito
Authentication X X X X
Authorization X X X
Signature V4 X
Amazon Cognito
User Pools
X X X
Third-Party
Authentication
X X
Multiple Header
Support
X
Custos Adicionais None Pay per
authorizer
invoke
Pay per
authorizer
invoke
None
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Roles e X-account Calls
• Roles de exec. Lambda definem o que a função pode fazer.
• API Gateway invocation roles permitem mudar o principal
do caller para qualquer role/user na mesma conta
• Permaneça com o principal do API Gateway a não ser que você
tenha um motivo para isso.
• API Gateway agora também suporta:
• Invocações Lambda Cross-account
• Lambda Authorizer custom Cross-account
• Pattern: Mudança de conta dentro de uma API ou função:
Kinesis stream na Account A  function (Account A)  API (Account B)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Mantendo o track: Auditing e Config Policies
• Use o AWS CloudTrail para track de API e gerenciamento
de functions (create, delete, retrieve, etc.)
• É possível auditar a invocação de Lambdas
• Rodar queries no CloudTrail logs com Amazon Athena
• Ou construir um engine de análise simples usando Lambda
• Use o AWS Config para monitorar continuamente o
enforcement de políticas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Chamando Third-Party Services de forma segura
AWS Secrets Manager
• Faça o store, uso e gerenciamento de credenciais de
database, API keys e outros secrets para a AWS ou
terceiros
• Rotate, audit, e versionamento de secrets
• Suporte Built-in para MySQL, PostgreSQL e Amazon
Aurora no Amazon RDS
• Suporta tanto keys default ou custom AWS KMS
• Elimine senhas abertas no env, variável ou código Lambda!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
4. Tudo sobre [Serverless] Apps
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Serverless Application Repository
• Descubra, customize e faça o deploy de serverless apps
• Publique e compartilhe apps …
• Com sua conta AWS
• Entre contas
• Com todos! (acesso público)
• Se ainda não ouviu falar: Agora GA!
• Apps Financeiras baseadas em biblioteca NumPy
• Roadmap: Mais funcionalidades app-centric no console
Lambda e interação com o repositório de apps
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Apps são baseadas no SAM (Serverless App Model)
• Mais features do API Gateway no SAM (março/18):
• Logging e configuração de métricas
• CORS
• Endpoints Regionais
• Binary data
• Settings Method-level como limite de throttling e TTL de cache
• Suporte de event source para Amazon CloudWatch
Logging
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Anúncio de Open Source
Implementação do SAM agora é open source!
Nos ajude a criar novas tools com SAM contribuindo com a
especificação ou com o translator SAM:
• Adicionando event sources
• Incluir transformações SAM em outras ferramentas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
5. Build, Teste e Deploy de Serverless
Apps
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS CodePipeline
AWS Code Suite
AWS
CodeCommit
ou GitHub
AWS
CodeBuild
(build)
AWS
CodeBuild
(test)
AWS
CloudFormation
(deploy)
AWS
CodeDeploy
AWS Cloud9
Editor
AWS
CodeStar
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Melhores Práticas para Desenvolvimento Serverless
• CI/CD pipeline para apps (incluindo publish no repo!)
• Teste e debug local
• Novidade: Python debugging no AWS Cloud9 IDE
• AWS CloudFormation: Deploy em multiplas regiões
• Util para multi-region APIs
• Deploy incremental para segurança
• Weighted aliases no Lambda
• Canary stages no API Gateway
• AWS CodeDeploy: Deploy de app SAM (incluindo rollback)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
6. Quando as coisas dão errado:
Error-Handling e Diagnostics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway CloudWatch Metrics
API Gateway Default metrics (free):
Count número total de invokes para o API Gateway
4XXError #invokes que geraram um erro 4XX
(incluindo throttling)
5XXError #invokes que geraram um erro 5XX
Latency total time to fully process request
IntegrationLatency tempo do API Gateway para um call integration
CacheHitCount número de successful hit no cache
CacheMissCount número de cache miss ocorridos
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API Gateway CloudWatch Metrics
Incluidas free
Granularidade: por API stage
Default Metrics
Cobradas no CloudWatch
Granularidade: por método
Pode ser global
Detailed Metrics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda CloudWatch Metrics (free)
Tanto no nível da função e versão:
• Invocations, Errors, Throttles, IteratorAge, DeadLetterError
Tanto no nível da conta ou da função (com limite definido):
• ConcurrentExecutions
Somente no nível da conta:
• UnreservedConcurrentExecutions
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon CloudWatch Alarms
Qualquer métrica pode disparar um alarme
As notificações podem ser enviadas para um tópico Amazon
SNS
O tópico Amazon SNS pode enviar para outros destinos
Email
SQS queue
Função Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon API Gateway CloudWatch Logs
API Gateway Logging
2 níveis: error e info
Opcional: log conteúdo request/body método
Global no stage ou override por método
API Gateway Access Logging
Fomato de log customizável para parse
Log Pivots
Construa métricas baseadas em filtros de log
Detalhe nos logs que geraram a métrica
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda CloudWatch Logs
Padrão:
• Configurado Automaticamente
• Infos Básicas (requests, duration, memory, etc.)
capturadas automaticamente
• App pode adicionar log entries
Avançado:
• Selecione um range no gráfico e visualize os logs
daquele momento
• Envia logs para outra Lambda function
• Use o Elasticsearch & Kibana para agregar/analisar
• “Top talkers”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
O Ciclo de vida de um Request Lambda
1. Download do código (filesystem SquashFS)
2. Start do runtime da linguagem
3. Load do Código (ex. class loading no Java)
4. Run Código “init” (ex., static initializers no Java)
5. Processa o request warm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Mesma visão com AWS X-Ray
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Coisas que você pode monitorar com o X-Ray
• Cold vs warm starts
• Async dwell time (tempo gasto com o evento em fila)
• Duração de calls para outros serviços AWS (e com
customização, adicionar trace points, serviços 3rd)
• Erros e throttles de call para serviços AWS
Muitas ofertas de 3rd podem ajudar também!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Fazendo o Cold Starts mais Eficiente
• Controle as dependências do seu pacote de deploy
• Faça Tree shake do seu Java! (Hint: Spring é expensive )
• Combine “hot paths”…mas preserve agilidade
• Otimize para sua language, quando aplicável…
• Node – Browserfy, Minify
• AWS Java v2 SDK (preview)
• Só use VPC quando precisar acessar um recurso lá!
• Delay loading quando possível
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Resumo: 6 maneiras de melhorar o serverless “trend”
1. Pensar em patterns: playbook de arquitetura serverless
2. Scale like the pros: entendendo concorrência & throttling
3. SecOps all-the-way: permissões & privilégios
4. Pensar em apps
5. Software lifecycle: do Código ao deployment
6. Quando as coisas dão errado: Error-handling e diagnostics
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Built in Security, Performance e
Escalabilidade”
“Não há outro player
que ofereça uma stack
tão completa e
confiável como a da
AWS”
- Matheus Polli,
Gerente de TI da BPP.
BPP é o maior parceiro VISA na
América Latina para emissão de
cartões pré-pagos.
Entrega soluções de pagamentos
para empresas e usuários finais.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
O Desafio
Manipular milhões de transações
financeiras por dia, com demandas
sazonais de uma maneira
responsiva, cost-effective, segura e
altamente disponível.
Eliminar esforços de administração
de ambiente e focar no
desenvolvimento de valor ao
cliente.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Solução
Inserir diagrama de arquitetura
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Por favor, complete a avaliação desta
sessão no aplicativo do summit.
…e…Go Serverless!!
Não esqueça do Feedback!
1. Clique no icone de
Agenda
2. Selecione a sessão
que você assistiu
3. Clique em Avaliar
Sessão e submeta seu
feedback
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Obrigado!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
 
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...
 
Criando Aplicações Serverless
Criando Aplicações ServerlessCriando Aplicações Serverless
Criando Aplicações Serverless
 
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo SummitConstruindo Data Lakes e Analytics na AWS -  BDA301 - Sao Paulo Summit
Construindo Data Lakes e Analytics na AWS - BDA301 - Sao Paulo Summit
 
Sessão Avançada: Construindo um Data Warehouse Moderno com Amazon Redshift - ...
Sessão Avançada: Construindo um Data Warehouse Moderno com Amazon Redshift - ...Sessão Avançada: Construindo um Data Warehouse Moderno com Amazon Redshift - ...
Sessão Avançada: Construindo um Data Warehouse Moderno com Amazon Redshift - ...
 
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
Sessão Avançada: Otimizando Bancos de Dados Relacionais na AWS com Amazon RDS...
 
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
 
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Desenvolvimento de Aplicações em Container com AWS Fargate
Desenvolvimento de Aplicações em Container com AWS FargateDesenvolvimento de Aplicações em Container com AWS Fargate
Desenvolvimento de Aplicações em Container com AWS Fargate
 
Impulsione Inteligência ao IoT Edge com AWS Greengrass - IOT201 - Sao Paulo ...
Impulsione Inteligência ao IoT Edge com AWS Greengrass -  IOT201 - Sao Paulo ...Impulsione Inteligência ao IoT Edge com AWS Greengrass -  IOT201 - Sao Paulo ...
Impulsione Inteligência ao IoT Edge com AWS Greengrass - IOT201 - Sao Paulo ...
 
Desenvolvimento de Aplicações em Container com AWS Fargate - DEV302 - Sao Pa...
Desenvolvimento de Aplicações em Container com AWS Fargate -  DEV302 - Sao Pa...Desenvolvimento de Aplicações em Container com AWS Fargate -  DEV302 - Sao Pa...
Desenvolvimento de Aplicações em Container com AWS Fargate - DEV302 - Sao Pa...
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
 
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
DevOps aplicado à AWS -  DEM07 - Sao Paulo SummitDevOps aplicado à AWS -  DEM07 - Sao Paulo Summit
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
 
Construindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon RedshiftConstruindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon Redshift
 
Gerenciando um ambiente de nuvem complexo - DEM05 - Sao Paulo Summit
Gerenciando um ambiente de nuvem complexo - DEM05 - Sao Paulo SummitGerenciando um ambiente de nuvem complexo - DEM05 - Sao Paulo Summit
Gerenciando um ambiente de nuvem complexo - DEM05 - Sao Paulo Summit
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Rodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKSRodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKS
 

Semelhante a Criando Aplicações Serverless - ARC302 - Sao Paulo Summit

Semelhante a Criando Aplicações Serverless - ARC302 - Sao Paulo Summit (20)

Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Iniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloudIniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloud
 
Arquiteturas de E Commerce da próxima geração
Arquiteturas de E Commerce da próxima geraçãoArquiteturas de E Commerce da próxima geração
Arquiteturas de E Commerce da próxima geração
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
 
AWS Financial Management
AWS Financial ManagementAWS Financial Management
AWS Financial Management
 
Data Lakes - EBC on the road Brazil Edition [Portuguese]
Data Lakes - EBC on the road Brazil Edition [Portuguese]Data Lakes - EBC on the road Brazil Edition [Portuguese]
Data Lakes - EBC on the road Brazil Edition [Portuguese]
 
Path to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big DataPath to the Future #1 - Tendências de Big Data
Path to the Future #1 - Tendências de Big Data
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
 
Abaas - Advanced Beer-as-a-Service
Abaas - Advanced Beer-as-a-ServiceAbaas - Advanced Beer-as-a-Service
Abaas - Advanced Beer-as-a-Service
 
Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017Function as a Service: IT forum expo 2017
Function as a Service: IT forum expo 2017
 
Webinar Data Lakes & Analytics na AWS
Webinar Data Lakes & Analytics na AWSWebinar Data Lakes & Analytics na AWS
Webinar Data Lakes & Analytics na AWS
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 
AWS
AWS AWS
AWS
 
Escalando com segurança na AWS
Escalando com segurança na AWSEscalando com segurança na AWS
Escalando com segurança na AWS
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 

Mais de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Criando Aplicações Serverless - ARC302 - Sao Paulo Summit

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Criando Aplicações Serverless Giovani Bassan Arquiteto de Soluções , Amazon Web Services Matheus Polli – IT Manager - BPP ARC302
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Anúncio público de serviço: Node v8.10 disponível no AWS Lambda (e ainda: Go e .NET CoreCLR 2.0 estão em GA!)
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda: 6 maneiras de melhorar o serverless “trend" 1. Pensar em patterns: playbook de arquitetura serverless 2. Scale like the pros: entendendo concorrência & throttling 3. SecOps all-the-way: permissões & privilégios 4. Pensar em apps 5. Software lifecycle: do código ao deployment 6. Quando as coisas dão errado: Error-handling e diagnostics Caso de Cliente: BPP Serverless na AWS
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Key Trends Não re:Invent a roda!! O poder dos Serviços Gerenciados Processamento de Streams e computação “extremamente paralela” Adoção exponencial de microservices Serverless, arquiteturas orientadas à eventos
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1. Serverless Patterns: Serviços Gerenciados + Funções AWS Lambda
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Serviços Gerenciados como blocos de montagem Amazon SNS Amazon SQS Amazon S3 Mensageria Monitoração e Debugging Storage AWS X-Ray AWS Lambda Amazon API Gateway Orquestração API Proxy Computação AWS Step Functions Amazon DynamoDB Amazon Kinesis Analytics Database Computação na ponta AWS Greengrass Lambda@Edge Amazon Athena Amazon Aurora Serverless (coming soon)
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns para a era Cloud • Transformação de Media no upload: Amazon S3 event + Lambda • Limpeza NoSQL: Amazon DynamoDB change streams + Lambda • Website Serverless: Amazon S3 + Amazon DynamoDB + Amazon API Gateway + Lambda • Click-stream analytics: Amazon Kinesis Data Firehose + Lambda • Processamento ordenado de eventos: Kinesis + Lambda • Fanout Multi-function: Amazon SNS (or Lambda) + Lambda • Workflows: AWS Step Functions + Lambda • Distribuição de Eventos: Amazon CloudWatch Events + Lambda • Serverless cron jobs: CloudWatch timer events + Lambda • Login hooks: Amazon Cognito User Pools + Lambda • Ações GraphQL: AWS AppSync + Lambda
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns para a era Cloud • Resize de imagens: AWS Lambda@Edge + Amazon CloudFront • Regras de Email: Amazon SES + Lambda • Compliance de políticas de configuração: AWS Config + Lambda • Stored procedures: Amazon Aurora + Lambda • Authorizers customizados para APIs: API Gateway Auth + Lambda • Coreografia DevOps: CloudWatch alarms + Lambda • Alexa skills: Amazon Alexa + Lambda • Chatbots: Slack + Amazon Lex + Lambda • Automação IoT: AWS IoT + Lambda • Smart devices: AWS Greengrass + Lambda • Encriptação de arquivos para trânsito: AWS Snowball Edge + Lambda
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Meta-patterns 1. Serviço enviando evento async para Lambda (Amazon S3, Amazon SNS) 2. Lambda com evento do serviço (Amazon DynamoDB, Kinesis) 3. Exchange Synchronous (Alexa, Amazon Lex) 4. Transformação Batch (Kinesis Data Firehose) 5. Microservice (API + Lambda + sua escolha de DB) 6. Customização via funções (AWS Config, Amazon SES rules) 7. Fanout Data-driven (S3-Lambda, Lambda-Lambda) 8. Coreografia (AWS Step Functions + Lambda) 9. Funções Lambda em devices (AWS Greengrass, AWS Snowball Edge)
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Em Breve: Amazon SQS como built-in Lambda event source
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns: Melhores práticas • Não re:Invent a roda – use managed services quando possível • …e mantenha-se atualizado!  • Lambda@Edge expande o suporte à headers com Amazon S3 origin events • Mantenha os eventos nos serviços AWS enquanto for possível: • Exemplo: • Amazon S3  Lambda  client do que Amazon S3  client  Lambda • Verifique os limites fim-a-fim • Prefira functions idempotent, stateless e quando não puder… • Use Step Functions se necessitar de controle stateful (retries, longa duração) • Criando SaaS ou plataforma ISV? Use as técnicas que a AWS usa: 1. Arquitetura modo serverless usando Lambda e API Gateway 2. Ofereça ao seu ecossitema customizações via funções 3. Permita que seus clientes e parceiros criem sistemas reativos com a emissão de eventos
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 2. Concorrência, Throttling, & Timeouts
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway Throttling Três nívels de throttling para APIs: API Key level throttling – configurável no usage plan Method level throttling – configurável na config. do stage Account level throttling – limites podem ser alterados
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway Throttling Algoritmo de Token bucket Burst – o tamanho máximo do bucket Rate – o número de tokens adicionados ao bucket Você pode setar uma quota diária, semanal ou mensal
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Gerenciamento da concorrência Lambda Limite de segurança da conta: 1,000 (É um Soft Limit ) Limites de concorrência por função • Você define esses limites • Se não definido: todas as funções compartilham o pool restante • Permite proteger a capacidade do ambiente de produção (e não é cobrado se não utilizado) • Também útil para: • Evitar que a escala do Lambda não inunde o backend legado • Limitar uma função descontrolada enquanto desenvolve/testa • Limitar os custos totais
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda Burst & Scale Throttles Limites instantaneos de burst: • Em US-EAST-1, EU-WEST-1, e US-WEST-2: 3,000 concorrentes • Em UE-CENTRAL-1:1,000 • Todas outras regiões: 500 • Após isso: • Concorrência adicional de 500/minuto (até atingir o limite da função ou da conta)
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Max Timeouts API Gateway: 30 segundos Lambda: 5 minutos Lambda@Edge: 30 segundos (origin), 5 segundos (view events) O que fazer quando executar uma função que precisa de mais de 30 segundos? Vá com async: 1. API  Step Function  your function 2. API  f1 (sync)  f2 (async)
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3. Segurança e AuthZ
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Perguntas chave para segurança em Serverlesss Apps O que pode chamar essa função/ API? O que essa função / API pode chamar? Quem pode modificar essas decisões? Como posso saber o que está acontecendo?
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Respostas chave para segurança em Serverlesss Apps O que pode chamar essa função/ API? O menor número de coisas possível! O que essa função / API pode chamar? O menor número de coisas possível! Quem pode modificar essas decisões? O menor número de pessoas possível! Como posso saber o que está acontecendo? Auditoria!
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3 Conceitos Simples 1. Resource Policies Analogia: Quem eu posso convidar para minha casa?
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3 Conceitos Simples 2. Execution Roles Analogia: Com o que minhas crianças podem brincar?
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 3 Conceitos Simples 3. Roles Analogia: Estou no trabalho ou em casa? ?
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. • Resource Policies para controlar quem pode chamar as APIs e em quais condições • Use cases • Habilitar usuários de uma conta AWS diferente para acessar sua API de uma forma segura • Restringir o acesso de ranges de IP específicos ou blocos • Limitar o acesso à uma função Lambda específica Nova Feature API Gateway - Resource Policies
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway: Resource policies vs. Lambda Authorizers • Qual devo usar? • Se uma resource policies pode expressar a restrição, use-a. (Elas são de graça, rápidas e padrão) • Como essas features interagem? • Nós as calculamos em três fases; todas as 3 tem que passar: • Pre-authN (check de tempo, check de IP origem) • Post-authN (call principal checks) • Lambda authorizer (se presente) • Nós paramos assim que uma permissão é negada, portanto o lambda authorizer só é executado se for necessário para tomar uma decisão.
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway: Quadro comparativo Auth Feature AWS_IAM Token Request Amazon Cognito Authentication X X X X Authorization X X X Signature V4 X Amazon Cognito User Pools X X X Third-Party Authentication X X Multiple Header Support X Custos Adicionais None Pay per authorizer invoke Pay per authorizer invoke None
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Roles e X-account Calls • Roles de exec. Lambda definem o que a função pode fazer. • API Gateway invocation roles permitem mudar o principal do caller para qualquer role/user na mesma conta • Permaneça com o principal do API Gateway a não ser que você tenha um motivo para isso. • API Gateway agora também suporta: • Invocações Lambda Cross-account • Lambda Authorizer custom Cross-account • Pattern: Mudança de conta dentro de uma API ou função: Kinesis stream na Account A  function (Account A)  API (Account B)
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Mantendo o track: Auditing e Config Policies • Use o AWS CloudTrail para track de API e gerenciamento de functions (create, delete, retrieve, etc.) • É possível auditar a invocação de Lambdas • Rodar queries no CloudTrail logs com Amazon Athena • Ou construir um engine de análise simples usando Lambda • Use o AWS Config para monitorar continuamente o enforcement de políticas
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Chamando Third-Party Services de forma segura AWS Secrets Manager • Faça o store, uso e gerenciamento de credenciais de database, API keys e outros secrets para a AWS ou terceiros • Rotate, audit, e versionamento de secrets • Suporte Built-in para MySQL, PostgreSQL e Amazon Aurora no Amazon RDS • Suporta tanto keys default ou custom AWS KMS • Elimine senhas abertas no env, variável ou código Lambda!
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 4. Tudo sobre [Serverless] Apps
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Serverless Application Repository • Descubra, customize e faça o deploy de serverless apps • Publique e compartilhe apps … • Com sua conta AWS • Entre contas • Com todos! (acesso público) • Se ainda não ouviu falar: Agora GA! • Apps Financeiras baseadas em biblioteca NumPy • Roadmap: Mais funcionalidades app-centric no console Lambda e interação com o repositório de apps
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Apps são baseadas no SAM (Serverless App Model) • Mais features do API Gateway no SAM (março/18): • Logging e configuração de métricas • CORS • Endpoints Regionais • Binary data • Settings Method-level como limite de throttling e TTL de cache • Suporte de event source para Amazon CloudWatch Logging
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Anúncio de Open Source Implementação do SAM agora é open source! Nos ajude a criar novas tools com SAM contribuindo com a especificação ou com o translator SAM: • Adicionando event sources • Incluir transformações SAM em outras ferramentas
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 5. Build, Teste e Deploy de Serverless Apps
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS CodePipeline AWS Code Suite AWS CodeCommit ou GitHub AWS CodeBuild (build) AWS CodeBuild (test) AWS CloudFormation (deploy) AWS CodeDeploy AWS Cloud9 Editor AWS CodeStar
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Melhores Práticas para Desenvolvimento Serverless • CI/CD pipeline para apps (incluindo publish no repo!) • Teste e debug local • Novidade: Python debugging no AWS Cloud9 IDE • AWS CloudFormation: Deploy em multiplas regiões • Util para multi-region APIs • Deploy incremental para segurança • Weighted aliases no Lambda • Canary stages no API Gateway • AWS CodeDeploy: Deploy de app SAM (incluindo rollback)
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 6. Quando as coisas dão errado: Error-Handling e Diagnostics
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway CloudWatch Metrics API Gateway Default metrics (free): Count número total de invokes para o API Gateway 4XXError #invokes que geraram um erro 4XX (incluindo throttling) 5XXError #invokes que geraram um erro 5XX Latency total time to fully process request IntegrationLatency tempo do API Gateway para um call integration CacheHitCount número de successful hit no cache CacheMissCount número de cache miss ocorridos
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. API Gateway CloudWatch Metrics Incluidas free Granularidade: por API stage Default Metrics Cobradas no CloudWatch Granularidade: por método Pode ser global Detailed Metrics
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda CloudWatch Metrics (free) Tanto no nível da função e versão: • Invocations, Errors, Throttles, IteratorAge, DeadLetterError Tanto no nível da conta ou da função (com limite definido): • ConcurrentExecutions Somente no nível da conta: • UnreservedConcurrentExecutions
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon CloudWatch Alarms Qualquer métrica pode disparar um alarme As notificações podem ser enviadas para um tópico Amazon SNS O tópico Amazon SNS pode enviar para outros destinos Email SQS queue Função Lambda
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon API Gateway CloudWatch Logs API Gateway Logging 2 níveis: error e info Opcional: log conteúdo request/body método Global no stage ou override por método API Gateway Access Logging Fomato de log customizável para parse Log Pivots Construa métricas baseadas em filtros de log Detalhe nos logs que geraram a métrica
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lambda CloudWatch Logs Padrão: • Configurado Automaticamente • Infos Básicas (requests, duration, memory, etc.) capturadas automaticamente • App pode adicionar log entries Avançado: • Selecione um range no gráfico e visualize os logs daquele momento • Envia logs para outra Lambda function • Use o Elasticsearch & Kibana para agregar/analisar • “Top talkers”
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. O Ciclo de vida de um Request Lambda 1. Download do código (filesystem SquashFS) 2. Start do runtime da linguagem 3. Load do Código (ex. class loading no Java) 4. Run Código “init” (ex., static initializers no Java) 5. Processa o request warm
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Mesma visão com AWS X-Ray
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Coisas que você pode monitorar com o X-Ray • Cold vs warm starts • Async dwell time (tempo gasto com o evento em fila) • Duração de calls para outros serviços AWS (e com customização, adicionar trace points, serviços 3rd) • Erros e throttles de call para serviços AWS Muitas ofertas de 3rd podem ajudar também!
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Fazendo o Cold Starts mais Eficiente • Controle as dependências do seu pacote de deploy • Faça Tree shake do seu Java! (Hint: Spring é expensive ) • Combine “hot paths”…mas preserve agilidade • Otimize para sua language, quando aplicável… • Node – Browserfy, Minify • AWS Java v2 SDK (preview) • Só use VPC quando precisar acessar um recurso lá! • Delay loading quando possível
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Resumo: 6 maneiras de melhorar o serverless “trend” 1. Pensar em patterns: playbook de arquitetura serverless 2. Scale like the pros: entendendo concorrência & throttling 3. SecOps all-the-way: permissões & privilégios 4. Pensar em apps 5. Software lifecycle: do Código ao deployment 6. Quando as coisas dão errado: Error-handling e diagnostics
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. “Built in Security, Performance e Escalabilidade” “Não há outro player que ofereça uma stack tão completa e confiável como a da AWS” - Matheus Polli, Gerente de TI da BPP. BPP é o maior parceiro VISA na América Latina para emissão de cartões pré-pagos. Entrega soluções de pagamentos para empresas e usuários finais.
  • 50. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 51. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. O Desafio Manipular milhões de transações financeiras por dia, com demandas sazonais de uma maneira responsiva, cost-effective, segura e altamente disponível. Eliminar esforços de administração de ambiente e focar no desenvolvimento de valor ao cliente.
  • 52. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Solução Inserir diagrama de arquitetura
  • 53. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Por favor, complete a avaliação desta sessão no aplicativo do summit. …e…Go Serverless!!
  • 54. Não esqueça do Feedback! 1. Clique no icone de Agenda 2. Selecione a sessão que você assistiu 3. Clique em Avaliar Sessão e submeta seu feedback
  • 55. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Obrigado!