Guia de Arquitetura do Aplicativo do AzureAzure Application Architecture Guide

Este guia apresenta uma abordagem estruturada para a criação de aplicativos do Azure que são escalonáveis, flexíveis e altamente disponíveis.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. Ele se baseia nas práticas comprovadas que aprendemos nos contratos com clientes.It is based on proven practices that we have learned from customer engagements.

IntroduçãoIntroduction

A nuvem está mudando a maneira como os aplicativos são criados.The cloud is changing how applications are designed. Em vez de monolitos, aplicativos são decompostos em serviços descentralizados menores.Instead of monoliths, applications are decomposed into smaller, decentralized services. Esses serviços se comunicam por meio de APIs, ou usando o serviço de mensagens ou eventos assíncronos.These services communicate through APIs or by using asynchronous messaging or eventing. Os aplicativos são dimensionadaos horizontalmente, adicionando novas instâncias de acordo com a demanda.Applications scale horizontally, adding new instances as demand requires.

Essas tendências trazem novos desafios.These trends bring new challenges. O estado do aplicativo é distribuído.Application state is distributed. As operações são feitas em paralelo e de maneira assíncrona.Operations are done in parallel and asynchronously. Os aplicativos devem ser resilientes quando ocorrem falhas.Applications must be resilient when failures occur. As implantações devem ser automatizadas e previsíveis.Deployments must be automated and predictable. Monitoramento e telemetria são essenciais para obter informações sobre o sistema.Monitoring and telemetry are critical for gaining insight into the system. Este guia foi criado para ajudar você a entender melhor essas alterações.This guide is designed to help you navigate these changes.

Tradicional fornecido no localTraditional on-premisesNuvem modernaModern cloud
MonolíticoMonolithic
Projetado para escalabilidade previsívelDesigned for predictable scalability
Banco de dados relacionalRelational database
Processamento sincronizadoSynchronized processing
Design para evitar falhas (MTBF)Design to avoid failures (MTBF)
Grandes atualizações ocasionaisOccasional large updates
Gerenciamento manualManual management
Servidores floco de neveSnowflake servers
DecompostoDecomposed
Criado para dimensionamento elásticoDesigned for elastic scale
Persistência poliglotaPolyglot persistence (mix of storage technologies)
Processamento assíncronoAsynchronous processing
Design para falhas (MTTR)Design for failure (MTTR)
Atualizações pequenas frequentesFrequent small updates
Autogerenciamento automatizadoAutomated self-management
Infraestrutura imutávelImmutable infrastructure

Como este guia é estruturadoHow this guide is structured

O Guia de Arquitetura do Aplicativo do Azure é organizado como uma série de etapas de arquitetura e design para implementação.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Para cada etapa, há diretrizes de suporte que ajudarão você com o design de arquitetura de seu aplicativo.For each step, there is supporting guidance that will help you with the design of your application architecture.

Estilos de arquiteturaArchitecture styles

O primeiro ponto de decisão é o mais importante.The first decision point is the most fundamental. Que tipo de arquitetura está compilando?What kind of architecture are you building? Pode ser uma arquitetura de microsserviços, um aplicativo de N camadas mais tradicional ou uma solução de big data.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Identificamos vários estilos de arquitetura diferentes.We have identified several distinct architecture styles. Há benefícios e desafios para cada um.There are benefits and challenges to each.

Saiba mais: Estilos de arquiteturaLearn more: Architecture styles

Opções de tecnologiaTechnology choices

Sabendo o tipo de arquitetura que você está criando, agora você pode começar a escolher os principais elementos de tecnologia para a arquitetura.Knowing the type of architecture you are building, now you can start to choose the main technology pieces for the architecture. As seguintes opções de tecnologia são críticas:The following technology choices are critical:

  • Computação se refere ao modelo de hospedagem dos recursos de computação em que os aplicativos são executados.Compute refers to the hosting model for the computing resources that your applications run on. Para obter mais informações, confira Escolher um serviço de computação.For more information, see Choose a compute service.

  • Armazenamentos de dados incluem bancos de dados, mas também o armazenamento das filas de mensagens, caches, logs e tudo que um aplicativo pode manter no armazenamento.Data stores include databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage. Para obter mais informações, confira Escolher um armazenamento de dados.For more information, see Choose a data store.

  • As tecnologias de mensagens permitem a transmissão de mensagens assíncronas entre componentes do sistema.Messaging technologies enable asynchronous messages between components of the system. Para obter mais informações, confira Escolher um serviço de mensagens.For more information, see Choose a messaging service.

