Design para requisitos de negócios
Reúna os requisitos de negócios com foco na utilidade pretendida da carga de trabalho. |
---|
Os requisitos de negócios são definidos por meio do trabalho colaborativo entre as partes interessadas do negócio e os arquitetos de carga de trabalho. Devem ser feitos compromissos de ambas as partes para assegurar que os requisitos acordados são realistas e exequíveis, abordando simultaneamente os objetivos de fiabilidade que o volume de trabalho tem de cumprir. Os requisitos devem abranger a experiência do usuário, dados, fluxos de trabalho e características exclusivas da carga de trabalho. O resultado do processo de requisitos deve indicar claramente as expectativas. Os objetivos devem ser alcançáveis e negociados com a equipa, dado um investimento específico. Eles devem ser documentados para orientar escolhas, implementações e operações tecnológicas.
Cenário de exemplo
A Contoso Insurance está na fase inicial de desenvolvimento de um aplicativo Web para processar solicitações para seus segurados. A maioria dos fluxos principais de usuário e sistema foi determinada e a equipe de carga de trabalho identificou vários serviços do Azure que irão compor o aplicativo: Serviço de Aplicativo do Azure, Banco de Dados SQL do Azure, serviços de IA do Azure, Grade de Eventos do Azure e Aplicativos Lógicos do Azure.
Identificar alvos de confiabilidade
Quantificar o sucesso estabelecendo metas em indicadores para componentes individuais, fluxos de sistemas e usuários e o sistema como um todo.
As métricas quantificam as expectativas. Eles permitem que você compreenda as complexidades e determine se os custos a jusante dessas complexidades estão dentro do limite de investimento.
Os valores-alvo indicam um estado ideal. Você pode usar os valores como limites de teste que ajudam a detetar desvios desse estado e quanto tempo leva para retornar ao estado de destino.
Os requisitos de conformidade também devem ter resultados previsíveis para os fluxos dentro do escopo. A priorização desses fluxos chama a atenção para as áreas mais sensíveis.
O desafio da Contoso
- A equipe de carga de trabalho quer garantir que está otimizando a forma como os recursos são gastos para tornar a carga de trabalho confiável.
- Eles decompuseram a carga de trabalho em fluxos e classificaram os fluxos com base em sua criticidade.
Aplicação da abordagem e dos resultados
- A equipe determina que o fluxo de Envio e Aprovação de Solicitações terá os mais altos requisitos de confiabilidade para a carga de trabalho devido à dependência dos médicos e pacientes da disponibilidade desse fluxo.
- A equipe de carga de trabalho identifica os componentes que suportam esse fluxo e determina as medidas de confiabilidade que o cumprimento das metas exige.
Compreender os compromissos da plataforma
Entenda as métricas de confiabilidade garantida fornecidas pela sua plataforma de nuvem e considere os limites, cotas e restrições de capacidade para serviços.
Os contratos de nível de serviço (SLAs) variam de acordo com o serviço. Nem todos os serviços e funcionalidades são abrangidos da mesma forma. Ter uma boa compreensão da cobertura e dos limites pode ajudá-lo a detetar desvios e criar mecanismos de resiliência e recuperação.
O desafio da Contoso
- A equipe de carga de trabalho e as partes interessadas determinaram que os dados do aplicativo precisam ter um RTO (Recovery Time Objetive, objetivo de tempo de recuperação) garantido que não pode exceder 30 segundos para dar suporte à criticidade de seu fluxo de Envio e Aprovação de Declaração.
Aplicação da abordagem e dos resultados
- Depois de analisar os SLAs publicados pela Microsoft, a equipe vê que precisará implantar a camada Business Critical com replicação geográfica ativa para atingir essa meta de RTO.
Determinar dependências e seu efeito na resiliência
Ao decompor sua carga de trabalho em componentes, certifique-se de ter documentado todas as dependências, sejam elas internas ou externas à empresa, e identifique como o mau funcionamento das dependências pode afetar seus fluxos
Acompanhar a infraestrutura, os serviços, as APIs e as funções dependentes desenvolvidas por outras equipes ou terceiros ajuda a determinar se a carga de trabalho pode operar na ausência dessas dependências. Também o ajuda a compreender falhas em cascata e a melhorar as operações a jusante. Os desenvolvedores podem implementar padrões de design resilientes para lidar com possíveis falhas quando você usa serviços externos que podem ser suscetíveis a falhas.
O desafio da Contoso
- O fluxo de Envio e Aprovação de Solicitações depende de um pequeno conjunto de dados de referência hospedado e gerenciado por um departamento diferente no Seguro Contoso.
- O conjunto de dados é atualizado várias vezes ao dia, durante o horário normal de trabalho.
- O aplicativo está sendo projetado para tolerar alguma obsolescência nos dados de referência, mas os dados devem estar sempre disponíveis para o aplicativo.
Aplicação da abordagem e dos resultados
- A equipe de carga de trabalho envolve a equipe que dá suporte ao conjunto de dados de referência e aprende que a meta de confiabilidade para o conjunto de dados é menor do que a do fluxo que o usará.
- A equipe adiciona tarefas de design à lista de pendências para adicionar um cache local do conjunto de dados e um trabalho em segundo plano para atualizar o cache todas as noites. A tolerância ao atraso permitida pelo design não será violada por esta solução.