Design para requisitos de negócios
Reúna os requisitos de negócios com foco na utilidade pretendida para a carga de trabalho. |
---|
Os requisitos de negócios são definidos por meio de um trabalho colaborativo entre os stakeholders da empresa e os arquitetos de carga de trabalho. Cada lado deve ceder um pouco para garantir que os requisitos acordados sejam realistas e alcançáveis e, ao mesmo tempo, abordem corretamente as metas de confiabilidade que a carga de trabalho precisa cumprir. Os requisitos devem abranger a experiência do usuário, dados, fluxos de trabalho e características que sejam exclusivas da carga de trabalho. O resultado do processo de requisitos deve indicar as expectativas com clareza. Os objetivos devem ser alcançáveis e negociados com a equipe, de acordo com um investimento especificado. Devem ser documentadas para impulsionar implementações, operações e opções tecnológicas.
Exemplo de cenário
A Seguradora Contoso está na fase inicial de projeto do desenvolvimento de um aplicativo web para processar reivindicações para detentores de suas apólices. A maioria dos fluxos básicos de usuários e do sistema foram determinados 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 metas de confiabilidade
Quantifique o sucesso definindo metas nos indicadores para componentes individuais, fluxos do sistema e do usuário e o sistema como um todo.
As métricas quantificam as expectativas. Permitem que você entenda as complexidades e determine se os custos dessas complexidades downstream estão dentro dos limites do investimento.
Os valores das metas indicam um estado ideal. Você pode usar os valores como limiares de teste que ajudem a detectar desvios desse estado e quanto tempo leva para retornar ao estado desejado.
Os requisitos de conformidade também precisam ter resultados previsíveis para os fluxos incluídos no escopo. Ao priorizar esses fluxos, você chama a atenção para as áreas que são mais sensíveis.
O desafio da Contoso
- A equipe de carga de trabalho quer garantir que esteja otimizando a forma como os recursos são gastos para tornar a carga de trabalho confiável.
- A carga de trabalho foi decomposta em fluxos e os fluxos classificados com base em sua criticidade.
Como aplicar a abordagem e os resultados
- A equipe determina que o fluxo de Envio e Aprovação das Reivindicações deve ter requisitos da mais alta confiabilidade para a carga de trabalho devido à confiança depositada por médicos e pacientes na disponibilidade desse fluxo.
- A equipe de carga de trabalho identifica os componentes que facilitam esse fluxo e determina as medidas de confiabilidade necessárias para atingir as metas.
Entender os compromissos da plataforma
Entenda as métricas de confiabilidade garantidas fornecidas pela plataforma de nuvem e leve em conta os limites, cotas e restrições de capacidade dos serviços.
Os Contratos de Nível de Serviço (SLAs) variam de acordo com o serviço. Nem todos os serviços e recursos são abordados da mesma forma. Ter um bom entendimento da cobertura e dos limites pode ajudar você a detectar um descompasso e criar mecanismos de resiliência e recuperação.
O desafio da Contoso
- A equipe de carga de trabalho e os stakeholders determinaram que os dados do aplicativo precisam ter um Objetivo de Tempo de Recuperação (RTO) garantido que não poderá exceder 30 segundos para favorecer a criticidade de seu fluxo de Envio e Aprovação das Reivindicações.
Como aplicar a abordagem e os resultados
- Após ter lido os SLAs publicados pela Microsoft, a equipe percebe que precisará implantar a camada Comercialmente Crítica com replicação geográfica ativa para atingir essa meta de RTO.
Determinar dependências e seus efeitos sobre a resiliência
Ao decompor sua carga de trabalho em componentes, certifique-se de que você documentou todas as dependências, internas ou externas à empresa, e identifique como um mau funcionamento das dependências poderá afetar seus fluxos
Monitorar a infraestrutura, as APIs, as funções e os serviços dependentes desenvolvidos por outras equipes ou por terceiros ajuda a determinar se a carga de trabalho pode operar na ausência dessas dependências. Também ajuda você a entender as falhas em cascata e aprimorar as operações downstream. Os desenvolvedores podem implementar padrões de design resilientes para lidar com as 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 das Reivindicações tem uma dependência em um pequeno conjunto de dados de referência que é hospedado e gerenciado por um departamento diferente dentro da Seguradora Contoso.
- O conjunto de dados é atualizado várias vezes por dia, durante o expediente normal de trabalho.
- O aplicativo está sendo projetado para tolerar algum grau de obsolescência nos dados de referência, mas os dados devem estar sempre disponíveis para o aplicativo.
Como aplicar a abordagem e os resultados
- A equipe de carga de trabalho entra em contato com a equipe que dá suporte ao conjunto de dados de referência e descobre que a meta de confiabilidade do conjunto de dados é inferior à do fluxo que irá usá-lo.
- 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 durante a noite. A tolerância à obsolescência permitida pelo design não será violada por essa solução.