1) O documento discute as complexidades de desenvolver o backend de aplicativos móveis e como o AWS Mobile Hub e serviços da AWS podem ajudar a resolver essas complexidades de forma simples e escalável.
2) Serviços como Amazon Cognito, DynamoDB, S3, Lambda e outros integrados no Mobile Hub facilitam o gerenciamento de usuários, armazenamento e sincronização de dados, análise de uso, hospedagem de mídia e implementação da lógica do aplicativo de forma escalável e sem necessidade de infraestrutura.
3)
8. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Lógica própria do
aplicativo.
• Armazenamento de dados
11. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
12. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
App News
13. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
App News
• Armazenamento de dados
14. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de dados
15. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
16. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
• Lógica própria do
aplicativo.
Noticia publicada
com sucesso
17. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app • Armazenamento de
multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
18. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app • Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
19. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
Destaque:
Noticia perto de você!
20. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App Banking
Compra 1
Compra 2
Compra 3
Compra 4
21. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App Banking
Criação de conta
22. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App Banking
Criação de conta
25. AWS Mobile SDK: Totalmente integrado
• Único mecanismo de autenticação para
todos os serviços
• Gerencia automaticamente intermitências da
rede
• Suporte multiplataforma: Andoid, iOS, Fire
OS, Unity, e JavaScript
• SDKs nativos, otimizados para SO móveis,
por exemplo o uso de arquiteturas de cache
local.
• Uso de memoria reduzido; selecione
somente os serviços que você precisa.
• Continuamente atualizado com as utimas
atualizações das plataformas
iOS Android Fire OS Unity
Xamarin
30. Provedores
de
identidades
Identidades
únicas
Joe Anna Bob
Qualquer
dispositivo ou
plataforma
Qualquer
Serviço AWS
Ajuda na implantação das melhores
práticas em segurança
Aceso a qualquer serviço AWS com segurança
desde um dispositivo móvel. Integração
simplificada com o AWS IAM.
Suporta múltiplos provedores de Log-In
Fácil integração com os principais provedores de
log-in para autenticação.
Usuários Únicos vs. Dispositivos
Gerencia identidades únicas. Reconhece
automaticamente usuários únicos entre diversos
dispositivos e plataformas.
Amazon Cognito Identity
Amazon
Mobile Analytics
Amazon
S3
Amazon
DynamoDB
Amazon
Kinesis
32. Amazon Cognito Flow
(Any OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Developer
App with
AWS Mobile
SDK
Access
to AWS
Services
Amazon Cognito
Identity Broker
User Name
Password
Amazon Cognito ID,
Temp Credentials
Amazon S3
Amazon Mobile
Analytics
Amazon Cognito
Sync Store
AWS
Management
Console
OIDC Token
Pool ID
Role ARNs
User Authentication
System
(Running on AWS or not)
OIDC Token
34. Sincronização e dados entre múltiplos
dispositivos com o Amazon Cognito
Sincronize estados de
jogos entre
OS/devices
Transições de estado
(vincule múltiplas
contas)
Sincronize perfis de
Usuário entre
OS/devices/web
35. Amazon Cognito
Cloud Save and Sync
Armazena
dados e os
sincroniza
Qualquer
plataforma
iOS/Android/FireOS
Armazena dados de aplicação, preferencias
e estados
Armazene dados da aplicação e dispositivo na nuvem
Sincronização Cross-Device Cross-OS
Sincronização de dados de usuário e
preferencias entre múltiplos dispositivos com uma
línea de código.
Funciona off-line
Dados sempre armazenados primeiro num BD
SQLite local. Trabalha sem problemas quando a
rede tem intermitências ou off-line.
k/v data
Identity Pool
Sem Back End
Cliente do SDK simples, elimina a necessidade
de código server side.
36. Integração da funcionalidade do Amazon
Cognito Sync é muito simples!
Inicialize o CredentialsProvider e o CognitoClient
Chame a sincronização do dataset
Crie ou abra o dataset e agregue chaves e valores
provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID,
COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH,
COGNITO_ROLE_AUTH, Regions.US_EAST_1);
cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);
dataset.synchronize(new SyncCallback(){..});
cognito.openOrCreateDataset(datasetName);
dataset.put(key, value);
37. Inicialize o AWSCognitoSyncClient
Chame a sincronização do dataset
Crie ou abra o dataset e agregue chaves e valores
DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"];
NSString *value = [dataset readStringForKey:@"myKey"];
[dataset putString:@"my value" forKey:@"myKey"];
AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc]
initWithConfiguration: configuration];
[dataset synchronize];
iOS
Integração da funcionalidade do Amazon
Cognito Sync é muito simples!
38. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
40. Amazon Mobile Analytics
Escalável e com uma
generosa Free Tier
Foque-se nas métricas que são
importantes. Use os relatórios
disponíveis dentro dos seguintes
60 minutos de ter recebido os
dados da sua aplicação.
Rápido
Escale para milhões de
eventos por dia, de
milhões de usuários.
Você é dono dos seus
dados
“Colete e analise dados de uso da sua aplicação de forma simples y custo
eficiente”
Os dados coletados não
são compartilhados,
agregados ou
reutilizados.
41. Métricas importantes do
negocio
1. Monthly Active Users
(MAU)
2. Daily Active Users
(DAU)
3. New Users
4. Daily Sessions
5. Sticky Factor
6. 1-Day Retention
7. Avg. Revenue per DAU
8. Daily Paying Users
9. Avg. Paying DAU
42. Acompanhe a retenção
A retenção de usuários e um
indicador importante para
julgar o resultado de uma
campanha de marketing,
introdução de uma nova
caraterística, mudanças na
interface, atualizações, etc.
Mobile Analytics prove quatro
gráficos para acompanhar
diariamente ou
semanalmente o ritmo do
retorno dos usuários, desde
a primeira utilização da
43. Quantidade de likes,
num artigo numa app
de noticias
Entender quanto um
jogador aborta por nível
de um jogo móvel.
Músicas reproduzidas
pelo usuário numa app
de música
Popularidade de um
item numa app de loja
virtual
Acompanhe Eventos
Personalizados
44. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
App News
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
45. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
App News
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
46. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
47. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
48. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
49. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
53. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
• Lógica própria do
aplicativo.
Noticia publicada
com sucesso
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
54. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Captura de dados do
dispositivo
App News
• Armazenamento de
multimídia
• Armazenamento de dados
• Lógica própria do
aplicativo.
Noticia publicada
com sucesso
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
AWS
Lambda
56. AWS Lambda
Auto Scaling
(nunca aprovisiona mais
ou menos do necessário)
Foque-se na lógica do
seu negocio, não na
infraestrutura. Carregue
o seu código e AWS
Lambda faze o resto.
Sem gerenciamento de
infraestrutura
Lambda escala a
infraestrutura segundo
seja necessário para
acompanhar a
quantidade de eventos
e pagar somente pelo
Traga o seu próprio
código
“Rode o seu código na nuvem, em resposta a eventos e escale sem gerenciar
servidor nenhum”
Inicialmente JavaScript,
Python e Java, porém, mais
linguagens no futuro. Crie
threads e processos, rode
scripts batch ou outros
executáveis.
57. Como utilizar um backend Lambda no seu aplicação
móvel
Inicialize o LambdaFactory e defina a interface
Chame a função
Criem / Carreguem a função Lambda na console de gerenciamento da
AWS
lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider);
//interface
@LambdaFunction(functionName="cloudFunction”)
String localFunction(String nameInfo);
lambda.localFunction(“Hello From “); // this will output “Hello From Lambda”
exports.handler = function(event, context) {
context.done(null, event + 'Lambda'); // SUCCESS with message
};
58. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app • Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
AWS
Lambda
59. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app • Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
Amazon S3
AWS
Lambda
Amazon
CloudFront
61. CloudFront (Content Delivery Network / CDN)
• Rede de entrega de conteúdo
• Infraestrutura Global (55 pontos de presença)
• Otimizada para alta performance
• Escalabilidade massiva
• Altamente segura
• Self Service
• Precificada para minimizar custo
62. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
Destaque:
Noticia perto de você!
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
AWS
Lambda
Amazon S3 Amazon
CloudFront
63. Complexidades do backend
• Gerenciamento de
usuários
• Armazenamento do perfil
• Acompanhamento de uso
da app
• Notificações ao usuário
• Armazenamento de
multimídia
• Entrega de multimídia
• Captura de dados do
dispositivo
• Armazenamento de dados
• Lógica própria do
aplicativo.
App News
Destaque:
Noticia perto de você!
Amazon
Cognito AWS IAM
Amazon
MobileAnalytics
Amazon
DynamoDB
Amazon
Kinesis
AWS
Lambda
Amazon S3 Amazon
CloudFront
Amazon
SNS
65. Amazon SNS
Cross-Platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Com o Amazon SNS, os desenvolvedores podem enviar push notifications para
múltiplas plataformas e notificar usuários móveis no mundo todo
Novas funcionalidades:
Entrega de métricas via
CloudWatch
Chame funções Lambda
desde notificações SNS
Amazon SNS Mobile Push
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Desktop and Windows Phone
Devices
73. Upload your Android, iOS, or Fire
OS app, configure a test, and
select devices.
We simultaneously test
your app across your
selected devices in our
datacenters.
Teste o seu app em dispositivos reais na nuvem
da AWS
In minutes, view detailed,
actionable reports that
pinpoint bugs, performance
problems, and other issues.
YOUR
APP +
74. Custo e complexidade de testes efetivos
Manter um laboratório de aparelhos é um
grande desafio.
Manter a frota atualizada em HW e SW
Testes manuais não são escaláveis
Automação da frota é complexa
74
77. AWS Mobile Hub
1. Single integrated console
2. Pre-built features
3. Auto-provisioned services
4. Auto-generated app
Result: Build apps on AWS in minutes