Comenzando con los servicios móviles en AWS

556 visualizaciones

Publicado el

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

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
556
En SlideShare
0
De insertados
0
Número de insertados
10
Acciones
Compartido
0
Descargas
37
Comentarios
0
Recomendaciones
0
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

×