Você provavelmente precisará fazer escolhas de tecnologia adicionais ao longo do caminho, mas esses três elementos (computação, dados e mensagens) são fundamentais para a maioria dos aplicativos de nuvem e determinarão muitos aspectos do seu design.You will probably have to make additional technology choices along the way, but these three elements (compute, data, and messaging) are central to most cloud applications and will determine many aspects of your design.

Criar a arquiteturaDesign the architecture

Depois de escolher o estilo de arquitetura e os principais componentes de tecnologia, você está pronto para lidar com o design específico do seu aplicativo.Once you have chosen the architecture style and the major technology components, you are ready to tackle the specific design of your application. Cada aplicativo é diferente, mas os seguintes recursos podem ajudá-lo nesse percurso:Every application is different, but the following resources can help you along the way:

Arquiteturas de referênciaReference architectures

Dependendo do seu cenário, uma de nossas arquiteturas de referência pode ser um bom ponto de partida.Depending on your scenario, one of our reference architectures may be a good starting point. Cada arquitetura de referência inclui as práticas recomendadas, junto com as considerações sobre escalabilidade, disponibilidade, segurança, resiliência e outros aspectos do design.Each reference architecture includes recommended practices, along with considerations for scalability, availability, security, resilience, and other aspects of the design. A maioria também inclui uma solução implantável ou uma implementação de referência.Most also include a deployable solution or reference implementation.

Princípios de designDesign principles

Identificamos dez princípios de design de alto nível que tornarão seu aplicativo mais escalonável, resiliente e gerenciável.We have identified 10 high-level design principles that will make your application more scalable, resilient, and manageable. Esses princípios de design se aplicam a qualquer estilo de arquitetura.These design principles apply to any architecture style. Durante o processo de design, não se esqueça desses dez princípios de design de alto nível.Throughout the design process, keep these 10 high-level design principles in mind. Para obter mais informações, confira Princípios de design.For more information, see Design principles.

Padrões de designDesign patterns

Os padrões de design de software são padrões repetíveis, com eficácia comprovada para resolver padrões específicos.Software design patterns are repeatable patterns that are proven to solve specific patterns. Nosso catálogo de padrões de design de nuvem aborda desafios específicos em sistemas distribuídos.Our catalog of Cloud design patterns addresses specific challenges in distributed systems. Eles envolvem aspectos como disponibilidade, resiliência, desempenho e segurança.They address aspects such as availability, resiliency, performance, and security. Você pode encontrar nosso catálogo de padrões de design aqui.You can find our catalog of design patterns here.

Práticas recomendadasBest practices

Nossos artigos de práticas recomendadas abrangem várias considerações de design, incluindo design de API, dimensionamento automático, particionamento de dados, cache e assim por diante.Our best practices articles cover various design considerations including API design, autoscaling, data partitioning, caching, and so forth. Examine-os e aplique as práticas recomendadas apropriadas para seu aplicativo.Review these and apply the best practices that are appropriate for your application.

Pilares da qualidadeQuality pillars

Um aplicativo em nuvem bem-sucedido se concentrará em cinco pilares de qualidade de software: Custo, DevOps, resiliência, escalabilidade e segurança.A successful cloud application will focus on five pillars of software quality: Cost, DevOps, resiliency, scalability, and security.

PilarPillar DESCRIÇÃODescription
CustoCost Gerenciamento de custos para maximizar o valor entregue.Managing costs to maximize the value delivered.
DevOpsDevOps Processos de operações que mantêm um sistema em execução em produção.Operations processes that keep a system running in production.
ResiliênciaResiliency A capacidade de um sistema de se recuperar de falhas e continuar funcionando.The ability of a system to recover from failures and continue to function.
EscalabilidadeScalability A capacidade de um sistema adaptar-se às alterações na carga.The ability of a system to adapt to changes in load.
SegurançaSecurity Proteger aplicativos e dados contra ameaças.Protecting applications and data from threats.

Use a Estrutura de Arquitetura do Azure para avaliar sua arquitetura nesses cinco pilares.Use the Azure Architecture Framework to assess your architecture across these five pillars.

Próximas etapasNext steps