SlideShare a Scribd company logo
1 of 44
Download to read offline
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
moraistm@amazon.com
Criando Aplicações Serverless
Thiago Morais, Amazon Web Services
Manager Solutions Architecture
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Serverless: Introdução
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Um mundo sem servidores…
Construa e opere
aplicações sem se
preocupar com
servidores
… pague somente por
requisições
“ Escale com o uso Alta disponibilidade
automática
Nunca pague por
tempo osciso
Sem servidores para
provisionar ou
gerenciar
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda para todos os tipos de aplicações
Analítico
Gestão Operacional
Dashboards interativos
Workflows para dados
Gestão de conteúdo
Workflows ETL
Backends
Aplicações Móveis e Web
Webhooks e Bots
Automação de TI
Gestão de políticas
Gestão de infra estrutura
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Por que Lambda?
Concorrência: capaz de escalar até 20.000 execuções de Lambda
concorrentes durante os testes
Uma simulação de 20 milhões de hipotecas executadas 1.5
horas, mais de 4X mais rápido que o processo anterior
Escala massiva com baixo custo
Arquitetura on-premise não estava escalando para efetuar as
simulações de risco diárias necessárias para atender as demandas de
negócio
Fannie Mae
AWS Lambda
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Por que Lambda?
Escalabilidade Continua: capaz de escalar continuamente em
picos de tráfego de até 22.000 requisições concorrentes
Time to Market: 8 semanas da ideia à produção
Arquitetura baseada em eventos maximiza a eficiente de
recursos.
Serverless acelerando o ‘Time to Market’
Agero criou o aplicativo MileUp para detecção e prevenção de
acidentes no trânsito em tempo real com Serverless
AWS Lambda
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Componentes para aplicação serverless
AWS Lambda
Amazon DynamoDB
Amazon SNS
Amazon API Gateway Amazon SQS Amazon Kinesis
Amazon S3
Orquestração
Proxy de API e GraphQL Mensageria e Filas Analítico
Monitoria e depuração
Computação Armazenamento Banco de dados
AWS X-RayAWS Step Functions Amazon Cognito
Gestão de usuários e IdP
AWS AppSync Amazon Athena
AWS Lambda@Edge
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ecosistema Serverless
Build e CI/CD
Log e MonitoramentoDesenvolvimento e publicação
Chalice Framework Serverless Java Container
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Por onde começar?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Um dia na vida do desenvolvedor…
Gerente “Precisamos de uma aplicação que permita que eles atualizem suas preferencias
em nossa plataforma – Nossos concorrentes já lançaram algo similar, precisamos disso
o quanto antes. Não quero pagar muito por isso, ainda mais quando ninguém estiver
utilizando. Tenha em mente que estamos crescendo, esta aplicação precisa ser
escalável e fácil de gerenciar. Ah! Você terá que tocar esse projeto sozinho.”
Desenvolvedor “Deixa comigo. Será tudo serverless…”
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Aplicação web Serverless com...
…uma API ???
…acesso à dados existentes no ???
…conteúdo estático servidor por ???
…regras de negócio em ???
O Bob prometeu pro chefe dele uma aplicação
E agora?
Passo 1: O que iremos utilizar?
O que precisamos
Um dia na vida do desenvolvedor…
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Construindo APIs com Amazon API Gateway
Internet
Aplicativos
Websites
Serviços
AWS Lambda
functionsAPI Gateway
Cache
Endpoints on
Amazon EC2
Recursos HTTP
públicos
Amazon
CloudWatch
Monitoring
Amazon
CloudFront
Any other
AWS service
Endpoints on
Amazon VPC
Cognito
Authorizer
Custom
Authorizer
Autorização de
API
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Acessando dados no Amazon DynamoDB
API Simples
• GetItem(primaryKey)
• PutItem(item)
Amazon DynamoDB
Accelerator
Amazon DynamoDB
Aplicações
Amazon DynamoDB - Streams
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Conteúdo estático no S3 e Cloudfront
Icone feito com FlatIcon
Amazon CloudFront Amazon S3
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Regras de negócio no AWS Lambda
Serviços
Modificações
de estado
Requisições
HTTP
Alterações de
recursos
Eventos Funções
Node.js
Python
Java
C#
Golang
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Conectando tudo…
S3
CloudFront
Conteúdo
Estático
Entrega
de
conteúdo
Camada
de API
Camada de
Aplicação
Camada de
Persistência
API
Gateway
DynamoDBAWS
Lambda
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Aplicação web Serverless com...
…uma API hospedada no Amazon API Gateway
…acesso à dados existentes no Amazon DynamoDB
…conteúdo estático servido pelo Amazon S3 e CloudFront
…regras de negócio escritas em funções Lambda
O Bob prometeu pro chefe dele uma aplicação
E agora?
Passo 2: Encontrar um exemplo funcional
O que precisamos
Um dia na vida de um desenvolvedor
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agora, precisamos fazer algumas modificações.
Passo 3: Customizar e publicar
IDE para dev/test/debug local ???
Customizar a aplicação do passo 1 ???
Configurar CI/CD para o time ???
Publicação (de forma segura!) ???
O que precisamos
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Este é
o
SAM!
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Serverless Application Model (SAM)
Extensão do CloudFormation para serverless
Novos tipos de recursos para serverless:
funções, APIs, e tabelas
Suporte a todos os recursos do CloudFormation
Padrão aberto (Apache 2.0)
github.com/awslabs
serverless-application-model
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SAM template
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Resources:
GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
ListTable:
Type: AWS::Serverless::SimpleTable
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SAM template
Define para o CloudFormation que
será utilizado um SAM “transform”
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Resources:
GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
ListTable:
Type: AWS::Serverless::SimpleTable
Cria uma função Lambda com uma
política IAM gerenciada, define qual
runtime utilizar, qual localização do
Código, e qual o ponto de entrada
da função. Também cria um API
Gateway e efetua o mapeamento
das requisções e permissões
necessárias.
Cria tabela no DynamoDB com 5
unidades de escrita e leitura
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SAM CLI – API Gateway/Lambda Locais
Ferramenta de linha de comando para
testar aplicações Serverless localmente
Funciona com funções Lambda e APIs
“proxy”
Objeto response e logs das funções
disponíveis na sua máquina local
Suporte a todos runtimes nativos
github.com/awslabs
aws-sam-cli
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Cloud 9 – IDE nativa para Cloud
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Envie suas alterações diretamente
do Cloud9 para o Git…
Configure um AWS CodePipeline
para compilar suas mudanças
automaticamente
Local Testing
CI/CD Automatizado
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Preciso fazer a publicação de funções
Lamba de maneira segura e
incremental.
Como fazer a publicação de
diversas funções e APIs de
forma coordenada?
Como faço roll back
automaticamente?
Como faço gestão de
tráfego entre duas
versões de uma API?
Como fazer publicações seguras?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda: Alias para gestão de tráfego
• Defina o percentual de tráfego entre duas versões da
mesma função
API Gateway: Publicações incrementais
• Divida o tráfego entre dois estágios
AWS CodeDeploy: Automação para publicações seguras
• Rollback automático utilizando alarmes do Amazon
CloudWatch
• Eventos de Pre e Pos publicação para melhor controle das
suas publicações
Publicações seguras e incrementais
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agora, precisamos fazer algumas modificações.
Passo 3: Customizar e publicar
IDE para dev/test/debug local – Cloud 9 and SAM Local
Customizar a aplicação do passo 1 – Cloud 9
Configurar CI/CD para o time – CodeStar
Publicação (de forma segura!) – SAM and CodeDeploy
O que precisamos
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Por último, como integrar com legado…
Passo 4: Conectar com sistemas legados
Monitorar e limitar concorrência – ???
Analisar implicações de desempenho – ???
Conectar com on-premise e/ou VPC – ???
Auditar – ???
O que precisamos
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda: Métrica de concorrência
Lambda: Limites de concorrência por função
Conectividade com sistemas corporativos
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda: Métrica de concorrência
Lambda: Limites de concorrência por função
O que isso nos permite?
1. Limitar concorrência aos sistemas legados
2. Desabilitar uma função temporariamente
3. Limitar os custos de uma função
Conectividade com sistemas corporativos
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Como ter mais visibilidade da sua Aplicação?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Como ter mais visibilidade da sua Aplicação?
const AWSXRay = require('aws-xray-sdk-core');
# Wraps AWS SDK and trace subsequent AWS Services
const AWS = AWSXRay.captureAWS(require('aws-sdk'));
const dynamoDb = new AWS.DynamoDB.DocumentClient();
const sqs = new AWS.SQS();
# Wraps HTTP calls made
const https = AWSXRay.captureHTTPs(require('https'));
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Integrações comVPC (PrivateLink)
Acesse os serviços dentro da
sua VPC pela sua API
APIs Regionais
Pontos de acesso à sua API
regionais
Conectividade sistemas corporativos: API Gateway
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Logs estruturados para a
suas APIs
Suporte ao AWS CloudTrail
para funções Lambda
Log e auditoria
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Referências
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Whitepaper
Serverless Architectures
with AWS Lambda
November 2017
bit.ly/2zVvp0w
Optimizing Enterprise
Economics with
Serverless
Architectures
October 2017
bit.ly/2hQdy44
Serverless Applications
Lens
November 2017
bit.ly/serverless_lens
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Playlist
re:Invent 2017 – Serverless Breakout Sessions
bit.ly/serverless_playlist17
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Obrigado!
@ moraistm@amazon.com
Thiago Morais, Amazon Web Services
Manager Solutions Architecture

