Conceitos básicos 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 nativas da nuvem. Um aplicativo de 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 na nuvem.
A criação de aplicativos para cargas de trabalho de 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 dados & aplicativos, recursos de dimensionamento, controles de segurança e opções de mensagens. Para isso, as cargas de trabalho de 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 o serviço de mensagens ou eventos assíncronos. Os aplicativos são dimensionadaos horizontalmente, adicionando novas instâncias de acordo com a demanda.
Aplicativos que aproveitam as plataformas de hospedagem de aplicativos da nuvem, os recursos de mensagens e os serviços em decomposição estão sujeitos a preocupações comuns ao sistema distribuído. O estado do aplicativo é distribuído. As operações são executadas de forma paralela e assíncrona. Os aplicativos devem ser resilientes quando ocorrem falhas. Atores mal-intencionados visam a aplicativos continuamente. As implantações devem ser automatizadas e previsíveis. Monitoramento e telemetria são essenciais para obter informações sobre o sistema.
Design típico na infraestrutura local
- Funcionalidade e dados monolíticos e colocados
- Projetado para escala previsível ou superprovisionada
- Banco de dados relacional
- Processamento sincronizado
- Design para evitar falhas (MTBF)
- Recursos provisionados por meio de funções de TI
- Snowflake e servidores "pet"
Design de nuvem típico
- Funcionalidade e dados decompostos e distribuídos
- Criado para dimensionamento elástico
- Persistência poliglota
- Processamento assíncrono
- Design para resistir a problemas de funcionamento (MTBF) e design para falhas (MTTR)
- Recursos provisionados por meio da infraestrutura como código, conforme necessário
- Infraestrutura imutável e substituível
Criando aplicativos para o Azure
Os aplicativos devem ser projetados por arquitetos de nuvem para aproveitar especificamente a hospedagem na nuvem e tomar decisões estratégicas de compensação. O Azure oferece recursos especificamente para ajudar os arquitetos a alcançar um bom design e guiar as equipes de desenvolvimento em sua implementação. Para projetar cargas de trabalho e aplicativos, os arquitetos precisam:
- Alinhar aos padrões de adoção da nuvem organizacional
- Design seguindo o Azure Well-Architected Framework
- Entenda os estilos típicos de arquitetura , cargas de trabalho e práticas recomendadas
- Usar padrões de design para resolver problemas comuns e introduzir compensações estratégicas
- fazer escolhas de tecnologia bem informadas
- Avaliar arquiteturas de referência
- Revisar guias específicos do serviço
O Azure pode ser usado para hospedar e hospedar novamente aplicativos que não foram projetados especificamente para a nuvem. Embora os aplicativos de workload possam ser ajustados para aproveitar a funcionalidade da nuvem, a hospedagem de um aplicativo projetado para recursos e escala fixos não é considerada uma implantação nativa da nuvem.
Alinhar-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 de nuvem podem usar o Cloud Adoption Framework para 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 é a padronização de uma abordagem consistente entre os workloads, como o uso de zona de destino do Azure. As zonas de destino do Azure oferecem uma combinação de governança de toda a organização, permitindo que equipes de carga de trabalho e arquitetos democratizem o acesso aos recursos para atender aos objetivos de negócios localizados. Como arquiteto que projeta aplicativos, é vital que você entenda o macroambiente e as expectativas em que 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 sua escolha de estilo arquitetônico, mas pode colocar restrições em opções de tecnologia ou limites de segurança.
Design seguindo o Azure Well-Architected Framework
Todas as cargas de trabalho podem ser avaliadas em seu design e implementação por meio 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 aos princípios de design em cinco pilares de arquitetura principais.
De modo geral, seguir esses princípios e avaliar as compensações entre esses pilares arquitetônicos produz um design que atenda aos requisitos de negócios e seja suficientemente durável, mantenedí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 em opções de tecnologia ou limites de segurança no que diz respeito às necessidades de sua carga de trabalho específica.
Sua equipe ou organização também pode ter outros princípios de design a partir dos quais seu workload pode ser avaliado, como sustentabilidade e ética.
Entender estilos típicos de arquitetura
Depois de entender o ambiente organizacional em que seu aplicativo existirá e você tiver a base geral do bom design de arquitetura do Azure Well-Architected Framework, normalmente o primeiro ponto de decisão é qual tipo de arquitetura que você está criando? Pode ser uma arquitetura de microsserviços, um aplicativo de N camadas mais tradicional ou uma solução de big data. Esses são estilos arquitetônicos distintos adequados para resultados de diferença. 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 para essas decisões.
Avalie os vários estilos de arquitetura de 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 workloads distintos, chamados workloads do Azure Well-Architected Framework. Você pode encontrar artigos que abrangem workloads de missão crítica, inteligência artificial e aprendizado de máquina ou software como serviço (SaaS) nesta seção. Esses artigos específicos de carga de trabalho utilizam os cinco pilares principais do Well-Architected Framework e os aplicam naquele domínio. Se o aplicativo fizer parte de uma carga de trabalho que se alinha a um desses padrões documentados, examine as respectivas diretrizes 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 aplicativos, plataforma de dados, rede e muito mais. Alguns tipos de carga de trabalho podem se beneficiar da seleção de um modelo de armazenamento de dados ou estilo de arquitetura específico.
Práticas recomendadas
Revise os artigos de Práticas Recomendadas em Aplicações na Nuvem para aprender sobre diversas considerações de design, incluindo design de API, dimensionamento automático, particionamento de dados, cache, entre outros. Examine-os e aplique as práticas recomendadas apropriadas para seu aplicativo.
Usar padrões de projeto para resolver problemas comuns e introduzir trocas estratégicas
Seu aplicativo tem requisitos de negócios exclusivos, metas e medidas de sucesso. Um arquiteto decomporá esses requisitos funcionais e não funcionais em atividades discretas que funcionam em conjunto para alcançar uma solução com a qual você e seus usuários estão satisfeitos. Essas atividades geralmente são comuns o suficiente para estabelecerem padrões usados em todo o setor de software. Esses padrões de design de software são abordagens nomeadas e repetíveis aplicadas ao processamento ou armazenamento de dados que são comprovadas para resolver problemas específicos com compensações conhecidas.
O catálogo do Azure de padrões de design de nuvem aborda desafios específicos em sistemas distribuídos.
Fazer escolhas de tecnologia bem informadas
Depois de determinar o tipo de arquitetura que você está criando 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 de tecnologia são críticas:
Compute refere-se ao modelo de hospedagem para os recursos de computação (plataforma de aplicações) em que seus aplicativos são executados. Para obter mais informações, confira Escolher um serviço de computação.
- O Azure também oferece diretrizes especializadas para algumas plataformas de aplicativo específicas, como Escolher um serviço de contêiner do Azure e opções híbridas do Azure.
Armazenamentos de dados incluem bancos de dados, mas também armazenamento para arquivos, caches, logs e qualquer outra coisa que um aplicativo possa persistir no armazenamento. Para obter mais informações, consulte Escolher um armazenamento de dados no Azure e Examinar as opções de armazenamento.
As tecnologias de mensagens permitem a transmissão de mensagens assíncronas entre componentes do sistema. Para obter mais informações, confira Escolher um serviço de mensagens.
Inteligência artificial (IA) as tecnologias resolvem problemas que seriam complexos de implementar computacionalmente no código de um aplicativo tradicional. Para ajudar a orientar essas opções, consulte Escolha uma tecnologia de serviços de IA do Azure.
Você provavelmente fará outras opções de tecnologia ao longo do caminho, mas esses quatro elementos (computação, dados, mensagens e IA) são centrais para a maioria dos aplicativos de nuvem e determinam muitos aspectos do seu design.
Avaliar arquiteturas de referência
O Centro de Arquitetura do Azure abriga ideias de solução, cargas de trabalho de exemplo e arquiteturas de referência. Esses artigos normalmente incluem a lista de componentes comuns e considerações alinhadas 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á criando, eles podem ser um bom ponto de partida para você adaptar as diretrizes às suas necessidades específicas.
Navegue pelo catálogo de arquiteturas aqui no Centro de Arquitetura do Azure.
Revisar guias específicos do serviço
Depois que a tecnologia principal é selecionada e as arquiteturas de referência são consultadas, é importante acessar a documentação e as diretrizes específicas para os serviços em sua arquitetura. Use os recursos a seguir para diretrizes 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, nos quais os cinco pilares da arquitetura são aplicados especificamente a esse serviço.
Localizar e ler o guia de serviço para todos os recursos que estão sendo considerados como parte do design do 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. Esses 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.
Localizar e ler o guia de confiabilidade para todos os recursos que estão sendo considerados como parte do design do aplicativo.
Vindo de outra nuvem?
Se você estiver familiarizado com a criação de aplicativos em outro provedor de nuvem, muitos dos mesmos conceitos básicos se aplicam. Por exemplo, os estilos de arquitetura e os padrões de design de nuvem são conceitualmente independentes de nuvem. Navegue pelos artigos relevantes do guia de mapeamento de serviços e arquitetura.