Escala entre nuvens – dados locais

Azure Stack Hub
Máquinas Virtuais do Azure
Rede Virtual do Azure
Gateway de VPN do Azure
Serviço de aplicativo do Azure

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

Diagrama que mostra uma arquitetura para um aplicativo híbrido que abrange o Azure e o Azure Stack Hub.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. O aplicativo local se conecta ao armazenamento de dados local na medida do necessário.
  6. 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.
  7. 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:

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Próximas etapas