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 estão alinhadas aos requisitos de negócios e às características específicas e à funcionalidade fornecida da plataforma de hospedagem em nuvem.

A criação de aplicativos para cargas de trabalho na nuvem não requer nenhum estilo de aplicativo específico, como microsserviços. 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 oferecem nativamente uma seleção diversificada de opções de plataforma de aplicativos & dados, recursos de escala, controles de segurança e opções de mensagens. Para esse fim, 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 conforme a demanda.

Os aplicativos que aproveitam as plataformas de hospedagem de aplicativos da nuvem, os recursos de mensagens e os serviços decompostos estão sujeitos a preocupações comuns ao sistema distribuído. O estado da aplicação é distribuído. As operações são realizadas 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 fundamentais para obter informações sobre o sistema.

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
  • Projeto para evitar falhas (MTBF)
  • Recursos provisionados por meio de funções de TI
  • Flocos de neve e servidores para animais de estimação

Design de nuvem típico

  • Funcionalidade e dados decompostos e distribuídos
  • Projetado para dimensionamento elástico
  • Persistência poliglota (combinação de tecnologias de armazenamento)
  • Processamento assíncrono
  • Projeto para resistir a avarias (MTBF) e projeto para falhas (MTTR)
  • Recursos provisionados por meio de infraestrutura como código, conforme necessário
  • Infraestrutura imutável e substituível

Projetando aplicativos para o Azure

Os aplicativos devem ser projetados por arquitetos de nuvem para aproveitar especificamente a hospedagem em nuvem e tomar decisões estratégicas de compensação. O Azure oferece recursos especificamente para ajudar os arquitetos a obter um bom design e orientar as equipes de desenvolvimento em sua implementação. Para obter carga de trabalho e design de aplicativos, os arquitetos precisam:

O Azure pode ser usado para hospedar e rehospedar aplicativos que não foram projetados especificamente para a nuvem. Embora os aplicativos de carga de trabalho possam ser ajustados para aproveitar a funcionalidade da nuvem, a rehospedagem de um aplicativo projetado para recursos fixos e escala não é considerada 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 está sujeita a padrões organizacionais e governança. Organizações de qualquer tamanho e maturidade na nuvem podem usar o Cloud Adoption Framework for Azure para formalizar sua estratégia de adoção, 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 usar zonas de aterrissagem do Azure. As zonas de aterrissagem do Azure oferecem uma combinação de governança organizacional ampla, permitindo que equipes de carga de trabalho e arquitetos democratizem o acesso a recursos para cumprir objetivos de negócios localizados. Como arquiteto projetando aplicativos, é vital que você entenda o ambiente macro e as expectativas sob as quais a carga de trabalho operará, como zonas de aterrissagem de aplicativos.

A estratégia de adoção do Azure pela sua organização não deve afetar a sua escolha de estilo de arquitetura, mas pode colocar restrições nas escolhas tecnológicas ou nos limites de segurança.

Design seguindo o Azure Well-Architected Framework

Todas as cargas de trabalho podem ser avaliadas na sua conceção e implementação através de várias lentes. O Azure fornece o Azure Well-Architected Framework para ajudar um arquiteto de carga de trabalho a avaliar e alinhar suas decisões para projetar princípios em cinco pilares principais da arquitetura.

De um modo geral, seguir esses princípios e avaliar as compensações entre esses pilares de arquitetura produz um design que atende aos requisitos de negócios e é suficientemente durável, sustentável, seguro e com custo otimizado para execução no Azure. Essas decisões devem afetar sua escolha de estilo arquitetônico e colocar restrições nas escolhas de tecnologia ou limites de segurança em relação às necessidades específicas da sua carga de trabalho.

Sua equipe ou organização também pode ter outros princípios de design a partir dos quais sua carga de trabalho pode ser avaliada, como sustentabilidade e ética.

Compreender estilos típicos de arquitetura

