© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Henry Alvarado, Solutions Architect
Abril 2016
C...
Desarrollando aplicaciones
móviles hoy...
Usted se enfoca en dos tipos de
componentes…
1. La complejidad de los
componentes de backend que una
aplicación móvil necesita
y
2. Las grandiosas funcionalidades
que ...
AWS Mobile Services hace que la
complejidad del backend sea más
simple
Para que usted se enfoque en lo
que hace su aplicación única!
Complejidades del backend
Complejidades del backend
Complejidades del backend
Complejidades del backend
Complejidades del backend
Complejidades del backend
Códigodecliente
Complejidades del backend
Códigodeservidor
Códigodecliente
Complejidades del backend
Manejodeinestabilidaddered
Códigodeservidor
Códigodecliente
Complejidades del backend
AWS Mobile Services
Manejodeinestabilidaddered
Códigodeservidor
Códigodecliente
AWS Mobile
Services
AWS Mobile Services
ServerlessClient-Side
SDK
Mobile
Aware
El SDK
provee de
librerías
client-side
que hacen
interfaz con
l...
AWS Mobile SDK: Completamente integrado
• Mecanismo común de autenticación ante
todos los servicios
• Automáticamente admi...
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
LET’S
SEE
HOW
IT’S
DONE
Autenticación de Usuarios:
Amazon Cognito
Amazon Cognito
Simplifies Identity and
Access Management
Acceda a todos los
servicios AWS desde
un dispositivo móvil
de fo...
Proveedores
de
identidades
Identidades
únicasJoe Anna Bob
Cualquier
dispositivo o
plataforma
Cualquier
servicio AWS
Ayuda ...
Amazon Cognito Flow
(Any OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Developer
Ap...
Amazon Cognito Flow
(Any OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Developer
Ap...
Synchronize Data Across Devices: Amazon Cognito (Sync)
Amazon Cognito
Cloud Save and Sync
Almacena
datos y los
sincroniza
Cualquier
plataforma
iOS/Android/FireOS
Almacena datos ...
Sincronización de datos entre múltiples
dispositivos con Amazon Cognito
Sincronice estados de
juegos entre
OS/devices
Tran...
Modelo de sincronización Amazon Cognito
Identity Pool: Grupo de usuarios de la aplicación.
Puede ser compartido entre múlt...
Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el CredentialsProvider y el CognitoCli...
Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el AWSCognitoSyncClient
Llame sincroni...
AWS Mobile Services
AWS Mobile Services
Veamos
cómo se
hace
Analice el comportamiento del
usuario: Amazon Mobile
Analytics
Amazon Mobile Analytics
Escalable y con una
generosa capa gratuita
Enfóquese en las métricas que
importan. Use los reporte...
Inicie a usar Amazon Mobile Analytics
en tres pasos
Inscríbase a una cuenta AWS y cree o use un Amazon Cognito ID
existent...
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 ...
Rastree la retención
La retención de usuarios es
un indicador clave para
juzgar el resultado de una
campaña de marketing,
...
Obtenga una mirada al comportamiento de
acciones específicas de sus usuarios en la
aplicación.
”Reports” provee una visión...
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
Veamos
cómo se
hace
Almacene y Comparta medios:
Amazon S3
Amazon
KinesisAWS
Mobile
SDK
Conectores Móviles Optimizados (AWS Mobile
SDK)
Amazon S3
Integrado con AWS Mobile SDK
Optimi...
Amazon S3 Connector: Transfer Manager
S3 Connector
Carga multi-parte de medios (fotos, videos,
audio)
Descargas tolerantes...
Amazon S3 Connector: Transfer Manager in Android
// Creating the transfer manager
TransferManager = new TransferManager(cr...
Amazon S3 Connector: Transfer Manager in iOS
// Creating the transfer manager
self.transferManager = [S3TransferManager ne...
AWS Mobile Services
AWS Mobile Services
AWS Mobile Services
Veamos
cómo se
hace
Backend sin servidores
Optimizado para Móvil
AWS Lambda
Auto Scaling
(nunca aprovisiona más o
menos de lo necesario)
Enfóquese en la lógica
de negocio, no en la
infrae...
Responde a eventos en tiempo real
Mapee funciones locales a funciones lambda dentro del SDK
Dirija, filtre y enrute notifi...
Agregando un backend Lambda a su aplicación móvil
es simple
Inicialice el LambdaFactory y defina la interfaz a las funcion...
AWS Mobile Services
AWS Mobile Services
Veamos
como se
hace
Envío de Push Notifications: Amazon SNS Mobile
Push
Amazon SNS
Cross-Platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Con Amazon S...
Push confiable a Escala Requiere Trabajo
Constante
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load...
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, con...
AWS Mobile Services
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Amazon
Kinesis Recorder
Amazon
DynamoDB Mapper
Amazon S3
Tra...
AWS Mobile Hub
1. Single integrated console
2. Pre-built features
3. Auto-provisioned services
4. Auto-generated app
Resul...
AWS Mobile Hub
Costo y complejidad de test efectivos
Mantener un laboratorio de dispositivos es
todo un desafío.
• Mantener flota actuali...
Gracias
Próxima SlideShare
Cargando en…5
×

Comenzando con los servicios móviles en AWS

707 visualizaciones

Publicado el

2016 AWS Summit Bogotá - Comenzando con los servicios móviles en AWS

Publicado en: Tecnología
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
707
En SlideShare
0
De insertados
0
Número de insertados
10
Acciones
Compartido
0
Descargas
39
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Comenzando con los servicios móviles en AWS

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Henry Alvarado, Solutions Architect Abril 2016 Comenzando con los servicios móviles en AWS
  2. 2. Desarrollando aplicaciones móviles hoy... Usted se enfoca en dos tipos de componentes…
  3. 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
  4. 4. AWS Mobile Services hace que la complejidad del backend sea más simple
  5. 5. Para que usted se enfoque en lo que hace su aplicación única!
  6. 6. Complejidades del backend
  7. 7. Complejidades del backend
  8. 8. Complejidades del backend
  9. 9. Complejidades del backend
  10. 10. Complejidades del backend
  11. 11. Complejidades del backend
  12. 12. Códigodecliente Complejidades del backend
  13. 13. Códigodeservidor Códigodecliente Complejidades del backend
  14. 14. Manejodeinestabilidaddered Códigodeservidor Códigodecliente Complejidades del backend
  15. 15. AWS Mobile Services Manejodeinestabilidaddered Códigodeservidor Códigodecliente AWS Mobile Services
  16. 16. 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
  17. 17. 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
  18. 18. AWS Mobile Services
  19. 19. AWS Mobile Services
  20. 20. AWS Mobile Services
  21. 21. AWS Mobile Services
  22. 22. AWS Mobile Services LET’S SEE HOW IT’S DONE
  23. 23. Autenticación de Usuarios: Amazon Cognito
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. Synchronize Data Across Devices: Amazon Cognito (Sync)
  29. 29. 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.
  30. 30. 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
  31. 31. 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
  32. 32. 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);
  33. 33. 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
  34. 34. AWS Mobile Services
  35. 35. AWS Mobile Services Veamos cómo se hace
  36. 36. Analice el comportamiento del usuario: Amazon Mobile Analytics
  37. 37. 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.
  38. 38. 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)
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. AWS Mobile Services
  43. 43. AWS Mobile Services
  44. 44. AWS Mobile Services
  45. 45. AWS Mobile Services Veamos cómo se hace
  46. 46. Almacene y Comparta medios: Amazon S3
  47. 47. 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
  48. 48. 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
  49. 49. 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);
  50. 50. Amazon S3 Connector: Transfer Manager in iOS // Creating the transfer manager self.transferManager = [S3TransferManager new]; self.transferManager.s3 = s3client; // Upload image [self.transferManager uploadFile:fileName bucket:bucketName key:objectName]; // Download image [self.transferManager downloadFile:fileName bucket:bucketName key:objectName]; // Pause, Resume, Cancel [self.transferManager pauseAllTransfers]; [self.transferManager resumeAllTransfers]; [self.transferManager cancelAllTransfers];
  51. 51. AWS Mobile Services
  52. 52. AWS Mobile Services
  53. 53. AWS Mobile Services Veamos cómo se hace
  54. 54. Backend sin servidores Optimizado para Móvil
  55. 55. 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.
  56. 56. 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
  57. 57. 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 };
  58. 58. AWS Mobile Services
  59. 59. AWS Mobile Services Veamos como se hace
  60. 60. Envío de Push Notifications: Amazon SNS Mobile Push
  61. 61. 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
  62. 62. 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.
  63. 63. 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
  64. 64. AWS Mobile Services
  65. 65. 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 λ λ λ λ
  66. 66. 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
  67. 67. AWS Mobile Hub
  68. 68. 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. 68
  69. 69. Gracias

×