© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry...

77
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM São Paulo, 27 de Março de 2015 AWS @ QConSP 2015 Sem Servidores: Mobile Backend-as-a-Service na plataforma AWS

Transcript of © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry...

Page 1: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Fábio Silva e Henry Alvarado

Arquitetos de Solução @ Amazon Web Services LATAM

São Paulo, 27 de Março de 2015

AWS @ QConSP 2015Sem Servidores: Mobile Backend-as-a-Service na plataforma AWS

Page 2: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Agenda

Page 3: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Agenda

• Amazon Web Services

• Mobile Backend-as-a-Service (MBaaS)

• Arquitetura MBaaS na AWS

• Demo

• Próximos Passos

Page 4: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Amazon Web Services

Page 5: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Infraestrutura Global

Mais de 1 milhão de clientes ativos em mais de 190 países

Mais de 800 agências governamentais

Mais de 3,000 instituições educacionais

11 regiões

29 zonas de disponibilidade

52 pontos de presença

A cada dia, a AWS adiciona capacidade computacional equivalente ao que era necessário para suportar a Amazon.com quando ela era um negócio de $7 bilhões

Page 6: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

O Diferencial da AWS

Construindo e gerenciando nuvem desde 2006

Mais de 40 serviços para suportar qualquer workload

Histórico de releases rápidos e orientados aos clientes

11 regiões, 29 zonas, 52 pontos de presença

45 reduções proativas de preço até hoje

Mais de 8,000 SIs e ISVs e 2,000 produtos no marketplace

Experiência

Variedade de serviços

Inovação

Presença Global

Filosofia de Precificação

Ecossistema

Page 7: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

O Diferencial da AWS

Infrastructure RegionsPoints of PresenceAvailability Zones

Core ServicesStorage(Object, Block and Archival)

Compute(VMs, Auto-scaling and Load Balancing)

Databases(Relational, NoSQL, Caching)

Networking(VPC, DX, DNS)

CDN

Access ControlUsage Auditing

Monitoring and Logs

Administration & Security

Key Storage

IdentityManagement

Platform Services

Deployment & Management

One-click web app deployment

Dev/ops resourcemanagement

Resource Templates Push Notifications

Mobile Services

Mobile Analytics

Identity

Sync

App Services

Workflow

Transcoding

Email

Search

Queuing &Notifications

App streaming

Analytics

Hadoop

Data Pipelines

Data Warehouse

Real-timeStreaming Data

EnterpriseApplications

Virtual Desktops

Collaboration and Sharing

Page 8: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Mobile Backend-as-a-Service (MBaaS)

Page 9: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

O Que é MBaaS?

• Mobile Backend-as-a-Service• Modelo para provimento de serviços de backend via

cloud para aplicações web e mobile• Notificações via push, integração com redes sociais,

armazenamento, banco de dados, busca, etc.• Agilidade e desenvolvimento mais rápido (foco na

aplicação e não em serviços de no backend) • Baixo custo e alta disponibilidade e escalabilidade• Menos Infraestrutura para manter (servidores, SO, web

e app server, BD, storage, redes, etc.)

Page 10: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Aplicações e Casos de Uso

• Jogos, Apps de Live Score, Votação, etc.• Aplicações Mobile• Aplicações Web• Aplicações Multi-plataforma• Aplicações Híbridas (parte MBaaS e parte tradicional

com servidores)• Aplicações 100% sem servidores

Page 11: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Caso de Uso: Transição de Estado

Perfil do usuário inicialmente como “anônimo” ou “guest”

Page 12: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Caso de Uso: Transição de Estado

Posterior registro da conta

• A transição deveria ser tranquila

Page 13: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Caso de Uso: Transição de Estado

Múltiplas contas podem ser vinculadas ao mesmo perfil

• Usuário deveria ter um identificador padronizado e único

Page 14: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Caso de Uso: Estado em Jogos

Page 15: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Arquitetura MBaaS na AWS

Page 16: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Um Exemplo na AWS: Aplicação Sem Servidor, Backend 100% através de MBaaS

• Nenhum servidor• Mini-CMS Web para cadastro de categorias e itens• Publicação (geração de versões estáticas das páginas

para as múltiplas plataformas de visualização – Web Browser, Android e IOS)

