3. 1. La complejidad de los
componentes de backend que una
aplicación móvil necesita
y
2. Las grandiosas funcionalidades
que ustedes crean para que su
aplicación sea única
20. AWS Mobile Services
ServerlessClient-Side
SDK
Mobile
Aware
El SDK
provee de
librerías
client-side
que hacen
interfaz con
los
servicios
usando una
mínima
cantidad de
código
El código es
automáticamen
te optimizado
para manejar
las
inestabilidades
y intermitencias
de red
Infraestructura
totalmente
administrada
Aprovisionamiento
y escalabilidad
automática
Basta con cargar
su código sin
desplegar
servidores
Manejodeinestabilidaddered
Códigodeservidor
Códigodecliente
AWS Mobile
Services
21. AWS Mobile SDK: Completamente integrado
• Mecanismo común de autenticación ante
todos los servicios
• Automáticamente administra intermitencias
de red
• Soporte multi plataforma: Android, iOS, Fire
OS, Unity, and JavaScript
• SDKs nativos optimizados para SO móviles,
por ejemplo el uso de arquitecturas de caché
locales
• Consumo de memoria reducido; seleccione
solo los servicios que necesita
• Continuamente actualizado con las últimas
mejores de las plataformas
iOS Android Fire OS Unity
Xamarin
28. Amazon Cognito
Simplifies Identity and
Access Management
Acceda a todos los
servicios AWS desde
un dispositivo móvil
de forma segura
Cross-device and
cross-platform sync
Implement security best
practices
“Los datos de su aplicación seguros, disponibles offline y sincronizados entre
múltiples dispositivos”
Sincronice los datos de
usuario entre diferentes
dispositivos y
plataformas
Administre usuarios
como identidades
únicas entre múltiples
proveedores de
identidad
Or, Your Own
Auth
29. Proveedores
de
identidades
Identidades
únicasJoe Anna Bob
Cualquier
dispositivo o
plataforma
Cualquier
servicio AWS
Ayuda a implementar las mejores
prácticas de seguridad
Acceso a cualquier servicio AWS de forma
segura desde un dispositivo móvil. Integración
simplificada con AWS IAM.
Soporta múltiples proveedores de Log-
In
Fácil de integrar con los principales proveedores
de log-in para autenticación.
Usuarios Únicos vs. Dispositivos
Administra identidades únicas. Reconoce
automáticamente usuarios únicos entre
dispositivos y plataformas.
Amazon Cognito Identity
Amazon
Mobile Analytics
Amazon
S3
Amazon
DynamoDB
Amazon
Kinesis
30. 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
31. 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
Get OpenID Token
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
OIDC Token
33. Amazon Cognito
Cloud Save and Sync
Almacena
datos y los
sincroniza
Cualquier
plataforma
iOS/Android/FireOS
Almacena datos de aplicación, preferencias
y estados
Almacene datos de la aplicación y el dispositivo, en la
nube y únalos tras el login.
Sincronización Cross-Device Cross-OS
Sincronización de datos de usuario y preferencias
entre múltiples dispositivos con una línea de
código.
Funciona offline
Datos siempre almacenados primero en una BD
SQLite local. Trabaja sin problemas sin
conectividad o intermitencias de red.
k/v data
Identity Pool
Sin Back End
Cliente de SDK simple, elimina la necesidad de
código server side.
34. Sincronización de datos entre múltiples
dispositivos con Amazon Cognito
Sincronice estados de
juegos entre
OS/devices
Transición de estado
(vincule múltiples
cuentas)
Sincronice perfiles de
Usuario entre
OS/devices/web
35. Modelo de sincronización Amazon Cognito
Identity Pool: Grupo de usuarios de la aplicación.
Puede ser compartido entre múltiples aplicaciones.
Identity: Un único usuario. Consistente entre
proveedores de identidad. Puede ser un usuario
”guest”.
Dataset: Por datos de agrupamiento de usuario. El
nivel más granular de sincronización. Hasta 1MB.
Record: Par de Llave - Valor.
AWS Account
Dataset
Identity
Identity
Identity
Dataset
Dataset
Identity
Pool
1:60
1:n
1:20
Dataset
Dataset
Record
1:1024
Usted
Su aplicación
Usuarios de su
aplicación
Contenedor
de datos de
usuario.
Dato del usuario
36. Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el CredentialsProvider y el CognitoClient
Llame la sincronización en el dataset
Cree o abra el dataset y agregue llaves y 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. Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el AWSCognitoSyncClient
Llame sincronizar en el dataset
Cree o abra el dataset y agrege llaves y 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
41. Amazon Mobile Analytics
Escalable y con una
generosa capa gratuita
Enfóquese en las métricas que
importan. Use los reportes
disponibles dentro de los 60
minutos de haber recibido los
datos de su aplicación.
Rápido
Escale a millones de
eventos por día, de
millones de usuarios.
Usted es dueño de
sus datos
“Colecte y analice datos de uso de su aplicación de forma simple y costo
eficiente”
Los datos colectados no
son compartidos,
agregados o reusados.
42. Inicie a usar Amazon Mobile Analytics
en tres pasos
Inscríbase a una cuenta AWS y cree o use un Amazon Cognito ID
existente en la consola de administración de AWS
Revise los reportes de uso y actividad de sesiones en
la consola de administración AWS en minutos
Descargue e integre el Mobile SDK usando una línea
de código (Android/FireOS, iOS)
43. Métricas clave de
negocio
(con solo una línea de
código)
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
44. Rastree la retención
La retención de usuarios es
un indicador clave para
juzgar el resultado de una
campaña de marketing,
introducción de una nueva
característica, cambios en la
interfaz, actualizaciones, etc.
Mobile Analytics provee
cuatro gráficos para rastrear
diariamente o semanalmente
el ritmo de retorno de
usuarios, desde el primer
uso de la aplicación
45. Obtenga una mirada al comportamiento de
acciones específicas de sus usuarios en la
aplicación.
”Reports” provee una visión de qué tan
seguido los eventos personalizados
ocurren. Sus datos agregan contexto con
atributos y métricas para cada evento
personalizado.
Ejemplos:
Número de likes, por
artículo en una app de
noticias
Entender qué tanto el
jugador aborta por nivel
de un juego móvil.
Número de canciones
reproducidas por
usuario en app de
música
Popularidad de un ítem
en una app de tienda
virtual
Rastree Eventos
Personalizados
51. Amazon
KinesisAWS
Mobile
SDK
Conectores Móviles Optimizados (AWS Mobile
SDK)
Amazon S3
Integrado con AWS Mobile SDK
Optimizado para SO nativos
Carga de medios en multi-partes
Descarga tolerante a fallas
Re intentos automáticos
Funciones de Pause, resume,
cancel
Sistema de batching genérico
Manejo de conexiones de red
intermitentes
Utilización de batería optimizada
Amazon
DynamoDB
52. Amazon S3 Connector: Transfer Manager
S3 Connector
Carga multi-parte de medios (fotos, videos,
audio)
Descargas tolerantes a fallos (ej. assets)
Sin necesidad de backend
Reintentos automáticos
Funciones de pause, resume, cancel
Optimizado para SO nativos
53. Amazon S3 Connector: Transfer Manager in Android
// Creating the transfer manager
TransferManager = new TransferManager(credentialProvider);
// Upload image
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
// Download image
Download download = transferManager.download(BUCKET_NAME, mKey,
file);
// Pause, and Resume
try {
PersistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
59. AWS Lambda
Auto Scaling
(nunca aprovisiona más o
menos de lo necesario)
Enfóquese en la lógica
de negocio, no en la
infraestructura. Cargue
su código y AWS Lambda
se encarga del resto.
Cero administración
Lambda escala la
infraestructura según
sea necesario para
atender la cantidad de
eventos y pagar según
el uso.
Traiga su propio
código
“Ejecute su código en la nube, en respuesta a eventos y escale sin administrar
ningún servidor”
Inicialmente JavaScript,
Python y Java, pero más
lenguajes en un futuro. Cree
threads y procesos, ruede
scripts batch u otros
ejecutables.
60. Responde a eventos en tiempo real
Mapee funciones locales a funciones lambda dentro del SDK
Dirija, filtre y enrute notificaciones de Amazon SNS
Aplique lógica personalizada a las preferencias de usuarios o estados de
un juego
Integración con AWS CloudTrail, métricas mejoradas y logs vía Amazon
CloudWatch
S3 event
notifications
DynamoDB
Streams
Amazon
Kinesis
events
Amazon
Cognito
eventsSNS
events
Custom
events
AWS Lambda
61. Agregando un backend Lambda a su aplicación móvil
es simple
Inicialice el LambdaFactory y defina la interfaz a las funciones
Llame la función
Cree / Cargue la función Lambda en la consola de administración 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
};
65. Amazon SNS
Cross-Platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Con Amazon SNS, los desarrolladores pueden enviar push notifications a
múltiples plataformas y alcanzar usuarios móviles en todo el mundo
Nuevas características:
Entrega de métricas vía
CloudWatch
Llame funciones Lambda
desde notificaciones 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
66. Push confiable a Escala Requiere Trabajo
Constante
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load
Balancers
Tratando constantemente
de escalar tanto a nivel de
procesos como a nivel de
servidores
Luchando para maximizar
el througput a nivel de
paquetes por segundo
Nunca realmente seguro
de cuantos push fueron
enviados o descartados.
67. Ahora Usando Amazon SNS Mobile Push
De cero a +500m de
push notifications
diarias casi de un día
para otro
Más rápido, confiable y
disponible
Fácil migración
$1 por millón de
entregas
mobile push
10m
170m
500m
Day 1 Day 2 Day 3
Daily SNS Mobile Push
Deliveries (millions)
…Rising
69. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Amazon
Kinesis Recorder
Amazon
DynamoDB Mapper
Amazon S3
Transfer Mgr
Amazon
SQS Client
Amazon
SES Client
AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile App, Game, or Device App
AWS Mobile SDK, API Endpoints, AWS Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
AWS Mobile Services
AWS Lambda
AWS Lambda
Functions
λ λ
λ
λ
70. 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
72. Costo y complejidad de test efectivos
Mantener un laboratorio de dispositivos es
todo un desafío.
• Mantener flota actualizada en HW y SW
Test manuales son imprácticos
Automatización de la flota de dispositivos es
muy compleja.
72