Guia da Arquitetura de Aplicações no AzureAzure Application Architecture Guide

Este guia apresenta uma abordagem estruturada para criar aplicações no Azure altamente disponíveis, resilientes e dimensionáveis.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. É baseado em práticas comprovadas que aprendemos a partir do envolvimento com o cliente.It is based on proven practices that we have learned from customer engagements.

IntroduçãoIntroduction

A cloud está a mudar a forma como as aplicações são concebidas.The cloud is changing the way applications are designed. Em vez de monólitos, as aplicações são decompostas em serviços mais pequenos e descentralizados.Instead of monoliths, applications are decomposed into smaller, decentralized services. Estes serviços comunicam através de APIs ou ao utilizar mensagens ou eventos assíncronos.These services communicate through APIs or by using asynchronous messaging or eventing. As aplicações aumentam horizontalmente, ao adicionar novas instâncias conforme pedido.Applications scale horizontally, adding new instances as demand requires.

Estas tendências colocam novos desafios.These trends bring new challenges. O estado da aplicação está distribuído.Application state is distributed. As operações são realizadas em paralelo e no modo assíncrono.Operations are done in parallel and asynchronously. O sistema como um todo tem de ser resiliente quando ocorrem falhas.The system as a whole must be resilient when failures occur. As implementações têm de ser automatizadas e previsíveis.Deployments must be automated and predictable. A monitorização e a telemetria são essenciais para obter informações sobre o sistema.Monitoring and telemetry are critical for gaining insight into the system. O Guia de Arquitetura da Aplicação Azure foi concebido para ajudar a navegar com estas alterações.The Azure Application Architecture Guide is designed to help you navigate these changes.

Tradicional no localTraditional on-premisesCloud modernaModern cloud
Monolítica, centralizadaMonolithic, centralized
Conceção para escalabilidade previsívelDesign for predictable scalability
Base de dados relacionalRelational database
Consistência forteStrong consistency
Processamento de série e sincronizadoSerial and synchronized processing
Conceção para evitar falhas (MTBF)Design to avoid failures (MTBF)
Atualizações grandes ocasionaisOccasional big updates
Gestão manualManual management
Servidores floco de neveSnowflake servers
Decomposto, descentralizadoDecomposed, de-centralized
Conceção para escala elásticaDesign for elastic scale
Persistência poliglota (mistura de tecnologias de armazenamento)Polyglot persistence (mix of storage technologies)
Consistência eventualEventual consistency
Processamento paralelo e assíncronoParallel and asynchronous processing
Estrutura para falha (MTTR)Design for failure (MTTR)
Pequenas atualizações frequentesFrequent small updates
Gestão própria automatizadaAutomated self-management
Infraestrutura imutávelImmutable infrastructure

Este guia destina-se a arquitetos de aplicação, programadores e equipas de operações.This guide is intended for application architects, developers, and operations teams. Não é um guia de procedimentos para utilizar os serviços do Azure individuais.It's not a how-to guide for using individual Azure services. Depois de ler este guia, irá compreender os padrões da arquitetura e as melhores práticas a aplicar ao criar na plataforma cloud do Azure.After reading this guide, you will understand the architectural patterns and best practices to apply when building on the Azure cloud platform. Também pode transferir uma versão eBook do guia.You can also download an e-book version of the guide.

Como este guia está estruturadoHow this guide is structured

O Guia de Arquitetura de Aplicação Azure está organizado com uma série de passos, desde a arquitetura e conceção à implementação.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Para cada passo, existe documentação de orientação que irá ajudá-lo na conceção da sua arquitetura da aplicação.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 fundamental.The first decision point is the most fundamental. Que tipo de arquitetura está a criar?What kind of architecture are you building? Poderá ser uma arquitetura de microsserviços, uma aplicação de camada N mais tradicional ou uma solução de macrodados.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Identificámos vários estilos de arquitetura distintos.We have identified several distinct architecture styles. Existem vantagens e desafios para cada um.There are benefits and challenges to each.

Saiba mais:Learn more:

Opções de tecnologiaTechnology choices

Devem ser escolhidas duas opções de tecnologia numa fase inicial, uma vez que estas afetam toda a arquitetura.Two technology choices should be decided early on, because they affect the entire architecture. Estas são as opções de serviços e arquivos de dados de computação.These are the choice of compute service and data stores. A Computação refere-se ao modelo de alojamento dos recursos de computação em que as suas aplicações são executadas.Compute refers to the hosting model for the computing resources that your applications runs on. Os arquivos de dados incluem bases de dados, mas também armazenamentos de filas de mensagens, caches, registos e qualquer coisa que uma aplicação possa manter no armazenamento.Data stores includes databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.

Saiba mais:Learn more:

Princípios de conceçãoDesign principles

Identificámos dez princípios de design de elevado nível que tornam a sua aplicação mais dimensionável, resiliente e fácil de gerir.We have identified ten high-level design principles that will make your application more scalable, resilient, and manageable. Estes princípios de design aplicam-se a qualquer estilo de arquitetura.These design principles apply to any architecture styles. Ao longo do processo de conceção, tenha estes dez princípios de conceção de alto nível em mente.Throughout the design process, keep these ten high-level design principles in mind. Em seguida, considere o conjunto de melhores práticas para aspetos específicos de arquitetura; por exemplo, o dimensionamento automático, a colocação em cache, a criação de partições de dados, a estrutura de API e outros.Then consider the set of best practices for specific aspects of the architecture, such as auto-scaling, caching, data partitioning, API design, and others.

Saiba mais:Learn more:

Pilares de qualidadeQuality pillars

Uma aplicação na cloud com êxito irá focar-se em cinco pilares de qualidade de software: Escalabilidade, disponibilidade, resiliência, gestão e segurança.A successful cloud application will focus on five pillars of software quality: Scalability, availability, resiliency, management, and security. Utilize as nossas listas de verificação de design para rever a sua arquitetura de acordo com estes pilares de qualidade.Use our design review checklists to review your architecture according to these quality pillars.