Essa solução demonstra como compilar um aplicativo híbrido que tira proveito do seguinte:
- A escalabilidade da plataforma de nuvem pública do Azure.
- Os benefícios de conformidade da plataforma de nuvem privada do Azure Stack Hub.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Fluxo de dados
- Os servidores de compilação do Azure Pipelines que estão nos ambientes do Azure Stack Hub locais e na nuvem implantam a mesma versão do aplicativo em seus respectivos ambientes. O ambiente de nuvem não inclui um armazenamento de dados. Ambas as instâncias do aplicativo são configuradas para se conectar ao mesmo armazenamento de dados local.
- Os aplicativos Web são monitorados com relação à carga. Quando ocorre um aumento de tráfego significativo, um aplicativo manipula os registros DNS e os redireciona para a nuvem pública. Quando o tráfego já não estiver alto, os registros DNS serão atualizados para direcioná-lo para a nuvem privada novamente.
- Um cliente envia uma solicitação para o aplicativo. O Gerenciador de Tráfego do Azure processa a solicitação e a encaminha para um dos ambientes do aplicativo.
- Quando a carga de tráfego está normal, a solicitação do cliente é encaminhada para a instância do aplicativo hospedada no Azure Stack Hub local.
- O aplicativo local se conecta ao armazenamento de dados local na medida do necessário.
- Quando a carga de tráfego está alta, o Gerenciador de Tráfego encaminha as solicitações para a instância de nuvem do aplicativo.
- A instância de nuvem do aplicativo processa as solicitações e se conecta ao armazenamento de dados local na medida do necessário por meio de uma conexão com segurança aprimorada.
Componentes
O Serviço de Aplicativo do Azure possibilita que você crie e hospede aplicativos web, aplicativos de API RESTful e do Azure Functions.
A Rede Virtual Azure é o bloco de construção fundamental das redes privadas no Azure. A Rede Virtual possibilita que vários tipos de recursos do Azure, como máquinas virtuais (VM), se comuniquem entre si, com a internet e com redes locais, tudo isso com segurança aprimorada. A solução também demonstra o uso de componentes de rede adicionais:
- Sub-redes de aplicativo e gateway.
- Um gateway de rede local.
- Um gateway de rede virtual que atua como uma conexão de gateway de VPN entre sites.
- Um endereço IP público.
- Uma conexão VPN ponto a site.
- O DNS do Azure para hospedar domínios DNS e fornecer resolução de nomes.
O Gerenciador de Tráfego é um balanceador de carga de tráfego baseado em DNS. Você pode usá-la para controlar a distribuição do tráfego do usuários para pontos de extremidade de serviço em diferentes data centers.
O Application Insights é um serviço extensível de gerenciamento de desempenho de aplicativo para desenvolvedores web que criam e gerenciam aplicativos em diversas plataformas.
O Azure Functions possibilita que você execute seu código em um ambiente sem servidor, sem precisar primeiro criar uma VM ou publicar um aplicativo web.
O Azure Stack Hub é uma extensão do Azure que pode executar cargas de trabalho em um ambiente local fornecendo serviços do Azure nesse ambiente.
- Você pode usar o Azure Stack Hub para fornecer o mesmo modelo de aplicativo, portal de autoatendimento e APIs que o Azure fornece. A IaaS do Azure Stack Hub dá suporte a uma ampla variedade de tecnologias de código aberto para implantações consistentes de nuvem híbrida. Essa solução usa uma VM do Windows Server para hospedar o SQL Server, por exemplo.
- A solução usa o Serviço de Aplicativo do Azure no Azure Stack Hub para hospedar o aplicativo web em ambos os ambientes.
- A rede virtual do Azure Stack Hub funciona exatamente como a rede virtual do Azure. A rede usa vários dos mesmos componentes de rede, incluindo nomes de host personalizados.
O Azure DevOps é um conjunto de serviços de desenvolvedor que fornece um gerenciamento abrangente do ciclo de vida de aplicativos e da infraestrutura. O Azure DevOps inclui acompanhamento de trabalho, controle do código-fonte, build e CI/CD, gerenciamento de pacotes e soluções de teste.
O Azure Pipelines é um serviço que fornece CI/CD. Você pode usá-lo para gerenciar agentes e definições de compilação e lançamento hospedados. Seu pipeline de desenvolvimento pode usar vários repositórios de código, incluindo GitHub, Bitbucket, Dropbox, OneDrive e Azure Repos.
Alternativas
- Para aplicativos web, você pode usar o Azure Front Door. O Azure Front Door funciona na Camada 7, a camada HTTP/HTTPS. Ele usa o protocolo anycast com TCP dividido e a rede global da Microsoft para melhorar a conectividade global. Seu método de roteamento pode garantir que o Azure Front Door encaminhe suas solicitações de cliente para o back-end de aplicativo mais rápido e disponível.
- Você pode usar o Azure ExpressRoute em vez do Gateway de VPN do Azure. Você pode usar o ExpressRoute para conectar sua rede local diretamente aos recursos do Azure usando uma conexão de rede privada dedicada.
- Se o seu repositório estiver no GitHub, você pode usar o GitHub Actions em vez do Azure Pipelines.
Detalhes do cenário
Essa solução demonstra como compilar um aplicativo híbrido que abrange o Azure e o Azure Stack Hub. A solução usa uma única fonte de dados local, o que é um requisito de conformidade para algumas organizações.
Muitas empresas coletam e armazenam quantidades enormes de dados confidenciais dos clientes, Com frequência elas são impedidas de armazenar dados confidenciais na nuvem pública devido a regulamentações corporativas ou políticas governamentais, mas talvez queiram tirar proveito da escalabilidade da nuvem pública. A nuvem pública é capaz de lidar com picos de tráfego sazonais, permitindo que as organizações paguem exatamente pelo hardware necessário, quando ele for necessário.
A solução tira proveito dos benefícios de conformidade da nuvem privada combinados à escalabilidade da nuvem pública. A combinação entre a nuvem do Azure e a nuvem híbrida do Azure Stack Hub fornece uma experiência consistente para os desenvolvedores. Com isso, eles conseguem aplicar suas habilidades tanto a ambientes locais quanto de nuvem pública.
Essa solução permite que você implante um aplicativo web idêntico em uma nuvem pública e em uma nuvem privada. Você também pode acessar uma rede roteável fora da internet que estiver hospedada na nuvem privada.
Possíveis casos de uso
Essa solução é aplicável em cenários como os mencionados abaixo:
- Sua organização usa uma abordagem de DevOps ou planeja usar uma em breve.
- Você quer implementar práticas de integração contínua e entrega contínua (CI/CD) em uma implementação do Azure Stack Hub e na nuvem pública.
- Você quer consolidar o pipeline de CI/CD nos ambientes locais e de nuvem.
- Você quer desenvolver aplicativos usando serviços tanto locais quanto de nuvem.
- Você quer que as habilidades necessárias para os desenvolvedores sejam as mesmas nos aplicativos locais e na nuvem.
- Você está usando o Azure, mas tem desenvolvedores que estão trabalhando em uma nuvem local do Azure Stack Hub.
- Seus aplicativos locais enfrentam picos de demanda durante flutuações sazonais, cíclicas ou imprevisíveis.
- Você tem componentes locais e quer usar a nuvem para ampliá-los.
- Você quer ter a escalabilidade da nuvem, mas quer também que seu aplicativo seja executado no local o máximo possível.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Confiabilidade
A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.
A implantação global tem seus desafios, como uma conectividade variável e regulamentações governamentais que diferem por região. Os desenvolvedores podem criar apenas um aplicativo e implantá-lo em diversas regiões com requisitos diferentes. Implante seu aplicativo na nuvem pública do Azure e, em seguida, implante instâncias ou componentes adicionais localmente. Você pode gerenciar o tráfego entre todas as instâncias usando o Azure.
É importante pensar em como lidar com falhas de rede ou de energia. Para obter informações sobre como aumentar a resiliência, confiraResiliência e dependências, Boas práticase outras diretrizes de confiabilidade da Well-Architected Framework do Microsoft Azure.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.
Conformidade e soberania de dados. Com o Azure Stack Hub, você pode executar o mesmo serviço em vários países/regiões como faria ao usar uma nuvem pública. Implantar o mesmo aplicativo nos data centers de cada país/região permite que você cumpra os requisitos de soberania de dados. Essa funcionalidade garante que os dados pessoais sejam mantidos dentro das fronteiras de cada país/região. Confira Conformidade regulatória na Well-Architected Framework para obter mais diretrizes.
Postura de segurança do Azure Stack Hub. A segurança requer um processo de manutenção sólido e contínuo. É por essa razão que a Microsoft investiu em um mecanismo de orquestração que aplica patches e atualizações na infraestrutura inteira. Graças às parcerias com parceiros fabricantes do equipamento original (OEM) do Azure Stack Hub, a Microsoft estende a mesma postura de segurança aos componentes específicos de cada OEM, como o Host de Ciclo de Vida do Hardware e o software sendo executado nele. Essas parcerias garantem que o Azure Stack Hub tenha uma postura de segurança uniforme e sólida na infraestrutura inteira. Você, por sua vez, pode criar e proteger as cargas de trabalho do seu aplicativo.
Uso de entidades de serviço por meio do PowerShell, da CLI e do portal do Azure. Para fornecer a um script ou aplicativo o acesso a recursos, configure uma identidade para o seu aplicativo e o autentique com suas próprias credenciais. Essa identidade é conhecida como uma entidade de serviço. Você pode usar entidades de serviço para:
- Atribuir permissões à identidade do aplicativo que sejam diferentes das permissões do usuário e estejam restritas às necessidades do aplicativo.
- Usar um certificado para a autenticação quando você executar um script autônomo. Para saber mais sobre a criação da entidade de serviço e o uso de um certificado para credenciais, confira Usar uma identidade de aplicativo para acessar recursos.
Uma única solução de gerenciamento de identidades consistente. O Azure Stack Hub funciona tanto com o Microsoft Entra ID quanto com os Serviços de Federação do Active Directory (AD FS). Também funciona com a ID do Microsoft Entra em cenários conectados. Para o caso de ambientes que não têm conectividade, você pode usar o AD FS como uma solução desconectada. As entidades de serviço são usadas para permitir acesso a aplicativos que implantarão ou configurarão recursos por meio do Azure Resource Manager.
Excelência operacional
A excelência operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, confira Visão geral do pilar de excelência operacional.
Uma única abordagem de desenvolvimento consistente. Com o Azure e o Azure Stack Hub, você pode usar um conjunto consistente de ferramentas de desenvolvimento em toda a sua organização. Essa consistência facilita a implementação de CI/CD. Muitos aplicativos e serviços que são implantados no Azure ou no Azure Stack Hub são intercambiáveis e podem ser executados em qualquer um dos dois locais.
Um pipeline híbrido de CI/CD pode ajudar você a:
- Inicie uma nova compilação baseada em commits para o seu repositório de código.
- Implantar automaticamente um código recém-criado no Azure para o teste de aceitação do usuário.
- Implante automaticamente no Azure Stack Hub após seu código ser aprovado nos testes.
Confia as orientações adicionais na seção Engenharia de versão do Azure Well-Architected Framework.
Eficiência de desempenho
A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.
O Azure e o Azure Stack Hub dão suporte às necessidades de empresas distribuídas globalmente.
Nuvem híbrida fácil de gerenciar. A Microsoft fornece uma integração dos ativos locais com o Azure Stack Hub e o Azure, em uma única solução unificada. Essa integração elimina o desafio de gerenciar várias soluções pontuais e uma série de provedores de nuvem. Com a distribuição entre diversas nuvens, basta conectar o Azure Stack Hub ao Azure com intermitência de nuvem para tornar seus dados e aplicativos disponíveis no Azure.
- Elimine a necessidade de compilar e manter um local de recuperação de desastres (DR) secundário.
- Economize tempo e dinheiro eliminando o backup em fita. Armazene até 99 anos de dados de backup no Azure.
- Migre para o Azure cargas de trabalho Hyper-V, Físicas (em versão prévia) e de VMware (em versão prévia) em execução para se beneficiar da eficiência econômica e da elasticidade da nuvem.
- Execute relatórios ou análises de dados com uso intensivo de computação em uma cópia replicada do seu ativo local no Azure sem separá-los das suas cargas de trabalho de produção.
- Faça o bursting de nuvem e execute as cargas de trabalho locais no Azure com modelos de computação maiores, quando for preciso.
- Crie ambientes de desenvolvimento multicamadas. Replique dados de produção ao vivo para o seu ambiente de desenvolvimento/testes de forma a mantê-los sincronizados em tempo quase real.
Distribuição entre diversas nuvens com o Azure Stack Hub. A principal vantagem da intermitência da nuvem é a economia que você obtém. Você pagará por recursos adicionais somente quando houver uma demanda por eles. Você não precisa gastar dinheiro em uma capacidade extra desnecessária nem tentar prever flutuações e picos de demanda.
Processamento na nuvem. Você pode usar a distribuição entre nuvens para reduzir o fardo do processamento. Ao migrar os aplicativos básicos para a nuvem pública você distribui as cargas, liberando os recursos locais para os aplicativos comercialmente críticos. Você pode implantar um aplicativo na nuvem privada e torná-lo intermitente na nuvem pública conforme o necessário para atender à demanda.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Bryan Lamos | Desenvolvedor sênior de conteúdo
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Próximas etapas
- Para ter uma visão geral de uma arquitetura semelhante, assista ao vídeo Distribuir aplicativos dinamicamente entre data centers e a nuvem pública.
- Confira Considerações de design para aplicativos híbridos para saber mais sobre as boas práticas.
- Saiba mais sobre todo o portfólio de produtos e soluções do Azure Stack.
- Crie uma conta e entre no Azure DevOps para configurar sua integração contínua para compilação, testes e implantação.
- Saiba mais sobre o Dimensionamento automático, um recurso integrado dos serviços de nuvem, das VMs e dos aplicativos web. Esse recurso permite que os aplicativos apresentem um desempenho otimizado quando a demanda é alterada. Os aplicativos se ajustam para os picos de tráfego e você é notificado quando as métricas mudam, distribuindo conforme a necessidade.
- Quando estiver pronto para implantar essa solução, use o guia de implantação da solução de distribuição entre nuvens (dados locais). O guia fornece instruções passo a passo para implantar e testar a solução.