Serverless Architecture for Social Mobile & Web App

This is an architecture of a Social Mobile client app for social image sharing and with a companion web app while the app backend does background image processing using an Azure Function.

Courtesy: Microsoft Azure

Platform: Microsoft Azure

Website: azure.microsoft.com

Twitter: @Azure

Architecture Overview

  • An App Service web app can host a customer-facing web app and a service which is used by both the web and mobile client.
  • Azure Traffic Manager is used to improve app performance and content delivery by directing users to the App Service instance with the lowest network latency.
  • Azure Cosmos DB is a fully-managed NoSQL document database service that offers querying and transaction-processing over schema-free data, predictable and reliable performance and rapid development.
  • Redis Cache enables high throughput, low-latency data access and improves scalability by reducing the load on the main database.
  • Azure Queues are used for durable messaging between the App Service Backend and Azure Functions.
  • Images are stored in Azure Storage to take advantage of better scalability with lower cost. Communication between the web app and the Azure Function is often performed using blob triggers and Azure Queues.
  • Azure Notifications Hubs are used for scale, cross-platform push notifications.
  • Azure Active Directory is used for secure, enterprise-grade authentication.
  • Use Azure Functions for serverless background processing. For instance, whenever a new blog is added to a container, an Azure Function can automatically resize it. Another Azure Function can listen for messages on a queue in order to delete multiple images in the background.
  • Detect issues, diagnose crashes and track usage in your web app with Application Insights. Make informed decisions throughout the development lifecycle.
  • Use HockeyApp to get crash reports, track app usage and distribute your mobile apps.
  • Use App Service Authentication/Authorisation to integrate with a social or enterprise identity provider.
  • App Service enables a continuous integration and deployment workflow by pulling code from BitBucket, GitHub and Visual Studio Team Services.