Solution architecture: Social mobile and web app with authentication

A mobile client app for social image sharing and with a companion web app. The app backend does background image processing using an Azure Function. The mobile client app works in offline mode, allowing you to view and upload images even when you don’t have a network connection.

This solution is built on the Azure managed services: App Service, Traffic Manager, Azure Cosmos DB, Redis Cache, Notification Hubs, Azure Active Directory, Functions, Application Insights and HockeyApp. These services run in a high-availability environment, patched and supported, allowing you to focus on your solution instead of the environment they run in.

Application Insights App Service Phone & Tablet Traffic Manager Other regions HockeyApp Notification Hub Continuous integrationand deployment Browser Identity provider Document DB Redis Cache Queue Blob Storage Function

Implementation guidance

Products/Description Documentation

App Service

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.

Traffic Manager

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

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

Redis Cache enables high throughput, low-latency data access and improves scalability by reducing the load on the main database.

Queue storage

Azure Queues are used for durable messaging between the App Service backend and Azure Functions.

Blob storage

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.

Notification Hubs

Azure Notification Hubs are used for scalable, cross-platform push notifications.

Azure Active Directory

Azure Active Directory is used for secure, enterprise-grade authentication.

Functions

Use Azure Functions for serverless background processing. For instance, whenever a new blob 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.

Application Insights

Detect issues, diagnose crashes and track usage in your web app with Application Insights. Make informed decisions throughout the development lifecycle.

HockeyApp

Use HockeyApp to get crash reports, track app usage and distribute your mobile apps.

Identity provider

Use App Service Authentication/Authorisation to integrate with a social or enterprise identity provider.

Continuous integration and deployment

App Service enables a continuous integration and deployment workflow by pulling code from BitBucket, GitHub and Visual Studio Team Services.

Related solution architectures

Application Insights App Service Phone & Tablet Offline sync HockeyApp Continuous integrationand deployment SQL Database Identity provider Blob Storage

Task-based consumer mobile app

A mobile backend that is used by iOS, Android and Windows client apps. Use Xamarin or native client SDKs to build a mobile client app with offline sync support, including offline sync of image files. App Service Authentication is used to connect to an identity provider and Azure Blob storage is used to store images in a cost-effective and scalable way.

Learn more