Partilhar via


Fundamentos da arquitetura de aplicativos do Azure

Um aplicativo projetado para cargas de trabalho hospedadas na nuvem atende aos requisitos de negócios da solução e incorpora componentes e funcionalidades nativos da nuvem. Um aplicativo em nuvem bem projetado aborda considerações de confiabilidade, segurança, custo, operações e desempenho. Essas considerações se alinham com os requisitos de negócios, as características específicas da plataforma de hospedagem em nuvem e a funcionalidade que a plataforma oferece.

Você não precisa usar um estilo de aplicativo específico, como microsserviços, para projetar um aplicativo para cargas de trabalho na nuvem. No entanto, a hospedagem em nuvem torna muitos padrões de design de aplicativos mais acessíveis do que soluções de hospedagem que não fornecem nativamente uma seleção diversificada de opções de aplicativos e plataformas de dados, recursos de escala, controles de segurança e opções de mensagens. As cargas de trabalho na nuvem se beneficiam de aplicativos que são decompostos em serviços menores e descentralizados por design. Esses serviços se comunicam por meio de APIs ou usando mensagens assíncronas ou eventos. Os aplicativos são dimensionados horizontalmente, adicionando novas instâncias quando a demanda aumenta.

Os aplicativos que usam as plataformas de hospedagem de aplicativos da nuvem, os recursos de mensagens e os serviços decompostos estão sujeitos a preocupações comuns para sistemas distribuídos. Nesses sistemas, o estado do aplicativo é distribuído e as operações são executadas em paralelo e de forma assíncrona. Os aplicativos devem ser resilientes quando ocorrem falhas. Os agentes mal-intencionados visam continuamente as aplicações. As implantações devem ser automatizadas e previsíveis. O monitoramento e a telemetria são cruciais para obter informações sobre o sistema.

As colunas a seguir listam algumas características comuns do design local e do design na nuvem.

Design local típico

  • Funcionalidade e dados monolíticos e colocalizados
  • Projetado para escala previsível ou provisionado em excesso
  • Base de dados relacional
  • Processamento sincronizado
  • Projetado para evitar falhas e mede o tempo médio entre falhas (MTBF)
  • Os recursos são provisionados por meio de funções de TI
  • Servidores Snowflake e servidores pet

Design de nuvem típico

  • Funcionalidade e dados decompostos e distribuídos
  • Projetado para dimensionamento elástico
  • Persistência poliglota usando uma combinação de tecnologias de armazenamento
  • Processamento assíncrono
  • Projetado para resistir a avarias e medir o MTBF
  • Preparado para falhas e mede o tempo médio de reparação
  • Os recursos são alocados conforme a necessidade através de infraestrutura como código
  • Infraestrutura imutável e substituível

Projetar aplicativos para o Azure

Os arquitetos de nuvem que têm experiência em hospedagem em nuvem e podem tomar decisões estratégicas de troca devem projetar aplicativos em nuvem. O Azure fornece recursos para ajudar os arquitetos a desenvolver aplicativos e orientar as equipes de desenvolvimento a implementá-los. Para obter uma boa carga de trabalho e design de aplicativos, os arquitetos precisam:

Você pode usar o Azure para hospedar e rehospedar aplicativos que não foram projetados para a nuvem. Você pode ajustar os aplicativos de carga de trabalho para usar a funcionalidade de nuvem, mas a rehospedagem de um aplicativo projetado para recursos fixos e escala não é considerada uma implantação nativa da nuvem.

Alinhe-se aos padrões de adoção da nuvem organizacional

Seu aplicativo faz parte de uma carga de trabalho que provavelmente precisa atender aos padrões organizacionais e à governança. Organizações de qualquer tamanho e maturidade na nuvem podem usar a Estrutura de Adoção de Nuvem para Azure para formalizar suas iniciativas de estratégia, prontidão, inovação, gerenciamento, governança e segurança em todo o Azure. Parte dessa abordagem é padronizar uma abordagem consistente entre cargas de trabalho, como o uso de zonas de aterrissagem do Azure. As zonas de aterrissagem do Azure fornecem governança em toda a organização e dão às equipes de carga de trabalho e arquitetos acesso democratizado a recursos para cumprir objetivos de negócios localizados. Como arquiteto que projeta aplicativos, é crucial que você entenda o ambiente macro e as expectativas para operações de carga de trabalho, como zonas de aterrissagem de aplicativos.

A estratégia de adoção do Azure da sua organização não deve afetar o estilo de arquitetura escolhido, mas pode restringir as opções de tecnologia ou os limites de segurança.

Siga o framework Well-Architected

Você pode avaliar o design e a implementação de qualquer carga de trabalho através de várias lentes. Use o Well-Architected Framework para avaliar e alinhar suas decisões com os princípios de design nestes cinco pilares principais da arquitetura:

Seguindo esses princípios e avaliando as compensações entre esses pilares de arquitetura, você pode produzir um design que atenda aos requisitos de negócios e seja suficientemente durável, sustentável, seguro e de custo otimizado para ser executado no Azure. Essas decisões devem informar sua escolha de estilo arquitetônico e ajudar a restringir suas opções de tecnologia ou limites de segurança à medida que se relacionam com as necessidades específicas da sua carga de trabalho.

