Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comunícalo a través de los 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 instancia de Azure Functions, y puede enviar notificaciones a los usuarios del progreso a través del centro de notificaciones. Los datos que no contienen imágenes se almacenan en Azure Cosmos DB. La aplicación web accede a las imágenes y los datos del servicio back-end a través de Azure Traffic Manager.
Consulte los siguientes servicios, que se incluyen en esta arquitectura de la solución:
- Visual Studio Team Services
- Visual Studio
- Visual Studio Tools para Xamarin
- Application Insights
- Visual Studio App Center
- App Service Mobile Apps
Posibles casos de uso
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.
Architecture
Descarga un SVG de esta arquitectura.
Flujo de datos
- Cree la aplicación con Visual Studio y Xamarin.
- Agregue el servicio back-end de Azure App Service Mobile Apps a la solución de la aplicación.
- Implemente la autenticación mediante proveedores de identidades de redes sociales.
- Almacene los datos que no contengan imágenes en Azure Cosmos DB y guárdelos en Azure Cache for Redis.
- Almacene las imágenes cargadas en Azure Blob Storage.
- Ponga en cola los mensajes sobre las imágenes recién cargadas.
- Use Azure Functions para quitar de la cola los mensajes y procesar las imágenes recuperadas de Blob Storage.
- Envíe notificaciones push a los usuarios mediante Notification Hubs.
- Compile y pruebe la aplicación con Visual Studio App Center y publíquela.
- Controle la distribución del tráfico de los usuarios a los puntos de conexión de servicio de distintos centros de datos.
- 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
- Documentación de Visual Studio
- Documentación de Xamarin
- Documentación de Visual Studio App Center
- Introducción sobre Azure App Service
- Documentación de Azure Functions
- Documentación de Application Insights
- Documentación sobre Azure Cosmos DB
- Documentación de Queue Storage
- Documentación de Blob Storage
- Documentación de Notification Hubs
- Documentación de Traffic Manager