Exercício - Construa uma estrutura de saúde em camadas
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 esse 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
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. O processador em segundo plano lida com as gravações. 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:
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