More Related Content

What's hot

What's hot (20)

Rodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKSRodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKS
 
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
 
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
 
Aplicando uma Estratégia de Banco de Dados AWS Personalizada: Encontre o Banc...
Aplicando uma Estratégia de Banco de Dados AWS Personalizada: Encontre o Banc...Aplicando uma Estratégia de Banco de Dados AWS Personalizada: Encontre o Banc...
Aplicando uma Estratégia de Banco de Dados AWS Personalizada: Encontre o Banc...
 
Criando Aplicações Serverless - ARC302 - Sao Paulo Summit
Criando Aplicações Serverless -  ARC302 - Sao Paulo SummitCriando Aplicações Serverless -  ARC302 - Sao Paulo Summit
Criando Aplicações Serverless - ARC302 - Sao Paulo Summit
 
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...
 
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças -  SID301 - Sao Paulo SummitDetecção e Mitigação de Ameaças -  SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo Summit
 
Otimizando Amazon EC2 por Diversão e Lucro
Otimizando Amazon EC2 por Diversão e LucroOtimizando Amazon EC2 por Diversão e Lucro
Otimizando Amazon EC2 por Diversão e Lucro
 
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo SummitDo monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
 
Migre seus Desktops e Apps para a AWS com Amazon WorkSpaces e AppStream 2 - ...
Migre seus Desktops e Apps para a AWS com Amazon WorkSpaces e AppStream 2 -  ...Migre seus Desktops e Apps para a AWS com Amazon WorkSpaces e AppStream 2 -  ...
Migre seus Desktops e Apps para a AWS com Amazon WorkSpaces e AppStream 2 - ...
 
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...
 
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de ConectividadeCriando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
 
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
 
