Exercício – Criar uma estrutura de integridade em camadas

Concluído

Neste exercício, sua tarefa é criar um modelo de integridade em camadas para um aplicativo de exemplo. Comece examinando 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.

Aplicativo de exemplo

O exemplo deste exercício é um aplicativo Web usado pela Contoso Shoes. O aplicativo permite que os funcionários procurem 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 comerciais críticos para esse aplicativo. Os funcionários precisam ser capazes de:

  • Interagir com o catálogo exibindo listas de itens e navegando em itens.
  • Criar comentários de itens individuais para outros usuários verem.

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

Arquitetura

Diagrama que mostra a arquitetura do aplicativo da Contoso Shoes.

Componentes

  • Aplicativo Web de 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 Blobs do Azure
    • Grava em: API de Catálogo
  • API de Catálogo: a camada de API que o aplicativo Web de front-end usa para operações de dados em itens de catálogo e comentários. Ele não grava no banco de dados. Nesse caso, uma mensagem é enviada a um hub de eventos para ser processada de maneira assíncrona. Esse componente é hospedado no Azure Functions.

    • Lê em: Azure Cosmos DB
    • Grava em: Hubs de Eventos do Azure
  • Processador em segundo plano: um componente que processa de maneira assíncrona as atualizações de banco de dados. O processador não tem um ponto de extremidade público. Esse componente é hospedado no Azure Functions.

    • Lê de: Hubs de Eventos do Azure
    • Grava em: Azure Cosmos DB
  • Agente de mensagens: o processador de mensagens usa os 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 persistidos no Azure Cosmos DB. A API de Catálogo lê diretamente do banco de dados. O processador em segundo plano lida com as gravações. Os dados são armazenados no Armazenamento de Blobs do Azure.

  • Segredos: os componentes do aplicativo dessa carga de trabalho usam segredos para autorizar o acesso. Os segredos são armazenados no Azure Key Vault. 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 de front-end usa uma chave de API para chamar a API de Catálogo.

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

Dividir a arquitetura em camadas

Conforme descrito na unidade anterior, um modelo de saúde deve ser uma estrutura em camadas. O processo de modelagem de 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.

A identificação de fluxos de usuário e a criação do modelo de integridade é um exercício conceitual nesta fase. Use a caneta e o papel ou um documento em branco para anotar as camadas individuais e desenhar a estrutura.

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

Fluxos de usuário

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

  • Quais processos são críticos?
  • Como os funcionários usam o aplicativo para atingir as metas 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 de catálogo e Adicionar comentário.

Se você identificar outros, inclua-os no modelo de integridade.

Componentes do aplicativo

Desça uma camada e avalie os componentes do aplicativo. Comece fazendo perguntas, como:

  • "Qual parte do meu aplicativo faz esse fluxo funcionar?"
  • "Quais microsserviços ou componentes participam desse fluxo?"
  • "Esse fluxo ainda funcionará se essa parte falhar?"

O objetivo é identificar os componentes do aplicativo em um nível técnico que contribuam para cada fluxo de usuário. Esses componentes podem ser APIs, trabalhos 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 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 os recursos são descritos na seção Componentes.

Observação

Um cenário real provavelmente terá mais serviços e relações mais complicadas entre eles. Uma chave para criar um modelo de integridade 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 integridade

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

Diagrama que mostra a arquitetura deste um modelo de integridade em camadas.

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

Fluxos de usuário
  • Listar itens do catálogo. Dependente do aplicativo Web front-end e da API de Catálogo.
  • Adicionar um comentário. Dependente do aplicativo Web de front-end, da API de Catálogo e do processador em segundo plano.
Componentes do aplicativo
  • Aplicativo Web de front-end. Dependente do Armazenamento de Blobs e da API de Catálogo.
  • API de catálogo. Dependente do Azure Cosmos DB, do Key Vault e dos Hubs de Eventos.
  • Processador em segundo plano. Dependente do Azure Cosmos DB, do Key Vault e dos Hubs de Eventos.
Recursos do Azure
  • Armazenamento de Blobs
  • Azure Cosmos DB
  • Key Vault
  • Hubs de Evento