• Perfil do usuário (Favoritos) em datastore sincronizado entre as plataformas

• Geração de Thumbnail, Busca, Notificações SNS e Analytics

Page 17: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Sem MBaaS, o que seria necessário?

• Webservers para entrega de conteúdo estático (i.e. nginx ou apache)

• Application Servers para conteúdo dinâmico (i.e. tomcat ou jboss)

• Banco de Dados (i.e. mysql ou mongodb)• Engine de Busca (i.e. solr ou elasticsearch)• Implementação de Datastore• Instalação e manutenção de toda essa infraestrutura!• Muito, mas muito mais código do que com serviços

Page 18: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

AUT

H

COGNITO SYNC STORE

(FAVORITES)

FAVORIT

ESSNS

SEA

RC

HIN

G

COGNITO PUSH SYNC

MOBILE ANALYTIC

S

COGNITO

Page 19: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

CM

S

Page 20: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

EDITORWEB

BROWSER

CM

S

Page 21: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

Page 22: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

SDK Javascript AWS

• Acesso aos serviços da AWS diretamente do browser

• Não requer servidores

• Fácil de instalar

• Fácil de aprender (javascript!)

• Login em redes sociais com Cognito

• Dados persistentes com Dynamodb

• Armazenamento de arquivos com o S3

• Suporte a todos os browser modernos

Page 23: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

SDK Mobile AWS

• Mecanismo comum de autenticação entre diversas plataformas

• Tratamento automático de intermitências de rede

• Suporte a múltiplas plataformas: Android, IOS, Unity e FireOS

• SDKs nativos otimizados para OS móvel, como por exemplo, através do uso de arquitetura local para cache offline

• Footprint de memória otimizado; Escolha e use apenas os jars que necessitar

Page 24: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Outros SDKs AWS

Page 25: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

Page 26: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Route 53• Serviço de DNS altamente disponível e

escalável.• Tradução de nome para IP com excelente custo

benefício.• Múltiplos tipos de roteamento:

• Roteamento Baseado em Latência.• Geo DNS.• Round Robin por Peso.• DNS Failover com healthchecks.

• Registro de domínio (compra de domínios).• Pode ser usado também para redirecionar

usuários para infraestrutura fora da AWS.

Page 27: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

CLOUDFRONT

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

Page 28: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

CloudFront (Content Delivery Network / CDN)

• Rede de entrega de conteúdo• Infraestrutura Global (52 pontos de presença)• Otimizada para alta performance• Escalabilidade massiva• Altamente segura• Self Service • Precificada para minimizar custo

Page 29: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

CloudFront (Content Delivery Network / CDN)

• Arquivos estáticos• Media e Entretenimento• Jogos• eCommerce• Publicidade Digital• Downloads de Softwares• Websites Dinâmicos e Aplicações

Page 30: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

CLOUDFRONT S3

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

Page 31: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

S3 (Simple Storage Service)

• Armazenamento de objetos acessível via Web• Pague exatamente e apenas pelo que usar• Altamente durável (desenhado para 99.999999999%)• Escalabilidade virtualmente ilimitada• Nativamente online

Page 32: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

S3 (Simple Storage Service)

• Objetos armazenados no S3 são URLs• Transfira o trabalho de servir arquivos estáticos para o Amazon S3• Redução de uso de disco físico• Características:

• I/O paralelizado para máxima velocidade• Permissões a nível de recursos via IAM• Listas de controle e políticas de acesso• Envio direto das aplicações ao S3• Criptografia server-side

Page 33: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

S3 Code Snippet (Javascript)

var bucket = new AWS.S3({params : {

Bucket : 'pairarchitecture'}

});

var fileChooser = document.getElementById('add-file-chooser');var file = fileChooser.files[0];Var fileName = file.name.toLowerCase();

var params = {Key : 'images/' + fileName,ContentType : file.type,Body : file

};

bucket.upload(params, function(err, data) {...

});

Page 34: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

CLOUDFRONT S3

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

Page 35: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

AUTH

Page 36: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Cognito (Autenticação e Data Store)

Simplifica o gerenciamento de

