Exercício - Construa uma estrutura de saúde em camadas

Concluído

Neste exercício, sua tarefa é projetar um modelo de integridade em camadas para um aplicativo de exemplo. Comece analisando a arquitetura do aplicativo, os principais serviços do Azure que o aplicativo usa e como os serviços do Azure contribuem para a experiência geral do usuário.

Aplicação de exemplo

O exemplo deste exercício é um aplicativo Web usado pela Contoso Shoes. O aplicativo permite que os funcionários naveguem em um catálogo de produtos, atualizem itens individuais no catálogo e interajam com outros usuários criando comentários no aplicativo.

A equipe de operações da Contoso Shoes identificou dois requisitos de negócios críticos para este aplicativo. Os trabalhadores devem ser capazes de:

  • Interaja com o catálogo exibindo listas de itens e navegando por itens.
  • Crie comentários para itens individuais para outros usuários verem.

O modelo de integridade deve incluir, pelo menos, essas duas operações críticas.

Arquitetura

Diagram that shows the architecture for the Contoso Shoes application.

Componentes

  • Aplicativo Web front-end: a interface do usuário dessa carga de trabalho, que é executada nos Aplicativos Web do Azure.

    • Leituras de: API de catálogo, Armazenamento de Blob do Azure
    • Grava em: API de catálogo
  • API de catálogo: a camada de API que o aplicativo Web front-end usa para operações de dados em itens de catálogo e comentários. Ele não grava no banco de dados. Em vez disso, uma mensagem é enviada para um hub de eventos para ser processada de forma assíncrona. Este componente está hospedado no Azure Functions.

    • Leituras de: Azure Cosmos DB
    • Grava em: Hubs de Eventos do Azure
  • Processador em segundo plano: um componente que processa de forma assíncrona atualizações de banco de dados. O processador não tem um ponto de extremidade público. Este componente está hospedado no Azure Functions.

    • Leituras de: Hubs de Eventos do Azure
    • Grava em: Azure Cosmos DB
  • Agente de mensagens: o processador de mensagens usa Hubs de Eventos do Azure para passar mensagens entre a API de Catálogo e o Processador em Segundo Plano.

  • Banco de dados: os dados são persistentes no Azure Cosmos DB. A API de catálogo lê diretamente do banco de dados. As gravações são tratadas pelo processador em segundo plano. As imagens são armazenadas no Armazenamento de Blobs do Azure.

  • Segredos: Os componentes de aplicativo dessa carga de trabalho usam segredos para autorizar o acesso. Os segredos são armazenados no Cofre da Chave do Azure. A API de Catálogo e o Processador em Segundo Plano usam cadeias de conexão para acessar o banco de dados e os Hubs de Eventos do Azure. O aplicativo Web front-end usa uma chave de API para chamar a API de catálogo.

  • Monitoramento: os componentes do aplicativo enviam todas as medições de dados para o Application Insights, com o suporte de um espaço de trabalho do Log Analytics. O mesmo espaço de trabalho é usado para coletar outros logs e métricas para essa carga de trabalho.

Divida a arquitetura em camadas

Como descrito na unidade anterior, um modelo de saúde deve ser uma estrutura em camadas. O processo de modelagem da integridade é um exercício de arquitetura para definir todos os fluxos de usuário, mapear dependências entre componentes funcionais e lógicos e também dependências entre recursos do Azure.

Identificar os fluxos de usuários e construir o modelo de saúde é um exercício conceitual nesta etapa. Use papel e caneta ou um documento em branco para anotar as camadas individuais e desenhar a estrutura.

Para este exercício, nosso modelo de integridade tem três camadas: fluxos de usuário, componentes de aplicativo e recursos do Azure.

Fluxos do utilizador

Começando no topo da arquitetura, pense nos possíveis fluxos de usuários com base na funcionalidade esperada do aplicativo. Tente abstrair os detalhes técnicos e os serviços do Azure e avaliar os fluxos da perspetiva de um usuário.

  • Que processos são críticos?
  • Como os funcionários usam o aplicativo para atingir os objetivos de negócios?

Com base nos requisitos identificados pela equipe de operações, você deve ter pelo menos dois fluxos de usuário na camada superior: Listar itens do catálogo e Adicionar comentário.

Se puder pensar em mais, inclua-os no seu modelo de saúde.

Componentes de aplicações

Mova uma camada para baixo e avalie os componentes do aplicativo. Comece por fazer perguntas, tais como:

  • "Qual parte do meu aplicativo faz esse fluxo funcionar?"
  • "Que microsserviços ou componentes participam neste fluxo?"
  • "Este fluxo ainda funcionará se esta parte falhar?"

O objetivo é identificar componentes de aplicação a nível técnico que contribuam para cada fluxo de utilizadores. Esses componentes podem ser APIs, trabalhadores em segundo plano, microsserviços e assim por diante.

Essa carga de trabalho tem pelo menos três componentes de aplicativo que participam dos dois fluxos de usuário identificados: Front-end, API de catálogo e um processador em segundo plano.

Recursos do Azure

A camada inferior contém os recursos do Azure usados pelos componentes individuais do aplicativo. Para este exercício, os componentes e recursos são descritos na seção Componentes .

Nota

Um cenário do mundo real provavelmente terá mais serviços e terá relações mais complicadas entre eles. Uma chave para construir um modelo de saúde bem-sucedido é identificar quais partes são críticas e como cada componente contribui para a integridade geral do sistema.

Desenhar a estrutura final do modelo de saúde

Coloque as informações coletadas em uma representação gráfica da estrutura do modelo de saúde. Deve ser semelhante a este diagrama:

Diagram that shows the architecture for this layered health model.

De cima para baixo, o modelo de integridade do aplicativo Web tem estas camadas:

Fluxos do utilizador
  • Listar itens de catálogo. Dependente do aplicativo Web front-end e da API do catálogo.
  • Adicionar comentário. Depende do aplicativo Web front-end, da API de catálogo e do processador em segundo plano.
Componentes de aplicações
  • Aplicação Web front-end. Dependente do armazenamento de Blob e da API de catálogo.
  • API de catálogo. Dependente do Azure Cosmos DB, Key Vault e Hubs de Eventos.
  • Processador em segundo plano. Dependente do Azure Cosmos DB, Key Vault e Hubs de Eventos.
Recursos do Azure
  • Armazenamento de Blobs
  • BD do Cosmos para o Azure
  • Key Vault
  • Hubs de Eventos