Aplicação social para dispositivos móveis e Web com autenticação

Azure App Service
Azure Functions
Azure Traffic Manager
Visual Studio
Xamarin

Ideias de solução

Este artigo é uma ideia de solução. Se quiser que expandamos o conteúdo com mais informações, como potenciais casos de utilização, serviços alternativos, considerações de implementação ou orientações de preços, informe-nos ao fornecer feedback do GitHub.

Esta aplicação cliente móvel oferece partilha de imagens sociais com uma aplicação Web complementar. O serviço de back-end da aplicação faz o processamento de imagens em segundo plano com uma função do Azure e pode notificar os utilizadores do progresso através de um hub de notificação. Os dados não de imagem são armazenados no Azure Cosmos DB. A aplicação Web acede aos dados e imagens do serviço de back-end através do Gestor de Tráfego do Azure.

Veja os seguintes serviços, que estão em destaque nesta arquitetura de solução:

Potenciais casos de utilização

A aplicação cliente móvel funciona no modo offline, o que lhe permite ver e carregar imagens, mesmo quando não tem uma ligação de rede.

Arquitetura

O diagrama de arquitetura mostra a rota do Engenheiro para o Application Insights.Transfira um SVG desta arquitetura.

Fluxo de dados

  1. Crie a aplicação com o Visual Studio e o Xamarin.
  2. Adicione o serviço de back-end Serviço de Aplicações do Azure Mobile Apps à solução de aplicações.
  3. Implementar a autenticação através de fornecedores de identidade social.
  4. Armazene dados que não sejam de imagem no Azure Cosmos DB e coloque-os em cache no Cache do Azure para Redis.
  5. Armazenar imagens carregadas no Armazenamento de Blobs do Azure.
  6. Mensagens de fila sobre imagens recentemente carregadas.
  7. Utilize Funções do Azure para desativar a fila de mensagens e processar imagens obtidas a partir do armazenamento de blobs.
  8. Enviar notificações push aos utilizadores através de um hub de notificação.
  9. Crie e teste a aplicação através do Visual Studio App Center e publique-a.
  10. Controlar a distribuição do tráfego de utilizador para pontos finais de serviço em datacenters diferentes.
  11. Utilize o Application Insights para monitorizar o serviço de aplicações.

Componentes

  • Crie o front-end web, as aplicações móveis e os serviços de back-end com C# no Visual Studio 2017 ou Visual Studio para Mac.
  • Xamarin: crie aplicações móveis para iOS e Android com SDKs C# e Azure.
  • Visual Studio App Center: o App Center permite uma integração contínua e um fluxo de trabalho de implementação ao solicitar código do BitBucket, GitHub e Visual Studio Team Services.
  • Uma aplicação Web Serviço de Aplicações pode alojar uma aplicação Web destinada ao cliente e um serviço que é utilizado tanto pela Web como pelo cliente móvel.
  • Utilize Funções do Azure para processamento em segundo plano sem servidor. Por exemplo, uma função do Azure pode redimensionar automaticamente novos blobs quando são adicionados a um contentor, enquanto outra função escuta mensagens numa fila para eliminar múltiplas imagens de fundo.
  • Application Insights: detete problemas, diagnostique falhas e controle a utilização na sua aplicação Web com o Application Insights. Tome decisões informadas ao longo do ciclo de vida de desenvolvimento.
  • O Azure Cosmos DB é um serviço de base de dados de documentos NoSQL totalmente gerido. Oferece consultas e processamento de transações através de dados sem esquemas, desempenho previsível e fiável e desenvolvimento rápido.
  • O armazenamento de Filas do Azure é utilizado para mensagens duráveis entre o back-end Serviço de Aplicações e o Funções do Azure.
  • Armazenamento de blobs: o Armazenamento do Azure aloja ficheiros de imagem para tirar partido de uma melhor escalabilidade com um custo mais baixo. A comunicação entre a aplicação Web e a função do Azure é frequentemente efetuada com acionadores de blobs e o armazenamento de Filas do Azure.
  • Os Hubs de Notificação do Azure são utilizados para notificações push dimensionáveis e multiplataformas.
  • O Gestor de Tráfego do Azure controla a distribuição do tráfego de utilizador para pontos finais de serviço em datacenters diferentes para fornecer uma aplicação altamente reativa e disponível.

Passos seguintes