acesso e identidades

Acesso seguro a todos os serviços da

AWS

Sincronização Cross-device e Cross-

plataforma

Implementa melhores práticas de segurança

“Dados da sua aplicação seguros, disponíveis offline e sincronizados entre diferentes dispositivos”

Sincroniza dados do usuário entre as

plataformas e dispositivos

Gerencia usuários com identidade única entre diferentes provedores

Guest Sua própriaAutenticação

Page 37: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Cognito Code Snippet (Javascript)

var params = {AccountId : "98XXXXXX48490",RoleArn : "arn:aws:iam::982433XXXXXX90:role/Cognito_pairarchitecturecmsAuth_Role",IdentityPoolId : "us-east-1:4eXXXXXX40-16df-4ad8-a55f-c0a68616e585",Logins : {

'graph.facebook.com' : response.authResponse.accessToken}

};

AWS.config.region = 'us-east-1';AWS.config.credentials = new AWS.CognitoIdentityCredentials(params);

AWS.config.credentials.get(function(err) {if (!err) {

console.log("Cognito Identity Id: ” + AWS.config.credentials.identityId);}

});

Page 38: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53DYNAMOD

B

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

CM

S

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

Page 39: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

DynamoDB

Serviço de banco NoSQL em nuvem

• Não-relacional

• Performance previsível

• Escalabilidade sem esforço

• Fácil administração

Page 40: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

DynamoDB Code Snippet (Javascript)

var db = new AWS.DynamoDB();

var params = {KeyConditions : {

category_name : {ComparisonOperator : 'EQ',AttributeValueList : [ {

S : ‘Categoria1’} ]

}},TableName : 'pairarchitecture_items',ConsistentRead : true

};

db.query(params, function(err, data) {...

});

Page 41: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

S

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

Page 42: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Lambda

Escalabilidade automática

Foco na lógica do negócio, não na infraestrutura. Suba seu código e deixe o Lambda fazer o resto.

Nenhuma Administração

Lambda escala a infraestrutura conforme necessário e você paga conforme usa

Traga seu próprio Código

“Execute funções stateless na nuvem e escale automaticamente sem ter de gerenciar nenhum servidor”

Lamba está começando com Javascript (node.js), mas em

breve teremos suporte a outras linguagens.

Page 43: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Lambda

Gatilhos a partir de Dados

Processamento de Streams de dados

Indexação &sincronização

Back-endsem servidor

IoT

Page 44: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Lambda Code Snippet (Node.js)var aws = require('aws-sdk');var AWS_REGION = "us-east-1";var CLOUDSEARCH_DOC_ENDPOINT = "doc-mbaasdemo- ... cloudsearch.amazonaws.com";var sdf1;var params = {query: '-foobar’, size: 10000};

exports.handler = function(event, context) {csd = new aws.CloudSearchDomain({endpoint: CLOUDSEARCH_DOC_ENDPOINT,region:

AWS_REGION});csd.search(params, function(err, data) {

data.hits.hit.forEach (function(item, index) {sdf1.push({type: "delete", id: item.id});

});});

csd.uploadDocuments({documents: JSON.stringify(sdf1),contentType: "application/json"}, function(err, data){

if (err) {console.log("Error Deleting Documents: ” + err);

});});

}

Page 45: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Lambda Code Snippet (Javascript)

var lambda = new AWS.Lambda();

thumb = fileName.split(".")[0] + "_thumb." + fileName.split(".")[1];

var params = {FunctionName : 'ThumbCreator',InvokeArgs : "{\"bucket\":\"pairarchitecture\",\"key\":\"" + "images/" + fileName +

"\"}”};

lambda.invokeAsync(params, function(err, data) {...

});

Page 46: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

Page 47: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING

Page 48: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING

Page 49: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

Page 50: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

Page 51: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

CloudSearch

• Engine de Busca 100% gerenciada

• Fácil setup e operação

• Escalável

• Confiável

• Alta Performance

• Não tenha mais que adivinhar capacidade

• Funcionalidades

• Busca facetada, sugestões, relevância, busca geo-localizada, suporte a multi-língua, etc.

• Custo

• Pague apenas aquilo que utilizar

Page 52: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

Page 53: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

Page 54: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

Page 55: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

Page 56: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

Page 57: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

Page 58: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

Page 59: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

Page 60: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

Page 61: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

Page 62: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

Page 63: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

COGNITO

AUTH

Page 64: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Cognito Code Snippet (Android)private Session.StatusCallback callback = new Session.StatusCallback() {

@Overridepublic void call(Session session, SessionState state, Exception exception) {

onSessionStateChange(session, state, exception);}

};

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);CognitoSyncClientManager.init(this);

}

private void onSessionStateChange(Session session, SessionState state, Exception exception) {if (state.equals(SessionState.OPENED)) {

setFacebookSession(session);}

}

private void setFacebookSession(Session session) {CognitoSyncClientManager.addLogins("graph.facebook.com”, session.getAccessToken());

}

Page 65: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

COGNITO

AUTH

FAVORITES

Page 66: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

AUTH

COGNITO SYNC STORE

(FAVORITES)

FAVORITES

SNS

COGNITO PUSH SYNC

COGNITO

Page 67: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

SNS (Simple Notification Service)

Amazon SNSMobile Push

Cross-plataforma

Internet

Apple APNS

Google GCM

Amazon ADM

Windows WNS e MPNS

Baidu CP

Com o Amazon SNS, desenvolvedores podem mandar notificações push para múltiplas plataformas e usuários mobile ao redor do mundo

Celulares e Tablets Android

Celulares e Tablets Apple

Dispositivos Kindle

iOS

Dispositivos Windows Desktop e Windows Phone

Page 68: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

SNS

COGNITO PUSH SYNC

COGNITO

AUTH

COGNITO SYNC STORE

(FAVORITES)

FAVORITES

Page 69: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

SNS

SEA

RC

HIN

G

COGNITO PUSH SYNC

COGNITO

AUTH

COGNITO SYNC STORE

(FAVORITES)

FAVORITES

Page 70: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

ROUTE 53

LAMBDA

DYNAMODB

CLOUDFRONT S3

COGNITO

EDITORWEB

BROWSER

AWS SDKJAVASCRIPT

LAMBDA CALL FOR THUMBNAIL CREATION

CM

STHUMBNAILS

BA

CK

EN

D (

MB

aaS

)

CATEGORIES AND ITEMS CREATION

AUTH

LAMBDA CALL FOR JSON + HTML PUBLISHING

AND INDEXING S3

THUMBNAILS

JSON + HTML

CLOUDSEARCH

IND

EX

IN

G

FR

ON

TEN

D

END USERWEB

BROWSER

AWS SDKJAVASCRIPT

END USERMOBILE (IOS)

AWS MOBILE SDKIOS

END USERMOBILE

(ANDROID)

AWS MOBILE SDK ANDROID

ROUTE 53

CLOUDFRONT

SNS

SEA

RC

HIN

G

COGNITO PUSH SYNC

MOBILE ANALYTIC

S

COGNITO

AUTH

COGNITO SYNC STORE

(FAVORITES)

FAVORITES

Page 71: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Mobile Analytics

Free Tier escalável e generoso

Foco em métricas que importam. Relatórios de utilização disponíveis a cada 60 minutos a partir

do recebimento dos dados

Rápido

Escale até bilhões de eventos por dia partir de

milhões de usuários

Tome posse dos seus dados

“Fácil de coletar, visualizar e interpretar os dados de uso da sua aplicação mobile em larga escala”

Dados coletados não são compartilhados,

agregados ou reutilizados.

Page 72: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Demo

Page 73: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Próximos passos

Page 74: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Comece a usar sem pagar

aws.amazon.com/free/

Page 76: © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry Alvarado Arquitetos de Solução @ Amazon Web Services LATAM.

Documentações (Getting Started)Amazon Route53:

http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html

Amazon CloudFront:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.html

Amazon S3:

http://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html

Amazon Cognito

http://aws.amazon.com/documentation/cognito/

Amazon DynamoDB

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html

AWS Lambda

http://docs.aws.amazon.com/lambda/latest/dg/getting-started.html

Amazon CloudSerach

http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-started.html

Amazon SNS

http://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html