Compilação para as necessidades de negócioBuild for the needs of the business

Cada decisão de conceção tem de ser justificada por um requisito comercialEvery design decision must be justified by a business requirement

Este princípio de conceção pode parecer óbvio, mas é fundamental tê-lo em consideração ao conceber uma solução.This design principle may seem obvious, but it's crucial to keep in mind when designing a solution. Antecipa milhões de utilizadores ou alguns milhares?Do you anticipate millions of users, or a few thousand? Uma indisponibilidade de aplicação de uma hora é aceitável?Is a one-hour application outage acceptable? Espera grandes quantidades de tráfego ou uma carga de trabalho previsível?Do you expect large bursts in traffic or a predictable workload? Por fim, cada decisão de conceção tem de ser justificada por um requisito comercial.Ultimately, every design decision must be justified by a business requirement.

RecomendaçõesRecommendations

Defina objetivos de negócio, incluindo o objetivo de tempo de recuperação (RTO), o objetivo de ponto de recuperação (RPO) e a indisponibilidade máxima tolerável (MTO).Define business objectives, including the recovery time objective (RTO), recovery point objective (RPO), and maximum tolerable outage (MTO). Estes números devem informar as decisões sobre a arquitetura.These numbers should inform decisions about the architecture. Por exemplo, para atingir um RTO baixo, pode implementar uma ativação pós-falha automática para uma região secundária.For example, to achieve a low RTO, you might implement automated failover to a secondary region. No entanto, se a sua solução conseguir tolerar um RTO superior, esse grau de redundância pode ser desnecessário.But if your solution can tolerate a higher RTO, that degree of redundancy might be unnecessary.

Documente os contratos de nível de serviço (SLA) e os objetivos de nível de serviço (SLO), incluindo métricas de disponibilidade e de desempenho.Document service level agreements (SLA) and service level objectives (SLO), including availability and performance metrics. Pode criar uma solução que forneça 99,95% de disponibilidade.You might build a solution that delivers 99.95% availability. É o suficiente?Is that enough? A resposta é uma decisão comercial.The answer is a business decision.

Modele a aplicação em torno do domínio empresarial.Model the application around the business domain. Comece por analisar os requisitos comerciais.Start by analyzing the business requirements. Utilize estes requisitos para modelar a aplicação.Use these requirements to model the application. Considere utilizar uma abordagem de conceção condicionada por domínio (DDD) para criar modelos de domínio que reflitam os processos de negócio e os casos de utilização.Consider using a domain-driven design (DDD) approach to create domain models that reflect the business processes and use cases.

Capture os requisitos funcionais e não funcionais.Capture both functional and nonfunctional requirements. Os requisitos funcionais permitem-lhe avaliar se a aplicação cumpre o objetivo.Functional requirements let you judge whether the application does the right thing. Os requisitos não funcionais permitem-lhe avaliar se a aplicação cumpre o objetivo da melhor forma.Nonfunctional requirements let you judge whether the application does those things well. Em particular, certifique-se de que compreende os requisitos de escalabilidade, disponibilidade e latência.In particular, make sure that you understand your requirements for scalability, availability, and latency. Estes requisitos irão influenciar as decisões de conceção e a escolha de tecnologia.These requirements will influence design decisions and choice of technology.

Decomponha por carga de trabalho.Decompose by workload. Neste contexto, o termo "carga de trabalho" significa uma capacidade discreta ou tarefa informática, que pode ser separada logicamente das outras tarefas.The term "workload" in this context means a discrete capability or computing task, which can be logically separated from other tasks. As diversas cargas de trabalho podem ter diferentes requisitos para disponibilidade, escalabilidade, consistência de dados e recuperação após desastre.Different workloads may have different requirements for availability, scalability, data consistency, and disaster recovery.

Planeie o crescimento.Plan for growth. Uma solução pode satisfazer as suas necessidades atuais, em termos de número de utilizadores, volume de transações, armazenamento de dados, etc.A solution might meet your current needs, in terms of number of users, volume of transactions, data storage, and so forth. No entanto, uma aplicação robusta pode processar o crescimento sem grandes alterações de arquitetura.However, a robust application can handle growth without major architectural changes. Veja Estruturar para aumentar horizontalmente e Partição nos limites.See Design to scale out and Partition around limits. Considere também que os requisitos comerciais e do modelo de negócio vão provavelmente mudar ao longo do tempo.Also consider that your business model and business requirements will likely change over time. Se o modelo de serviço e os modelos de dados de uma aplicação forem demasiado rígidos, torna-se difícil desenvolver a aplicação para novos cenários e casos de utilização.If an application's service model and data models are too rigid, it becomes hard to evolve the application for new use cases and scenarios. Veja Estrutura para evolução.See Design for evolution.

Faça a gestão dos custos.Manage costs. Num aplicativo tradicional no local, paga para hardware como despesas de capital.In a traditional on-premises application, you pay upfront for hardware as a capital expenditure. Numa aplicação na cloud, paga pelos recursos que consumir.In a cloud application, you pay for the resources that you consume. Certifique-se de que compreende o modelo de preços para os serviços que consome.Make sure that you understand the pricing model for the services that you consume. O custo total inclui a utilização de largura de banda da rede, armazenamento, endereços IP, consumo do serviço e outros fatores.The total cost will include network bandwidth usage, storage, IP addresses, service consumption, and other factors. Para obter mais informações, consulte os preços do Azure.For more information, see Azure pricing. Considere também os custos operacionais.Also consider your operations costs. Na cloud, não tem de gerir o hardware ou outra infraestrutura, mas precisa de gerir as suas aplicações, incluindo DevOps, resposta a incidentes, recuperação após desastre, etc.In the cloud, you don't have to manage the hardware or other infrastructure, but you still need to manage your applications, including DevOps, incident response, disaster recovery, and so forth.