Microsoft AZ-305: Well-Architected Framework e Princípios de Design — Guia de estudos
Faz parte do Microsoft Azure Solutions Architect Expert AZ-305 — Guia de estudos. Pratique com respostas verificadas no centro de exames da Microsoft, ou faça testes cronometrados no ExamRoll.io.
Visão Geral
O Azure Well-Architected Framework (WAF) é um conjunto de princípios prescritivos que orientam o projeto, a construção e a operação de cargas de trabalho (workloads) confiáveis, seguras, com custo-benefício, operacionalmente excelentes e de alto desempenho no Azure. Alinhar as soluções aos cinco pilares — confiabilidade, segurança, otimização de custos, excelência operacional e eficiência de performance — garante que as decisões de arquitetura sejam trade-offs explícitos, informados pelas prioridades de negócio, tolerância a riscos e restrições como soberania de dados e orçamento. Alcançar consistência em escala exige landing zones, governança orientada por políticas (policy-driven) e automação como padrão. Projetos modernos enfatizam o desacoplamento, a comunicação orientada a eventos e padrões como CQRS, Strangler Fig e microsserviços, implementados com serviços nativos do Azure e observabilidade integrada, para acomodar tanto mudanças rápidas quanto conformidade (compliance) rigorosa.
Os Cinco Pilares: Confiabilidade, Segurança, Custo, Excelência Operacional, Performance
A Confiabilidade (Reliability) garante que os workloads continuem a atender aos SLAs de negócio sob falha e durante mudanças. Projete para domínios de falha (fault domains) e domínios de atualização (update domains) implantando entre Zonas de Disponibilidade (Availability Zones) ou pares de regiões, escolhendo serviços gerenciados com alta disponibilidade (HA) integrada e implementando padrões de resiliência. Teste a recuperabilidade com engenharia do caos (chaos engineering) e simulações de recuperação de desastres (disaster recovery). Para dados com estado (stateful), escolha serviços com recursos de RPO/RTO — por exemplo, Azure SQL Database Active Geo-Replication ou escritas multirregionais no Cosmos DB — combinados com backups automatizados e runbooks testados.
A Segurança (Security) é uma defesa em profundidade em camadas, ancorada no Zero Trust (Confiança Zero). Aplique o princípio do menor privilégio com o Azure RBAC, Privileged Identity Management (PIM) e revisões de acesso para uma higiene contínua de direitos (entitlement). Isole o raio de alcance de falhas de rede (blast radius) usando private endpoints, NSGs e o Azure Firewall; integre o Web Application Firewall (WAF) no Azure Front Door ou no Application Gateway. Assuma a violação (assume breach) com monitoramento contínuo via Defender for Cloud, detecção de ameaças no Sentinel e proteção rigorosa de identidade (MFA, Conditional Access).
A Otimização de Custos (Cost Optimization) equilibra o valor de negócio e o custo total de propriedade (TCO). Dimensione corretamente (right-size) a computação e os tiers com base na telemetria; use escalabilidade para corresponder à demanda e desligue ambientes de não produção. Comprometa-se com reservas (reservations) e planos de economia (savings plans) para workloads estáveis, aproveite as Spot VMs para computação interrompível, organize o armazenamento e a retenção de dados em camadas (tiering) e prefira serverless onde se alinhar aos perfis de workload. Imponha o uso de tags e orçamentos (budgets), e use o Azure Policy para padronizar os controles de custo.
A Excelência Operacional (Operational Excellence) enfatiza a automação, a repetibilidade e os ciclos de aprendizado (learning loops). Trate os ambientes como código (as code) com Bicep/ARM ou Terraform, imponha a remediação de desvios (drift) e implemente CI/CD consistente. Insights operacionais vêm de logs estruturados, métricas, traces e testes sintéticos, todos conectados a alertas e dashboards de SLO, para encurtar o MTTR e informar melhorias proativas.
A Eficiência de Performance (Performance Efficiency) garante que o workload atinja as metas de throughput e latência sob cargas variáveis. Projete para escalabilidade horizontal (scale-out), use cache de forma agressiva, envie conteúdo para a borda (edge) e escolha partições de dados e réplicas de leitura (read replicas) adequadas aos padrões de acesso. Valide com testes de carga realistas e ajuste (tune) com base em evidências.
Padrões de Confiabilidade e Performance no Azure
Padrões de resiliência reduzem a probabilidade e o impacto de falhas, mantendo a latência previsível.
Retry com backoff exponencial e jitter: Use as políticas de retry configuráveis dos SDKs do Azure ou bibliotecas como a Polly (.NET) para lidar com falhas transitórias de serviços como Storage, Service Bus ou Cosmos DB. O backoff com jitter evita o efeito manada (thundering herds); limite as tentativas (retries) para proteger os SLAs e expor as falhas a tempo.
Circuit Breaker: Encapsule chamadas de saída (por exemplo, para APIs externas) com um circuit breaker para falhar rapidamente (fail fast) quando as taxas de erro excederem os limites, permitindo períodos de recuperação. Implemente na camada do cliente com a Polly ou no gateway usando políticas do API Management (retry, timeout e cache) para evitar falhas em cascata.
Bulkhead: Particione os recursos para que um “vizinho barulhento” (noisy neighbor) não esgote os recursos do sistema. Isole pools de threads, réplicas de contêineres e partições de processamento de mensagens. No nível da plataforma, use App Service plans, node pools do AKS ou filas/tópicos do Service Bus separados por bounded context para conter as falhas.
Monitoramento de Health Endpoint: Exponha liveness e readiness probes nos serviços. Os health probes do Application Gateway/Front Door direcionam o tráfego apenas para instâncias saudáveis. No AKS, os probes do Kubernetes gerenciam reinicializações de pods e o controle de rollouts. Combine com os testes de disponibilidade do Application Insights e endpoints “/healthz” personalizados para detectar a degradação de dependências precocemente.
Padrões de performance complementam a resiliência:
Estratégias de Caching: Use o Azure Cache for Redis para dados quentes (hot data) e descarregamento de sessão (session offload). Aplique cache de saída (output caching) no Azure Front Door ou no API Management para GETs idempotentes. Prefira os padrões write-through ou write-behind quando apropriado; invalide por chave ou evento para manter os dados atualizados. Nas camadas de dados, o cache integrado do Cosmos DB reduz o consumo de RUs para workloads com leitura intensiva.
CDN: Envie ativos estáticos e conteúdo dinâmico para mais perto dos usuários com o Azure Front Door ou a Azure CDN, habilitando compressão, TLS e WAF. Configure cache baseado em regras, verificações de saúde da origem (origin health checks) e filtragem geográfica (geo-filtering) para otimizar a latência e o custo.
Réplicas de Leitura (Read Replicas): Escale workloads com leitura intensiva com secundárias legíveis do Azure SQL Database (Active Geo-Replication) ou réplicas nomeadas do Hyperscale; use réplicas de leitura do Azure Database for PostgreSQL/MySQL para análise ou relatórios; habilite leituras multirregionais no Cosmos DB com modelagem de consistência (por exemplo, Session, Consistent Prefix) alinhada às necessidades do negócio.
Padrões de Autoscaling: Implemente escalabilidade horizontal com Virtual Machine Scale Sets, regras de autoscale do App Service, HPA/KEDA do AKS para escalabilidade orientada a eventos e os planos Consumption/Premium do Functions. Para dados, use o autoscale de RU/s do Cosmos DB e o auto-inflate do Event Hubs para lidar com picos de tráfego (bursty traffic). Sempre valide os limiares de escalabilidade e os períodos de resfriamento (cool-down) para evitar oscilação.
Princípios de Design de Excelência Operacional, Otimização de Custos e Segurança
Infraestrutura como código: Padronize o uso de módulos Bicep/ARM ou Terraform, versionados no Git e validados com testes de pré-implantação e política como código (policy-as-code). Use template specs ou registros do Terraform para reutilização. Parametrize por ambiente e imponha o uso consistente de tags, bloqueios de recursos e configurações de diagnóstico. Integre com o Azure DevOps ou GitHub Actions; use implantações em estágios (staged deployments) e aprovações para uma promoção controlada.
Automação de implantação: Prefira o uso de deployment slots e estratégias blue-green e canary, suportadas pelo App Service, AKS (rollouts progressivos com estratégias de Deployment) e Traffic Manager/Front Door para roteamento ponderado. Automatize as alterações de esquema de banco de dados com pipelines de migração e contratos retrocompatíveis. Controle os rollouts usando health probes e KPIs de negócio.
Observabilidade: Instrumente as aplicações com OpenTelemetry, exporte para o Application Insights para obter rastreamento distribuído, métricas e mapas de dependência. Habilite o Azure Monitor para métricas de plataforma, implante workspaces do Log Analytics e crie Workbooks e dashboards para SLOs e capacidade. Defina regras de alerta com limiares dinâmicos, integre com ITSM e armazene os Activity Logs e logs de diagnóstico de forma centralizada para auditoria e análise forense.
Dimensionamento correto (Right-sizing) e controles de custo: Use o Azure Advisor, as métricas de uso do Azure Monitor e o profiling do Application Insights para identificar desperdícios (núcleos ociosos, vCores superprovisionados, RU/s superalocadas). Aplique Reservations/Savings Plans a cargas de trabalho estáveis (VMs, SQL, Synapse), capacidade reservada para o Storage e commitment tiers do Cosmos DB. Escolha Spot VMs para agentes de build, processamento em lote e treinamento de ML com checkpointing. Equilibre as compensações (trade-offs) de arquitetura: PaaS gerenciado pode reduzir o custo operacional e melhorar a confiabilidade a um custo unitário mais alto; o cache diminui os custos de saída de dados (egress) e de RUs em detrimento da complexidade da invalidação de cache; alta disponibilidade (HA) multirregional aumenta os gastos, mas pode ser exigida pelo RTO/RPO.
Princípios de segurança na prática:
- Defesa em profundidade: Aplique controles em camadas, da identidade aos dados. Use o Private Link para manter o tráfego fora da internet pública, NSGs e ASGs para microssegmentação, Azure Firewall Premium para inspeção de TLS e WAF na borda. Habilite as recomendações do Defender for Cloud e o acesso just-in-time a VMs.
- Menor privilégio: Implemente RBAC refinado (fine-grained), com escopo nos níveis de grupo de gerenciamento/assinatura/grupo de recursos; prefira identidades gerenciadas em vez de segredos; governe em escala com o Azure Policy e revisões de acesso para grupos, aplicativos empresariais e funções privilegiadas.
- Presuma violação: Exija MFA e Acesso Condicional, monitore com o Sentinel e isole as cargas de trabalho com landing zones e assinaturas separadas. Criptografe os dados em repouso com chaves da plataforma ou CMK no Key Vault; use criptografia dupla onde os reguladores exigirem. Use SAS para acesso ao armazenamento com tempo limitado e rotacione as chaves por política.
- Classificação de dados: Catalogue os dados com o Microsoft Purview, rotule a sensibilidade e aplique DLP. Alinhe a criptografia, a retenção e o acesso aos níveis de classificação de dados; registre o acesso a PII e dê suporte a requisitos de privacidade com recursos como Dynamic Data Masking e Always Encrypted, quando aplicável.
Azure Landing Zones e Padrões de Arquitetura Moderna
As Azure Landing Zones operacionalizam o framework em escala. Organize uma hierarquia de grupos de gerenciamento (raiz → plataforma → unidades de negócio) para definir o escopo do Azure Policy, do RBAC e dos orçamentos. As landing zones de plataforma fornecem serviços compartilhados — identidade (Azure AD), conectividade (hub com Azure Firewall, DDoS, DNS), gerenciamento (Log Analytics, Automation, Update Management) e segurança (Defender for Cloud). As landing zones de aplicação hospedam as cargas de trabalho, segmentadas por ambiente e limites de conformidade, com políticas herdadas que impõem o uso de tags, diagnósticos e tipos de recursos permitidos. Adote o design Enterprise-Scale do Cloud Adoption Framework (CAF) ou os aceleradores de landing zone baseados em Terraform/Bicep para iniciar de forma rápida e consistente.
Microsserviços no Azure enfatizam equipes desacopladas e serviços implantáveis de forma independente:
- Descoberta de serviços (Service discovery): No AKS, use o Kubernetes DNS/CoreDNS para resolução dentro do cluster; aprimore com sidecars do Dapr para descoberta baseada em nome e novas tentativas (retries). O Service Fabric fornece gerenciamento de nomes e de saúde (health) integrados para serviços com estado (stateful).
- Padrão de API gateway: Use o Azure API Management para centralizar o roteamento, o versionamento, a autenticação (validação de OAuth 2.0/JWT), as cotas e o cache. Posicione o Azure Front Door na frente para ter anycast global, descarregamento de SSL (SSL offload) e WAF; roteie por região e realize releases canário (canary releases) com segurança.
- Comunicação orientada a eventos: Use o Azure Service Bus para comandos transacionais e ordenados com sessões; escolha o Event Hubs para telemetria de alta vazão (high-throughput); e o Event Grid para assinaturas de eventos reativas no estilo push. Projete para entrega do tipo “pelo menos uma vez” (at-least-once), handlers idempotentes, tratamento de mensagens corrompidas (poison message) e DLQs.
CQRS e Event Sourcing separam os modelos de escrita e de leitura para isolamento de desempenho e complexidade. Persista eventos do tipo “somente anexo” (append-only) em um event store (Cosmos DB, Azure SQL ou Event Hubs com compactação via armazenamento downstream), reproduza-os (replay) para reconstruir o estado e projete-os em modelos de leitura otimizados para consultas, como Azure SQL Database, contêineres do Cosmos DB ou Azure Cognitive Search. O change feed do Cosmos DB é a peça central para as projeções: Azure Functions ou Azure Stream Analytics podem processar as alterações para atualizar os armazenamentos de leitura quase em tempo real. O Event Hubs armazena em buffer fluxos de eventos de alto volume, com os consumidores escalando de forma independente. Adote a consistência eventual com SLAs claros e padrões de experiência do usuário (ex: confirmação do comando seguida pela convergência do modelo de leitura).
O padrão Strangler Fig permite a modernização incremental. Coloque o Azure API Management na frente do monólito para rotear endpoints específicos para novos microsserviços, enquanto o restante continua para o backend legado. Use políticas para roteamento baseado em cabeçalho (header), transformação de resposta e autenticação. Sincronize dados com change data capture (ex: Azure Data Factory ou CDC de banco de dados para o Event Hubs) e construa novos modelos de leitura com Cosmos DB + change feed, desativando gradualmente as funcionalidades do monólito. Gerencie o risco com feature flags, roteamento canário no Front Door e observabilidade abrangente para comparar o comportamento.
Cenário de Problema Prático
A Starbucks está modernizando sua plataforma global de pedidos, atualmente um monólito hospedado em VMs em uma única região. Eles precisam melhorar a confiabilidade entre regiões, reduzir a latência para clientes móveis, impor o princípio do menor privilégio (least privilege) e Zero Trust, e migrar de forma incremental sem interrupção dos negócios.
- Estabelecer landing zones corporativas
- Crie uma hierarquia de grupos de gerenciamento com landing zones de plataforma e de aplicação. Aplique o Azure Policy para o uso de tags, diagnósticos, SKUs permitidos e private endpoints. Escolha a referência CAF Enterprise-Scale para identidade, conectividade (hub com Azure Firewall Premium, Private DNS) e gerenciamento (Log Analytics central). Por quê: As landing zones impõem linhas de base consistentes de segurança, rede e governança para que as cargas de trabalho herdem os controles por design.
- Colocar uma fachada de borda (edge) e de API na frente do monólito
- Implante o Azure Front Door (Standard/Premium) com WAF para fornecer um ponto de entrada anycast global, terminação de TLS e proteção contra DDoS. Posicione o Azure API Management como o API gateway, integrado ao Front Door, para autenticar clientes (OAuth 2.0), aplicar limites de taxa (rate limits) por grupo de consumidores e transformar requisições/respostas. Por quê: O Front Door reduz a latência e protege na borda; o API Management implementa o padrão de API gateway, habilitando a abordagem Strangler Fig e a limitação (throttling) específica por tenant.
- Implementar a migração com o padrão Strangler Fig
- Use políticas do API Management para rotear endpoints selecionados (ex: menu, localizador de lojas) para novos microsserviços executados no AKS em duas regiões; todas as outras rotas vão para o monólito legado atrás de um balanceador de carga interno. Por quê: O roteamento incremental evita migrações do tipo “big-bang” e permite que as equipes migrem funcionalidades de forma independente.
- Construir microsserviços com padrões resilientes e de alto desempenho
- No AKS, habilite o HPA com KEDA para autoescalonamento orientado a eventos. Use o Dapr para descoberta de serviços, novas tentativas (retries) com backoff exponencial e circuit breaking entre os serviços. Integre o Azure Cache for Redis para leituras frequentes (hot reads) e descarregamento de sessão (session offload). Por quê: O AKS e o Dapr fornecem resiliência agnóstica de plataforma e descoberta de serviços; o cache reduz a latência de leitura e a carga no backend.
- Adotar comunicação orientada a eventos e CQRS
- Publique eventos de domínio no Azure Event Hubs; persista os pedidos no Cosmos DB com particionamento por cliente ou loja. Use o change feed do Cosmos DB com Azure Functions para projetar para modelos de leitura no Azure SQL Database (relatórios) e no Azure Cognitive Search (busca de inventário de lojas). Por quê: O Event Hubs desacopla produtores e consumidores em alta vazão; o change feed permite visões materializadas quase em tempo real para CQRS sem impactar o desempenho de escrita.
- Fortalecer a segurança e a identidade
- Imponha o uso de private endpoints para serviços de dados, NSGs/ASGs para segmentação e Azure Firewall para controle de saída (egress). Use identidades gerenciadas (managed identities) para todas as cargas de trabalho, PIM para funções privilegiadas e revisões de acesso (access reviews) para assinaturas de produtos do API Management. Habilite o Conditional Access e o MFA para a equipe de operações. Por quê: A defesa em profundidade e o menor privilégio reduzem o raio de impacto (blast radius) e o risco de credenciais; as revisões de acesso mantêm a higiene dos direitos de acesso.
- Projetar para confiabilidade e observabilidade
- Implante em Zonas de Disponibilidade em cada região, com roteamento ativo-ativo no Front Door e API Management multirregional. Habilite o monitoramento de endpoints de saúde (health) com probes do Front Door e do AKS; configure releases canário para novos serviços. Instrumente com OpenTelemetry para o Application Insights, centralize os logs no Log Analytics e crie dashboards de SLO com alertas. Implemente backup/DR para armazenamentos com estado (stateful) e execute experimentos de caos (chaos experiments). Por quê: Redundância zonal e regional, roteamento orientado pela saúde (health) e observabilidade abrangente mantêm os SLAs e permitem uma resposta rápida a incidentes.
- Otimizar custos continuamente
- Dimensione corretamente (Right-size) os node pools do AKS e os planos do App Service com base na telemetria; aplique Reservations/Savings Plans para computação estável; use Spot VMs para processamento em lote (batch) não crítico. Habilite o autoescalonamento do Cosmos DB e avalie os níveis de compromisso (commitment tiers). Imponha orçamentos/tags e revise as recomendações do Azure Advisor mensalmente. Por quê: A governança sistemática de custos preserva o desempenho enquanto minimiza o desperdício e os custos unitários.
← Migração e Modernização · Todos os domínios
Pratique estas questões → · Prática cronometrada no ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Passe no seu exame →