Sua equipe ou organização pode ter outros princípios de design, como sustentabilidade e ética, que você pode usar para avaliar sua carga de trabalho.

Compreender estilos típicos de arquitetura

Depois de entender o ambiente organizacional em que seu aplicativo existirá e a base de um bom design de arquitetura com base no Well-Architected Framework, você precisa decidir que tipo de arquitetura criar. Pode ser uma arquitetura de microsserviços, um aplicativo de N camadas mais tradicional ou uma solução de big data. Esses estilos arquitetônicos são distintos e projetados para diferentes resultados. Ao avaliar estilos de arquitetura, você também deve selecionar modelos de armazenamento de dados para abordar o gerenciamento de estado.

Avalie os vários estilos de arquitetura e modelos de armazenamento de dados para entender os benefícios e desafios que cada opção apresenta.

Cargas de trabalho no Well-Architected Framework

O artigo Well-Architected cargas de trabalho do Framework descreve diferentes classificações ou tipos de carga de trabalho. Você pode encontrar artigos sobre cargas de trabalho de missão crítica, cargas de trabalho de IA e aprendizado de máquina ou cargas de trabalho de software como serviço. Estes artigos específicos da carga de trabalho aplicam os cinco pilares fundamentais do Quadro Well-Architected ao domínio específico. Se seu aplicativo fizer parte de uma carga de trabalho alinhada a um desses padrões documentados, revise as respetivas orientações para ajudá-lo a abordar seu design seguindo um conjunto de princípios e recomendações de design específicos da carga de trabalho em áreas de design comuns, como plataforma de aplicativo, plataforma de dados e rede. Alguns tipos de carga de trabalho podem se beneficiar da seleção de um estilo de arquitetura ou modelo de armazenamento de dados específico.

Melhores práticas

Para obter mais informações sobre várias considerações de design, incluindo design de API, dimensionamento automático, particionamento de dados e cache, consulte Práticas recomendadas em aplicativos de nuvem. Analise essas considerações e aplique as práticas recomendadas apropriadas para seu aplicativo.

Use padrões de projeto para resolver problemas comuns e introduzir trocas estratégicas.

Seu aplicativo tem requisitos de negócios, metas e medições de sucesso específicos. Você deve decompor esses requisitos funcionais e não funcionais em atividades discretas que trabalhem juntas para alcançar uma solução que atenda às suas expectativas e às de seus clientes. Essas atividades normalmente seguem padrões que a indústria de software estabeleceu. Os padrões de design de software são abordagens nomeadas e repetíveis que você pode aplicar ao processamento ou armazenamento de dados. Esses padrões são comprovados para resolver problemas específicos com compensações conhecidas.

O catálogo de padrões de design de nuvem do Azure aborda desafios específicos em sistemas distribuídos.

Faça escolhas tecnológicas informadas

Depois de determinar o tipo de arquitetura que deseja criar e os padrões de design que espera usar, você pode escolher os principais componentes de tecnologia para a arquitetura. As seguintes opções tecnológicas são essenciais:

Você provavelmente fará outras escolhas de tecnologia ao longo do caminho, mas computação, dados, mensagens e IA são fundamentais para a maioria dos aplicativos em nuvem e determinam muitos aspetos do seu design.

Avaliar arquiteturas de referência

O Centro de Arquitetura do Azure abriga artigos sobre ideias de solução, cargas de trabalho de exemplo e arquiteturas de referência. Esses artigos geralmente listam os componentes e considerações comuns que se alinham com o Well-Architected Framework. Alguns desses artigos incluem uma solução implantável hospedada no GitHub. Embora seja improvável que qualquer um desses cenários seja exatamente o que você está construindo, eles são um bom ponto de partida. Pode adaptar as orientações às suas necessidades específicas.

Navegue pelo catálogo de arquiteturas no Centro de Arquitetura do Azure.

Rever os guias específicos do serviço

Depois de selecionar a tecnologia principal e consultar as arquiteturas de referência, revise a documentação e as orientações específicas para os serviços em sua arquitetura. Use os seguintes recursos para orientação específica do serviço:

  • Guias de serviço doWell-Architected Framework: O Well-Architected Framework fornece artigos sobre muitos serviços do Azure. Os artigos aplicam os cinco pilares da arquitetura a cada serviço.

  • Guias de confiabilidade do Azure: O hub de confiabilidade do Azure tem artigos detalhados que abordam especificamente as características de confiabilidade de muitos serviços do Azure. Estes artigos documentam alguns dos tópicos de confiabilidade mais críticos, como suporte à zona de disponibilidade e comportamento esperado durante diferentes tipos de interrupções.

Vem de outra nuvem?

Se você está familiarizado com como projetar aplicativos em outro provedor de nuvem, muitos dos mesmos fundamentos se aplicam. Por exemplo, estilos de arquitetura e padrões de design de nuvem são conceitualmente agnósticos em relação à nuvem. Para obter mais informações, consulte os seguintes artigos do guia de arquitetura e mapeamento de serviços:

Próximo passo