SAP HANA na AWS: Por que migrar para a nuvem? - ENT301 - Sao Paulo Summit
SAP HANA na AWS: Por que migrar para a nuvem? -  ENT301 - Sao Paulo SummitSAP HANA na AWS: Por que migrar para a nuvem? -  ENT301 - Sao Paulo Summit
SAP HANA na AWS: Por que migrar para a nuvem? - ENT301 - 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 - ...
 
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 - ...
 
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 ...
 
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...
 
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 - ...
 
É Tudo sobre Dados - ARC202 - Sao Paulo Summit
É Tudo sobre Dados -  ARC202 - Sao Paulo SummitÉ Tudo sobre Dados -  ARC202 - Sao Paulo Summit
É Tudo sobre Dados - ARC202 - Sao Paulo Summit
 

Similar to Criando Aplicações Serverless

Similar to Criando Aplicações Serverless (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
 
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
 
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessFSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
 
A culture of rapid innovation with DevOps, microservices, and serverless - MA...
A culture of rapid innovation with DevOps, microservices, and serverless - MA...A culture of rapid innovation with DevOps, microservices, and serverless - MA...
A culture of rapid innovation with DevOps, microservices, and serverless - MA...
 
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
 
A culture of rapid innovation with DevOps, microservices, and serverless - MA...
A culture of rapid innovation with DevOps, microservices, and serverless - MA...A culture of rapid innovation with DevOps, microservices, and serverless - MA...
A culture of rapid innovation with DevOps, microservices, and serverless - MA...
 
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
 
Webinar: Containers
Webinar: ContainersWebinar: Containers
Webinar: Containers
 
Microsoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web ServicesMicrosoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web Services
 
Performing real-time ETL into data lakes - ADB202 - São Paulo AWS Summit
Performing real-time ETL into data lakes - ADB202 - São Paulo AWS SummitPerforming real-time ETL into data lakes - ADB202 - São Paulo AWS Summit
Performing real-time ETL into data lakes - ADB202 - São Paulo AWS Summit
 
Webinar - Inicie sua jornada de migração para nuvem com a AWS (Português)
Webinar - Inicie sua jornada de migração para nuvem com a AWS (Português)Webinar - Inicie sua jornada de migração para nuvem com a AWS (Português)
Webinar - Inicie sua jornada de migração para nuvem com a AWS (Português)
 
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
 
Visão Geral dos Serviços de Identidade, Diretório e Acesso da AWS - SID201 -...
Visão Geral dos Serviços de Identidade, Diretório e Acesso da AWS -  SID201 -...Visão Geral dos Serviços de Identidade, Diretório e Acesso da AWS -  SID201 -...
Visão Geral dos Serviços de Identidade, Diretório e Acesso da AWS - SID201 -...
 
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]
 
