Exercício – Criar uma estrutura de integridade em camadas
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
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:
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