Aplicación social para móviles y la Web con autenticación

App Service Mobile Apps
Functions
Traffic Manager
Visual Studio
Xamarin

Idea de solución

Si desea que ampliemos este artículo con más información, detalles de la implementación, guía de precios o ejemplos de código, háganoslo saber en GitHub Feedback (Comentarios de GitHub).

Esta aplicación cliente móvil ofrece el uso compartido de imágenes en redes sociales con una aplicación web complementaria. El servicio back-end de la aplicación realiza el procesamiento de imágenes en segundo plano mediante una función de Azure y puede enviar notificaciones a los usuarios del progreso a través de Notification Hubs. Los datos que no contienen imágenes se almacenan en Cosmos DB. La aplicación web accede a las imágenes y los datos del servicio back-end a través de Traffic Manager.

La aplicación cliente móvil funciona en modo sin conexión, lo que le permite ver y cargar imágenes incluso cuando no tiene una conexión de red.

Los vínculos de la derecha proporcionan documentación sobre la implementación y la administración de los productos de Azure que se enumeran en la arquitectura de la solución anterior.

Visual Studio Team Services

Visual Studio

Visual Studio Tools para Xamarin

Application Insights

Visual Studio App Center

App Service Mobile Apps

Architecture

Diagrama de la arquitectura Descargue un SVG de esta arquitectura.

Data Flow

  1. Cree la aplicación con Visual Studio y Xamarin.
  2. Agregue el servicio back-end de Azure App Service Mobile Apps a la solución de la aplicación.
  3. Implemente la autenticación mediante proveedores de identidades de redes sociales.
  4. Almacene los datos que no contengan imágenes en Cosmos DB y guárdelos en Azure Cache for Redis.
  5. Almacene las imágenes cargadas en Azure Blob Storage.
  6. Ponga en cola los mensajes sobre las imágenes recién cargadas.
  7. Use Azure Functions para quitar de la cola los mensajes y procesar las imágenes recuperadas de Blob Storage.
  8. Envíe notificaciones push a los usuarios mediante Notification Hubs.
  9. Compile y pruebe la aplicación con Visual Studio App Center y publíquela.
  10. Controle la distribución del tráfico de los usuarios a los puntos de conexión de servicio de distintos centros de datos.
  11. Use Application Insights para supervisar App Service.

Componentes

  • Compile el front-end web, las aplicaciones móviles y los servicios back-end con C# en Visual Studio 2017 o Visual Studio para Mac.
  • Xamarin: cree aplicaciones móviles para iOS y Android con los SDK de Azure y C#.
  • Visual Studio App Center: App Center habilita un flujo de trabajo de integración e implementación continuas mediante la extracción de código de BitBucket, GitHub y Visual Studio Team Services.
  • Una aplicación web de App Service puede hospedar una aplicación web orientada al cliente y un servicio que utiliza el cliente web y el móvil.
  • Use Azure Functions para el procesamiento en segundo plano sin servidor. Por ejemplo, una función de Azure puede cambiar automáticamente el tamaño de los blobs nuevos cuando se agregan a un contenedor, mientras que otra función escucha los mensajes en una cola para eliminar varias imágenes en segundo plano.
  • Application Insights: detecte problemas, diagnostique bloqueos y realice un seguimiento del uso de la aplicación web con Application Insights. Tome decisiones fundamentadas a lo largo del ciclo de vida de desarrollo.
  • Azure Cosmos DB es un servicio de base de datos de documentos NoSQL totalmente administrado. Ofrece consultas y procesamiento de transacciones en datos sin esquema, un rendimiento predecible y confiable, y un desarrollo rápido.
  • Azure Queue Storage se usa para la mensajería duradera entre el back-end de App Service y Azure Functions.
  • Blob Storage: Azure Storage hospeda archivos de imagen para aprovechar mejor la escalabilidad con un costo menor. La comunicación entre la aplicación web y la función de Azure suele realizarse mediante desencadenadores de blobs y Azure Queue Storage.
  • Azure Notification Hubs se utiliza para enviar notificaciones push escalables y entre plataformas.
  • Azure Traffic Manager controla la distribución del tráfico de usuario para los puntos de conexión de servicio de distintos centros de datos con el fin de ofrecer una aplicación con alta capacidad de respuesta y disponibilidad.

Pasos siguientes