Cost-management journey- Where did Nubank start - CMP202 - São Paulo AWS Summit
Cost-management journey- Where did Nubank start - CMP202 - São Paulo AWS SummitCost-management journey- Where did Nubank start - CMP202 - São Paulo AWS Summit
Cost-management journey- Where did Nubank start - CMP202 - São Paulo AWS Summit
 
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...
 
AWS
AWS AWS
AWS
 
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 ...
 

More from Amazon Web Services LATAM

More from Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 

Criando Aplicações Serverless

  • 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. moraistm@amazon.com Criando Aplicações Serverless Thiago Morais, Amazon Web Services Manager Solutions Architecture
  • 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Serverless: Introdução
  • 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Um mundo sem servidores… Construa e opere aplicações sem se preocupar com servidores … pague somente por requisições “ Escale com o uso Alta disponibilidade automática Nunca pague por tempo osciso Sem servidores para provisionar ou gerenciar
  • 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda para todos os tipos de aplicações Analítico Gestão Operacional Dashboards interativos Workflows para dados Gestão de conteúdo Workflows ETL Backends Aplicações Móveis e Web Webhooks e Bots Automação de TI Gestão de políticas Gestão de infra estrutura
  • 6. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Por que Lambda? Concorrência: capaz de escalar até 20.000 execuções de Lambda concorrentes durante os testes Uma simulação de 20 milhões de hipotecas executadas 1.5 horas, mais de 4X mais rápido que o processo anterior Escala massiva com baixo custo Arquitetura on-premise não estava escalando para efetuar as simulações de risco diárias necessárias para atender as demandas de negócio Fannie Mae AWS Lambda
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Por que Lambda? Escalabilidade Continua: capaz de escalar continuamente em picos de tráfego de até 22.000 requisições concorrentes Time to Market: 8 semanas da ideia à produção Arquitetura baseada em eventos maximiza a eficiente de recursos. Serverless acelerando o ‘Time to Market’ Agero criou o aplicativo MileUp para detecção e prevenção de acidentes no trânsito em tempo real com Serverless AWS Lambda
  • 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Componentes para aplicação serverless AWS Lambda Amazon DynamoDB Amazon SNS Amazon API Gateway Amazon SQS Amazon Kinesis Amazon S3 Orquestração Proxy de API e GraphQL Mensageria e Filas Analítico Monitoria e depuração Computação Armazenamento Banco de dados AWS X-RayAWS Step Functions Amazon Cognito Gestão de usuários e IdP AWS AppSync Amazon Athena AWS Lambda@Edge
  • 9. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ecosistema Serverless Build e CI/CD Log e MonitoramentoDesenvolvimento e publicação Chalice Framework Serverless Java Container
  • 10. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Por onde começar?
  • 11. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Um dia na vida do desenvolvedor… Gerente “Precisamos de uma aplicação que permita que eles atualizem suas preferencias em nossa plataforma – Nossos concorrentes já lançaram algo similar, precisamos disso o quanto antes. Não quero pagar muito por isso, ainda mais quando ninguém estiver utilizando. Tenha em mente que estamos crescendo, esta aplicação precisa ser escalável e fácil de gerenciar. Ah! Você terá que tocar esse projeto sozinho.” Desenvolvedor “Deixa comigo. Será tudo serverless…”
  • 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Aplicação web Serverless com... …uma API ??? …acesso à dados existentes no ??? …conteúdo estático servidor por ??? …regras de negócio em ??? O Bob prometeu pro chefe dele uma aplicação E agora? Passo 1: O que iremos utilizar? O que precisamos Um dia na vida do desenvolvedor…
  • 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Construindo APIs com Amazon API Gateway Internet Aplicativos Websites Serviços AWS Lambda functionsAPI Gateway Cache Endpoints on Amazon EC2 Recursos HTTP públicos Amazon CloudWatch Monitoring Amazon CloudFront Any other AWS service Endpoints on Amazon VPC Cognito Authorizer Custom Authorizer Autorização de API
  • 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Acessando dados no Amazon DynamoDB API Simples • GetItem(primaryKey) • PutItem(item) Amazon DynamoDB Accelerator Amazon DynamoDB Aplicações Amazon DynamoDB - Streams
  • 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Conteúdo estático no S3 e Cloudfront Icone feito com FlatIcon Amazon CloudFront Amazon S3
  • 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Regras de negócio no AWS Lambda Serviços Modificações de estado Requisições HTTP Alterações de recursos Eventos Funções Node.js Python Java C# Golang
  • 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Conectando tudo… S3 CloudFront Conteúdo Estático Entrega de conteúdo Camada de API Camada de Aplicação Camada de Persistência API Gateway DynamoDBAWS Lambda
  • 18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Aplicação web Serverless com... …uma API hospedada no Amazon API Gateway …acesso à dados existentes no Amazon DynamoDB …conteúdo estático servido pelo Amazon S3 e CloudFront …regras de negócio escritas em funções Lambda O Bob prometeu pro chefe dele uma aplicação E agora? Passo 2: Encontrar um exemplo funcional O que precisamos Um dia na vida de um desenvolvedor
  • 19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agora, precisamos fazer algumas modificações. Passo 3: Customizar e publicar IDE para dev/test/debug local ??? Customizar a aplicação do passo 1 ??? Configurar CI/CD para o time ??? Publicação (de forma segura!) ??? O que precisamos
  • 21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Este é o SAM!
  • 22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Serverless Application Model (SAM) Extensão do CloudFormation para serverless Novos tipos de recursos para serverless: funções, APIs, e tabelas Suporte a todos os recursos do CloudFormation Padrão aberto (Apache 2.0) github.com/awslabs serverless-application-model
  • 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SAM template AWSTemplateFormatVersion: "2010-09-09" Transform: AWS::Serverless-2016-10-31 Resources: GetHtmlFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.gethtml Runtime: nodejs4.3 Policies: AmazonDynamoDBReadOnlyAccess Events: GetHtml: Type: Api Properties: Path: /{proxy+} Method: ANY ListTable: Type: AWS::Serverless::SimpleTable
  • 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SAM template Define para o CloudFormation que será utilizado um SAM “transform” AWSTemplateFormatVersion: "2010-09-09" Transform: AWS::Serverless-2016-10-31 Resources: GetHtmlFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.gethtml Runtime: nodejs4.3 Policies: AmazonDynamoDBReadOnlyAccess Events: GetHtml: Type: Api Properties: Path: /{proxy+} Method: ANY ListTable: Type: AWS::Serverless::SimpleTable Cria uma função Lambda com uma política IAM gerenciada, define qual runtime utilizar, qual localização do Código, e qual o ponto de entrada da função. Também cria um API Gateway e efetua o mapeamento das requisções e permissões necessárias. Cria tabela no DynamoDB com 5 unidades de escrita e leitura
  • 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SAM CLI – API Gateway/Lambda Locais Ferramenta de linha de comando para testar aplicações Serverless localmente Funciona com funções Lambda e APIs “proxy” Objeto response e logs das funções disponíveis na sua máquina local Suporte a todos runtimes nativos github.com/awslabs aws-sam-cli
  • 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Cloud 9 – IDE nativa para Cloud
  • 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Envie suas alterações diretamente do Cloud9 para o Git… Configure um AWS CodePipeline para compilar suas mudanças automaticamente Local Testing CI/CD Automatizado
  • 28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Preciso fazer a publicação de funções Lamba de maneira segura e incremental. Como fazer a publicação de diversas funções e APIs de forma coordenada? Como faço roll back automaticamente? Como faço gestão de tráfego entre duas versões de uma API? Como fazer publicações seguras?
  • 29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda: Alias para gestão de tráfego • Defina o percentual de tráfego entre duas versões da mesma função API Gateway: Publicações incrementais • Divida o tráfego entre dois estágios AWS CodeDeploy: Automação para publicações seguras • Rollback automático utilizando alarmes do Amazon CloudWatch • Eventos de Pre e Pos publicação para melhor controle das suas publicações Publicações seguras e incrementais
  • 30. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 33. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agora, precisamos fazer algumas modificações. Passo 3: Customizar e publicar IDE para dev/test/debug local – Cloud 9 and SAM Local Customizar a aplicação do passo 1 – Cloud 9 Configurar CI/CD para o time – CodeStar Publicação (de forma segura!) – SAM and CodeDeploy O que precisamos
  • 34. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Por último, como integrar com legado… Passo 4: Conectar com sistemas legados Monitorar e limitar concorrência – ??? Analisar implicações de desempenho – ??? Conectar com on-premise e/ou VPC – ??? Auditar – ??? O que precisamos
  • 35. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda: Métrica de concorrência Lambda: Limites de concorrência por função Conectividade com sistemas corporativos
  • 36. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda: Métrica de concorrência Lambda: Limites de concorrência por função O que isso nos permite? 1. Limitar concorrência aos sistemas legados 2. Desabilitar uma função temporariamente 3. Limitar os custos de uma função Conectividade com sistemas corporativos
  • 37. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Como ter mais visibilidade da sua Aplicação?
  • 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Como ter mais visibilidade da sua Aplicação? const AWSXRay = require('aws-xray-sdk-core'); # Wraps AWS SDK and trace subsequent AWS Services const AWS = AWSXRay.captureAWS(require('aws-sdk')); const dynamoDb = new AWS.DynamoDB.DocumentClient(); const sqs = new AWS.SQS(); # Wraps HTTP calls made const https = AWSXRay.captureHTTPs(require('https'));
  • 39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Integrações comVPC (PrivateLink) Acesse os serviços dentro da sua VPC pela sua API APIs Regionais Pontos de acesso à sua API regionais Conectividade sistemas corporativos: API Gateway
  • 40. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Logs estruturados para a suas APIs Suporte ao AWS CloudTrail para funções Lambda Log e auditoria
  • 41. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Referências
  • 42. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Whitepaper Serverless Architectures with AWS Lambda November 2017 bit.ly/2zVvp0w Optimizing Enterprise Economics with Serverless Architectures October 2017 bit.ly/2hQdy44 Serverless Applications Lens November 2017 bit.ly/serverless_lens
  • 43. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Playlist re:Invent 2017 – Serverless Breakout Sessions bit.ly/serverless_playlist17
  • 44. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Obrigado! @ moraistm@amazon.com Thiago Morais, Amazon Web Services Manager Solutions Architecture