Uma vez que você tenha uma compreensão do ambiente organizacional em que seu aplicativo existirá e tenha a base geral de um bom design de arquitetura do Azure Well-Architected Framework, normalmente o primeiro ponto de decisão é qual tipo de arquitetura você está construindo? Pode ser uma arquitetura de microsserviços, um aplicativo de N camadas mais tradicional ou uma solução de big data. Estes são estilos arquitetônicos distintos adequados para resultados diferentes. Ao avaliar estilos de arquitetura, você também está selecionando modelos de armazenamento de dados para lidar com o gerenciamento de estado. Há benefícios e desafios nessas decisões.

Avalie os vários estilos de arquitetura e os modelos de armazenamento de dados .

Cargas de trabalho no Azure Well-Architected Framework

O Well-Architected Framework tem uma seção dedicada a classificações ou tipos de carga de trabalho distintos, chamada cargas de trabalho do Azure Well-Architected Framework. Você pode encontrar artigos que abrangem missão crítica , inteligência artificial e aprendizado de máquina , ou cargas de trabalho de software como serviço (SaaS) nesta seção. Estes artigos dedicados a cargas de trabalho específicas utilizam os cinco pilares fundamentais do Well-Architected Framework e aplicam-nos 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, rede e muito mais. 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

Analise os artigos sobre Práticas recomendadas em aplicativos de nuvem para saber mais sobre várias considerações de design, incluindo design de API, escalonamento automático, particionamento de dados, cache, entre outros. Revise-os 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 medidas de sucesso exclusivos. Um arquiteto irá decompor esses requisitos funcionais e não funcionais em atividades discretas que trabalham juntas para alcançar uma solução com a qual você e seus usuários estejam satisfeitos. Essas atividades são muitas vezes comuns o suficiente para que tenham estabelecido padrões usados em toda a indústria de software. Esses padrões de design de software são abordagens nomeadas e repetíveis aplicadas ao processamento ou armazenamento de dados que comprovadamente resolvem 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 bem informadas

Depois de determinar o tipo de arquitetura que você está construindo e os padrões de design que você espera que sejam usados, você pode começar a escolher as principais peças de tecnologia para a arquitetura. As seguintes opções tecnológicas são críticas:

Você provavelmente fará outras escolhas de tecnologia ao longo do caminho, mas esses quatro elementos (computação, dados, mensagens e IA) são centrais 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 é o lar de ideias de solução, cargas de trabalho de exemplo e arquiteturas de referência. Esses artigos geralmente incluem a lista de componentes e considerações comuns alinhados ao Azure 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 podem ser um bom ponto de partida para você adaptar a orientação às suas necessidades específicas.

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

Rever os guias específicos do serviço

Uma vez selecionada a tecnologia central e consultadas as arquiteturas de referência, é importante acessar a documentação e a orientação específicas para os serviços em sua arquitetura. Use os recursos a seguir para obter orientações específicas do serviço.

  • Guias de serviço do Azure Well-Architected Framework: O Well-Architected Framework tem artigos que abrangem muitos dos serviços oferecidos no Azure, onde os cinco pilares da arquitetura são aplicados especificamente a esse serviço.

    Localize e leia o guia de serviço para todos os recursos que estão sendo considerados como parte do design do seu aplicativo.

  • 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 disponibilidade, suporte à zona e comportamento esperado durante diferentes tipos de interrupções.

    Encontre e leia o guia de confiabilidade para todos os recursos que estão sendo considerados como parte do design do seu aplicativo.

Vem de outra nuvem?

Se você está familiarizado com o design de aplicativos em outro provedor de nuvem, muitos dos mesmos fundamentos se traduzem. Por exemplo, estilos de arquitetura e padrões de design de nuvem são conceitualmente agnósticos em relação à nuvem. Explore os artigos relevantes do guia de mapeamento de serviços e arquitetura.

Próximo passo