Para clientes em segmentos que são rigidamente governados e restritos pela conformidade, é importante ter um ambiente isolado e dedicado, especialmente para aplicativos de linha de negócios. Embora a segurança esteja na frente e no centro, esses aplicativos críticos também exigem a capacidade de dimensionar e executar em cenários de alta utilização de memória ou altas solicitações por segundo. Esta solução fornece um exemplo de como você pode hospedar aplicativos de linha de negócios. Você pode usar o Ambiente do Serviço de Aplicativo para garantir que a segurança e o desempenho possam ser abordados simultaneamente. Ao implantar essa solução, você terá a flexibilidade de usar os recursos existentes em sua zona de destino do Azure, que representa seus recursos na rede virtual de hub. Ou, você pode implantar essa solução como uma carga de trabalho independente.
Observação
Este artigo fornece uma arquitetura implantável que se alinha às diretrizes do Cloud Adoption Framework para o Serviço de Aplicativo nas zonas de destino do Azure.
Arquitetura
A totalidade desta imagem está no âmbito de uma subscrição e de uma zona DNS privada. Ele é indicado por um ícone de assinatura e um ícone da zona do DNS privado do Azure no canto superior esquerdo. Abaixo desses ícones, dois blocos estão lado a lado. Eles representam duas redes virtuais, com emparelhamento VNET entre elas. O bloco à esquerda representa a VNet do hub e o bloco à direita representa a VNet falada. Dentro da caixa esquerda, há três caixas menores. Cada caixa indica uma sub-rede diferente e seu grupo de segurança de rede associado. A partir do canto superior esquerdo há uma instância do Bastion do Azure dentro da sub-rede Azure Bastion e no canto superior direito é a VM jumpbox, que reside na sub-rede jumpbox. No canto inferior direito está a terceira e última caixa na rede virtual do hub, que contém o servidor do agente CI/CD que reside na sub-rede CI/CD. A caixa à direita, que representa a VNet do spoke, contém apenas uma caixa menor, a sub-rede do Ambiente do Serviço de Aplicativo que tem a instância do Ambiente do Serviço de Aplicativo v3 dentro. Uma caixa menor representa o Ambiente do Serviço de Aplicativo. O ícone do Serviço de Aplicativo está dentro dessa caixa. No centro inferior da imagem, estão os recursos compartilhados que também são implantados como parte do processo. Começando da esquerda para a direita, os recursos compartilhados incluem o Cofre de Chaves do Azure, o espaço de trabalho do Azure Log Analytics e o Azure Application Insights.
Baixe um Arquivo Visio dessa arquitetura.
Workflow
Há três fluxos com textos explicativos nessa arquitetura: Operações (laranja), Implantação (verde) e Usuário (roxo).
Operações
- Recomenda-se aos operadores ou administradores executar tarefas de administração no servidor de integração contínua/implantação contínua (CI/CD) ou no ponto de extremidade Kudu para o Ambiente do Serviço de Aplicativo. Primeiro, eles precisarão se conectar ao host do Azure Bastion.
- Usando o host Azure Bastion, o operador ou administrador pode usar o protocolo RDP (Remote Desk Protocol) para acessar o servidor jumpbox.
- A partir do servidor jumpbox, o operador ou administrador pode RDP no servidor CI/CD e executar as tarefas necessárias, como atualizações de agente, atualizações de sistema operacional e assim por diante. O operador ou administrador também pode se conectar do servidor jumpbox ao ponto de extremidade Kudu da instância do Ambiente do Serviço de Aplicativo, para executar tarefas administrativas ou para executar a solução de problemas avançada.
Implantação
- A implantação da solução é realizada através do servidor agente CI/CD. O agente de DevOps neste servidor se conectará ao Azure Pipelines quando uma nova implantação for executada.
- Os artefatos serão implantados no serviço de aplicativo conectando-se ao Ambiente do Serviço de Aplicativo por meio do emparelhamento VNet.
Usuário
- Os usuários podem se conectar ao Serviço de Aplicativo implantado pela rede da empresa. Eles podem usar o Azure ExpressRoute ou uma VPN, se necessário, e/ou sobre qualquer emparelhamento de rede virtual do Azure aplicável.
Componentes
A solução usa os serviços do Azure a seguir:
O Ambiente do Serviço de Aplicativo do Azure v3 (ASEv3) é um recurso do Serviço do Aplicativo do Azure e é um serviço de locatário único para clientes que exigem alta escala, isolamento de rede, segurança e/ou alta utilização de memória. Os aplicativos são hospedados em Planos do Serviço de Aplicativo que são criados no Ambiente do Serviço de Aplicativo v3, com opções de usar camadas diferentes em um plano de serviço Isolado V2. Em comparação com uma versão anterior do Ambiente do Serviço de Aplicativo, inúmeras melhorias foram feitas, incluindo, entre outros, dependência de rede, tempo de escala e a remoção da tarifa de selo. Essa solução usa um Ambiente do Serviço de Aplicativo v3 configurado para acesso interno.
O DNS Privado do Azure permite que você gerencie e resolva nomes de domínio em uma rede virtual sem a necessidade de implementar uma solução de DNS personalizada. Uma zona de DNS privado do Azura pode ser alinhada a uma ou mais redes virtuais por meio de links de rede virtual. Devido à natureza interna do Ambiente do Serviço de Aplicativo v3 que essa arquitetura de referência usa, uma zona de DNS privado é necessária para resolver os nomes de domínio de aplicativos hospedados no Ambiente do Serviço de Aplicativo.
O Azure Application Insights é um recurso do Azure Monitor que ajuda os desenvolvedores a detectar anomalias, diagnosticar problemas e entender padrões de uso. O Application Insights conta com monitoramento e gerenciamento do desempenho de aplicativos extensíveis para aplicativos Web dinâmicos. Há suporte para várias plataformas, como .NET, Node.js, Java e Python. Ele aceita aplicativos hospedados no Azure, no local, em um ambiente híbrido ou em outras nuvens públicas. O Application Insights foi incluído nessa arquitetura de referência para monitorar os comportamentos do aplicativo implantado.
O Azure Log Analytics é um recurso do Azure Monitor que permite editar e executar consultas de log com dados nos Logs do Azure Monitor, opcionalmente de dentro do portal do Azure. Os desenvolvedores podem executar consultas simples de um conjunto de registros ou usar o Log Analytics para executar análises avançadas. Eles podem visualizar os resultados. O Log Analytics é configurado como parte dessa arquitetura de referência para agregar todos os logs de monitoramento e obter mais análises e relatórios.
As Máquinas Virtuais do Azure são um recurso de computação escalonável sob demanda que pode ser usado para hospedar várias cargas de trabalho diferentes. Nessa arquitetura de referência, as máquinas virtuais são usadas para fornecer um servidor jumpbox de gerenciamento e fornecer um host para o agente de DevOps ou o executor do GitHub.
O Azure Key Vault é um serviço de nuvem que armazena e acessa segredos, que abrangem de chaves de API e senhas a certificados e chaves criptográficas, com segurança. Um cofre de chaves do Azure é implantado como parte da infraestrutura dessa arquitetura, para facilitar o gerenciamento de segredos para implantações de código futuras.
O Azure Bastion é uma plataforma como serviço provisionada na rede virtual do desenvolvedor. Ele fornece conectividade RDP/SSH segura para as máquinas virtuais do desenvolvedor do portal do Azure via TLS. Com o Azure Bastion, as máquinas virtuais não precisam mais de um endereço IP público para se conectar via RDP/SSH. Essa arquitetura de referência usa o Azure Bastion para acessar o agente de DevOps, o servidor do executor do GitHub ou o servidor jumpbox de gerenciamento.
Alternativas
Considere adicionar um Gateway de Aplicativo do Azure antes da instância do Serviço de Aplicativo para fornecer a funcionalidade WAF (Web Application Firewall) para proteger aplicativos Web contra explorações e vulnerabilidades comuns.
Um executor do GitHub autohospedado pode ser usado no lugar do agente auto-hospedado do Azure DevOps.
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.
- Considere seus requisitos de redundância de zona nessa implementação uma referência, bem como as capacidades de redundância de zona de quaisquer outros serviços do Azure na sua solução. O Ambiente do Serviço de Aplicativo v3 oferece suporte à redundância de zona ao espalhar instâncias para todas as três zonas na região de destino. Essa configuração só pode ser definida no momento da criação do Ambiente do Serviço de Aplicativo e pode não estar disponível em todas as regiões. Para obter mais informações, veja Suporte de zona de disponibilidade para ambiente do serviço de aplicativo. Essa implementação de referência implementa redundância de zona, mas você pode alterá-la clonando esse repositório e definindo a
zoneRedundant
propriedade comofalse
.
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.
- Empregue o uso apropriado das restrições de acesso para que o serviço de aplicativo só possa ser acessado em locais válidos. Por exemplo, se o serviço de aplicativo estiver hospedando APIs e for liderado pelo APIM, você poderá configurar uma restrição de acesso para que o serviço de aplicativo só seja acessível a partir do APIM.
- Como essa implementação de referência implanta um Ambiente do Serviço de Aplicativo em uma rede virtual (conhecida como Ambiente do Serviço de Aplicativo interno), todos os aplicativos implantados no Ambiente do Serviço de Aplicativo são isolados inerentemente pela rede, no escopo da rede virtual.
- Armazene segredos de aplicativos (credenciais de banco de dados, tokens de API e chaves privadas) no Azure Key Vault. Configure seu aplicativo do Serviço de Aplicativo para acessá-los com segurança com uma identidade gerenciada. Determine quando usar o Azure Key Vault vs Configuração de Aplicativo do Azure.
Otimização de custo
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
- Embora não haja tarifa de selo para uma instância do Ambiente do Serviço de Aplicativo v3, há uma cobrança que é cobrada quando nenhum Planos do Serviço de Aplicativo é configurado na instância Ambiente do Serviço de Aplicativo v3. Essa preço é cobrado na mesma taxa de uma única instância de uma instância do Windows I1v2, para a região na qual a instância Ambiente do Serviço de Aplicativo v3 é implantada.
- Quando configurado para ser redundante de zona, o modelo de carregamento é ajustado para levar em conta a infraestrutura subjacente implantada nessa configuração. Você pode ser responsável por instâncias adicionais, de acordo com os preços do ASEv3.
- Para Planos do Serviço de Aplicativo do Ambiente do Serviço de Aplicativo do Azure v3 (conhecidos como planos do Serviço de Aplicativo Isolado V2), use as Reservas do Azure e o plano de economia do Azure para computação com um contrato de um ou três anos e obtenha economias consideráveis nos preços pré-pagos. Para obter mais informações, confira Como os descontos de reserva se aplicam a Instâncias v2 isoladas.
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.
- Use o Application Insights ou outra solução de gerenciamento de desempenho de aplicativo para monitorar e aprender como seu aplicativo se comporta em diferentes ambientes.
- Há duas maneiras de habilitar o Application Insights. Para ambientes diferentes, colete dados de telemetria em diferentes instâncias do Application Insights.
- Se seu aplicativo tiver vários componentes separados em serviços diferentes, convém examinar seu comportamento juntos. Colete seus dados de telemetria na mesma instância do Application Insights, mas rotule-os com nomes de função de nuvem diferentes.
- Exporte os dados do Application Insights para um espaço de trabalho do Azure Log Analytics . Recomendamos que você use um único espaço de trabalho para a organização.
- Inclua painéis operacionais no design de aplicativos e recursos, para garantir que a solução possa ser suportada na produção.
- Implemente verificações de integridade para seus pontos de extremidade e use-os para investigações de integridade, verificações de dependência e testes de disponibilidade.
- Considere o uso de prefixos e sufixos com convenções bem definidas para identificar exclusivamente todos os recursos implantados. Essas convenções de nomenclatura evitam conflitos, quando você implanta soluções ao lado umas das outras, e aprimoram a agilidade e a produtividade gerais da equipe.
- Dependendo da configuração de rede, o Serviço de Aplicativo pode não estar acessível pela Internet pública e o uso de agentes hospedados públicos não funcionará para implantações. Use agentes auto-hospedados nesse cenário.
Implantar este cenário
Para começar e entender melhor as especificidades dessa implementação, revise os recursos de implementação de referência, em Guia do Usuário para Implantação de Implementação de Referência.
- Recomendamos que você clone esse repositório e modifique os recursos de implementação de referência para atender às suas necessidades e às diretrizes específicas da zona de destino da sua organização.
- Antes de implantar, verifique se a entidade de serviço usada para implantar a solução tem as permissões necessárias para criar os tipos de recursos listados acima.
- Considere o serviço de CI/CD que você usará para implantar a implementação de referência. Como essa implementação de referência é um Ambiente do Serviço de Aplicativo interno, você precisará de um agente auto-hospedado para executar os pipelines de implantação. Você tem a opção de usar um agente de DevOps ou um executor do GitHub. Consulte o guia do usuário sobre os valores de configuração específicos necessários.
- Considere as regiões nas quais você pretende realizar essa implementação de referência. Consulte a lista Regiões ASEv3 para garantir que as regiões selecionadas estejam habilitadas para implantação.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Principais autores:
- Pete Messina | Arquiteto Sênior de Soluções de Nuvem
- Nabeel Prior | Arquiteto Sênior de Soluções de Nuvem
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- Segurança no Serviço de Aplicativo do Azure
- Rede para o Serviço de Aplicativo
- Diretrizes do Cloud Adoption Framework para o Serviço de Aplicativo nas zonas de destino do Azure
Saiba mais sobre estes serviços principais:
- Ambiente do Serviço de Aplicativo do Azure v3 (ASEv3)
- Zonas DNS Privadas do Azure
- Azure Application Insights
- Azure Log Analytics
- Visão geral das Máquinas Virtuais do Azure
- Conceitos do Azure Key Vault
- Azure Bastion
Recursos relacionados
- Implantação empresarial de alta disponibilidade usando o Ambiente do Serviço de Aplicativo
- Implantação empresarial usando o Ambiente do Serviço de Aplicativo
- Implantação empresarial de alta disponibilidade usando o Ambiente do Serviço de Aplicativo
- Site de comércio eletrônico executado em um Ambiente do Serviço de Aplicativo protegido