Especificação de design de arquitetura de carga de trabalho
Uma especificação de design de arquitetura de carga de trabalho é uma especificação detalhada que descreve as opções de design e é acompanhada por diagramas. As opções de projeto devem atender aos requisitos funcionais e não funcionais e incluir provisões para operações de rotina, ad hoc e de emergência.
Para obter informações sobre diagramas, consulte Diagramas de design de arquitetura.
O design da arquitetura de carga de trabalho, normalmente expansivo, começa com o design do aplicativo e progride para a seleção do serviço de nuvem. Essas fases se informam mutuamente. O design combinado de aplicativos e infraestrutura deve atender a todos os requisitos.
Alcançar uma solução que satisfaça todos os requisitos é um esforço colaborativo entre as partes interessadas, desenvolvedores, testadores, equipes de operações e proprietários de produtos. O processo de design deve envolver o refinamento de requisitos com clareza e negociação. O processo é iterativo e geralmente requer várias revisões.
Recomendamos que você alinhe seu design com as diretrizes fundamentais do Azure Well-Architected Framework, que inclui princípios de design e guias de recomendação, e reconheça as compensações.
Em última análise, a especificação de design da arquitetura de carga de trabalho é implementada pela equipe de desenvolvimento da carga de trabalho, portanto, deve ser clara e inequívoca. A especificação deve estar prontamente disponível e armazenada com a documentação da carga de trabalho.
Especificação funcional
A especificação funcional de uma carga de trabalho detalha o quê e o porquê do sistema ou recurso em desenvolvimento, mas não a implementação. Este documento deve explicar os problemas atuais que existem e como esse recurso ou sistema vai melhorar essa experiência. Este documento captura a maioria dos requisitos de negócios.
Um arquiteto pode ajudar a moldar este documento, mas principalmente é uma função da propriedade do produto. Um arquiteto deve ajudar a projetar os dados capturados nesta especificação. Esse envolvimento garante que a especificação funcional conduza a um projeto técnico eficaz e eficiente.
Aqui estão alguns exemplos de tópicos que devem ser abordados nesta especificação.
Além de detalhar o que está no escopo desse design, seja explícito sobre as preocupações adjacentes que estão fora do escopo. Definir escopos claros reduz o desvio de escopo definindo limites em torno da funcionalidade.
É útil incluir os detalhes sobre como essa mudança será medida. Quais medidas precisam ser coletadas e quais metas de negócios essas medidas suportam.
Os fluxos de usuários devem ser claramente descritos. Mockups de baixa fidelidade também podem ser úteis. Se as situações de tratamento de erros forem importantes para esses fluxos, verifique o comportamento esperado descrito.
Sempre inclua todos os requisitos específicos de acessibilidade, conformidade, desempenho, privacidade ou segurança.
Inclua qualquer estratégia de distribuição planejada. Por exemplo, "Este recurso estará disponível para nossos usuários beta por dois meses antes de decidir sobre um lançamento completo".
Evite detalhes técnicos específicos de implementação nesta especificação. Essas especificações funcionais orientarão as especificações técnicas criadas pelo arquiteto.
Especificação técnica
A especificação técnica descreve o como com base no escopo e nos objetivos descritos na especificação funcional. Essa especificação foi projetada para a equipe de engenharia usar como um plano de registro durante a implementação.
Nesta especificação incluem itens como:
- Decisões de tecnologia, incluindo: comprar, construir, reutilizar, estender ou desativar.
- API e contratos de dados (esquemas), incluindo estratégia de implementação de compatibilidade com versões anteriores
- Detalhes da implementação de distribuição e reversão
- Ciclo de vida de desenvolvimento seguro exclusivo (SDL) e implementação de privacidade
- O plano de teste
- Principais fontes de sinais de monitoramento e alerta
- Desenhos alternativos que foram considerados
A especificação técnica impulsionará os esforços de engenharia. Os itens de trabalho de engenharia são criados principalmente a partir do conteúdo desta especificação. As equipes de implementação referem-se aos itens de trabalho, à especificação técnica e à especificação funcional para garantir que o resultado final atenda aos requisitos funcionais e não funcionais.
Planos de recuperação de desastres
Para atender aos requisitos de confiabilidade da carga de trabalho, um arquiteto precisa projetar um sistema que possa se recuperar dentro das metas de RTO (objetivo de tempo de recuperação) e RPO (objetivo de ponto de recuperação). A especificação do design da arquitetura deve incluir o plano de recuperação. Esse plano deve abranger os componentes de arquitetura envolvidos, os mecanismos de failover e o impacto no usuário e no fluxo de dados e as recomendações operacionais. Deve descrever quais metas de recuperação são atendidas pelo projeto e como.
Embora se espere que o plano inicial evolua com base em insights de simulações e revisões pós-incidente, é responsabilidade do arquiteto entregar o plano inicial para todas as novas arquiteturas.
Documentação de segurança e conformidade
Um arquiteto é responsável por projetar uma solução que atenda às restrições de segurança e conformidade pertinentes. É importante que os artefatos de design destaquem as funcionalidades incorporadas no design para dar suporte a esses requisitos e identifiquem quaisquer controles de compensação necessários quando os requisitos não puderem ser atendidos diretamente.
Consistência
Use um modelo para documentar as várias especificações da carga de trabalho. A consistência ajuda as partes interessadas, as partes responsáveis e as equipes de implementação quando a especificação está sendo lida.
Certifique-se de que as especificações tenham campos de metadados importantes, como:
- Estado: Um status como Rascunho, Em revisão e Aprovado.
- Link do item de trabalho: um link para o item de trabalho primário na lista de pendências da equipe.
- Principais links cruzados: Links para especificações relacionadas ou outra documentação que suporte a especificação.
- Indivíduos-chave: Um local para listar os nomes dos principais tomadores de decisão envolvidos. Essa lista pode incluir funções como: analista de negócios, parceiro de negócios, líder técnico e o proprietário do produto ou líder que assinou a especificação.