Arquitetura de referência do Azure Spring Apps
Nota
O Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, verá o nome antigo em alguns locais durante algum tempo enquanto trabalhamos para atualizar recursos, como capturas de ecrã, vídeos e diagramas.
Este artigo aplica-se a: ✔️ Standard ✔️ Enterprise
Esta arquitetura de referência é uma base que utiliza um design de hub e spoke empresarial típico para a utilização do Azure Spring Apps. Na estrutura, o Azure Spring Apps é implementado num único spoke que depende de serviços partilhados alojados no hub. A arquitetura é criada com componentes para alcançar os princípios no Microsoft Azure Well-Architected Framework.
Existem dois tipos de Azure Spring Apps: plano Standard e Plano Enterprise.
O plano Standard do Azure Spring Apps é composto pelo Spring Cloud Config Server, o Spring Cloud Service Registry e o serviço de compilação kpack.
O plano Azure Spring Apps Enterprise é composto pelo VMware Tanzu® Build Service™, Pelo Serviço de Configuração de Aplicações para VMware Tanzu®, pelo Registo do Serviço VMware Tanzu®, pelo Spring Cloud Gateway para VMware Tanzu® e pelo portal da API para VMware Tanzu®.
Para uma implementação desta arquitetura, veja Arquitetura de Referência do Azure Spring Apps no GitHub.
As opções de implementação para esta arquitetura incluem o Azure Resource Manager (ARM), Terraform, CLI do Azure e Bicep. Os artefactos neste repositório fornecem uma base que pode personalizar para o seu ambiente. Pode agrupar recursos como Azure Firewall ou Gateway de Aplicação em diferentes grupos de recursos ou subscrições. Este agrupamento ajuda a manter diferentes funções separadas, como a infraestrutura de TI, a segurança, as equipas de aplicações empresariais, etc.
Planear o espaço de endereços
O Azure Spring Apps necessita de duas sub-redes dedicadas:
- Runtime do serviço
- Aplicações Spring Boot
Cada uma destas sub-redes requer um cluster dedicado do Azure Spring Apps. Vários clusters não podem partilhar as mesmas sub-redes. O tamanho mínimo de cada sub-rede é /28. O número de instâncias de aplicações que o Azure Spring Apps pode suportar varia consoante o tamanho da sub-rede. Pode encontrar os requisitos de rede virtual detalhados na secção Requisitos de rede virtual de Implementar o Azure Spring Apps numa rede virtual.
Aviso
O tamanho da sub-rede selecionada não se pode sobrepor ao espaço de endereços de rede virtual existente e não deve sobrepor-se a intervalos de endereços de sub-rede no local ou em modo de peering.
Casos de utilização
Utilizações típicas desta arquitetura:
- Aplicações privadas: aplicações internas implementadas em ambientes de cloud híbrida
- Aplicações públicas: aplicações destinadas externamente
Estes casos de utilização são semelhantes, exceto as regras de segurança e de tráfego de rede. Esta arquitetura foi concebida para suportar as nuances de cada uma.
Aplicações privadas
A lista seguinte descreve os requisitos de infraestrutura para aplicações privadas. Estes requisitos são típicos em ambientes altamente regulados.
- Uma sub-rede só tem de ter uma instância do Azure Spring Apps.
- Deve ser imposta a adesão a, pelo menos, uma Referência de Segurança.
- Os registos do Serviço de Nomes de Domínio (DNS) do anfitrião da aplicação devem ser armazenados no Azure DNS Privado.
- As dependências do serviço do Azure devem comunicar através de Pontos Finais de Serviço ou Private Link.
- Os dados inativos devem ser encriptados.
- Os dados em trânsito devem ser encriptados.
- Os pipelines de implementação do DevOps podem ser utilizados (por exemplo, o Azure DevOps) e requerem conectividade de rede ao Azure Spring Apps.
- O tráfego de saída deve ser percorrido através de uma Aplicação Virtual de Rede (NVA) central (por exemplo, Azure Firewall).
- Se o Servidor de Configuração do Azure Spring Apps for utilizado para carregar propriedades de configuração de um repositório, o repositório tem de ser privado.
- A abordagem de segurança Confiança Zero da Microsoft requer que segredos, certificados e credenciais sejam armazenados num cofre seguro. O serviço recomendado é o Azure Key Vault.
- A resolução de nomes dos anfitriões no local e na Cloud deve ser bidirecional.
- Nenhuma saída direta para a Internet pública, exceto o tráfego do plano de controlo.
- Os Grupos de Recursos geridos pela implementação do Azure Spring Apps não podem ser modificados.
- As sub-redes geridas pela implementação do Azure Spring Apps não podem ser modificadas.
A lista seguinte mostra os componentes que compõem a estrutura:
- Rede no local
- Serviço de Nomes de Domínio (DNS)
- Gateway
- Subscrição do Hub
- Sub-rede do Gateway de Aplicação
- Sub-rede do Azure Firewall
- Sub-rede de Serviços Partilhados
- Subscrição ligada
- Sub-rede do Azure Bastion
- Rede Virtual Peer
A lista seguinte descreve os serviços do Azure nesta arquitetura de referência:
Azure Key Vault: um serviço de gestão de credenciais com suporte de hardware que tem uma integração sólida com os serviços de identidade da Microsoft e os recursos de computação.
Azure Monitor: um conjunto abrangente de serviços de monitorização para aplicações que são implementadas no Azure e no local.
Pipelines do Azure: um serviço de Integração Contínua/Desenvolvimento Contínuo (CI/CD) totalmente destacado que pode implementar automaticamente aplicações do Spring Boot atualizadas no Azure Spring Apps.
Microsoft Defender para a Cloud: um sistema unificado de gestão de segurança e proteção contra ameaças para cargas de trabalho no local, em várias clouds e no Azure.
Azure Spring Apps: um serviço gerido concebido e otimizado especificamente para aplicações Spring Boot baseadas em Java e . Aplicações Steeltoe baseadas em NET.
Os diagramas seguintes representam um design de hub-and-spoke bem arquitetado que aborda os requisitos acima:
Aplicações públicas
A lista seguinte descreve os requisitos de infraestrutura para aplicações públicas. Estes requisitos são típicos em ambientes altamente regulados.
- Uma sub-rede só tem de ter uma instância do Azure Spring Apps.
- Deve ser imposta a adesão a, pelo menos, uma Referência de Segurança.
- Os registos do Serviço de Nomes de Domínio (DNS) do anfitrião da aplicação devem ser armazenados no Azure DNS Privado.
- O Azure DDoS Protection deve estar ativado.
- As dependências do serviço do Azure devem comunicar através de Pontos Finais de Serviço ou Private Link.
- Os dados inativos devem ser encriptados.
- Os dados em trânsito devem ser encriptados.
- Os pipelines de implementação do DevOps podem ser utilizados (por exemplo, o Azure DevOps) e requerem conectividade de rede ao Azure Spring Apps.
- O tráfego de saída deve ser percorrido através de uma Aplicação Virtual de Rede (NVA) central (por exemplo, Azure Firewall).
- O tráfego de entrada deve ser gerido pelo menos Gateway de Aplicação ou pelo Azure Front Door.
- Os endereços encaminháveis da Internet devem ser armazenados no DNS Público do Azure.
- A abordagem de segurança Confiança Zero da Microsoft requer que segredos, certificados e credenciais sejam armazenados num cofre seguro. O serviço recomendado é o Azure Key Vault.
- A resolução de nomes dos anfitriões no local e na Cloud deve ser bidirecional.
- Nenhuma saída direta para a Internet pública, exceto o tráfego do plano de controlo.
- Os Grupos de Recursos geridos pela implementação do Azure Spring Apps não podem ser modificados.
- As sub-redes geridas pela implementação do Azure Spring Apps não podem ser modificadas.
A lista seguinte mostra os componentes que compõem a estrutura:
- Rede no local
- Serviço de Nomes de Domínio (DNS)
- Gateway
- Subscrição do Hub
- Sub-rede Gateway de Aplicação
- Sub-rede do Azure Firewall
- Sub-rede dos Serviços Partilhados
- Subscrição ligada
- Sub-rede do Azure Bastion
- Rede Virtual Peer
A lista seguinte descreve os serviços do Azure nesta arquitetura de referência:
Aplicação Azure Firewall: uma funcionalidade de Gateway de Aplicação do Azure que fornece proteção centralizada de aplicações contra exploits e vulnerabilidades comuns.
Gateway de Aplicação do Azure: um balanceador de carga responsável pelo tráfego da aplicação com a descarga de Transport Layer Security (TLS) a funcionar na camada 7.
O Azure Key Vault: um serviço de gestão de credenciais com suporte para hardware que tem uma integração apertada com serviços de identidade da Microsoft e recursos de computação.
Azure Monitor: um conjunto abrangente de serviços de monitorização para aplicações que são implementadas no Azure e no local.
Pipelines do Azure: um serviço de Integração Contínua/Desenvolvimento Contínuo (CI/CD) totalmente em destaque que pode implementar automaticamente aplicações do Spring Boot atualizadas no Azure Spring Apps.
Microsoft Defender para a Cloud: um sistema unificado de proteção contra ameaças e gestão de segurança para cargas de trabalho no local, em várias clouds e no Azure.
Azure Spring Apps: um serviço gerido concebido e otimizado especificamente para aplicações Spring Boot baseadas em Java e . Aplicações Steeltoe baseadas em NET.
Os diagramas seguintes representam um design de hub e spoke bem arquitetado que aborda os requisitos acima. Apenas a rede virtual-hub comunica com a Internet:
Conectividade no local do Azure Spring Apps
As aplicações no Azure Spring Apps podem comunicar com vários recursos do Azure, no local e externos. Ao utilizar a estrutura hub-and-spoke, as aplicações podem encaminhar o tráfego externamente ou para a rede no local com a Rede Privada Virtual (VPN) ou a Via Rápida ou a Rede Privada Virtual (VPN).
Considerações do Azure Well-Architected Framework
O Azure Well-Architected Framework é um conjunto de princípios orientadores a seguir para estabelecer uma base de infraestrutura forte. A arquitetura contém as seguintes categorias: otimização de custos, excelência operacional, eficiência de desempenho, fiabilidade e segurança.
Otimização de custos
Devido à natureza do design distribuído do sistema, a expansão da infraestrutura é uma realidade. Esta realidade resulta em custos inesperados e incontroláveis. O Azure Spring Apps é criado com componentes que são dimensionados para que possa satisfazer a procura e otimizar os custos. O núcleo desta arquitetura é o Azure Kubernetes Service (AKS). O serviço foi concebido para reduzir a complexidade e a sobrecarga operacional da gestão do Kubernetes, que inclui eficiências no custo operacional do cluster.
Pode implementar diferentes aplicações e tipos de aplicações numa única instância do Azure Spring Apps. O serviço suporta o dimensionamento automático de aplicações acionadas por métricas ou agendas que podem melhorar a utilização e a eficiência dos custos.
Também pode utilizar o Application Insights e o Azure Monitor para reduzir os custos operacionais. Com a visibilidade fornecida pela solução de registo abrangente, pode implementar a automatização para dimensionar os componentes do sistema em tempo real. Também pode analisar dados de registo para revelar ineficiências no código da aplicação que pode abordar para melhorar o custo e o desempenho globais do sistema.
Excelência operacional
O Azure Spring Apps aborda vários aspetos de excelência operacional. Pode combinar estes aspetos para garantir que o serviço é executado de forma eficiente em ambientes de produção, conforme descrito na lista seguinte:
- Pode utilizar os Pipelines do Azure para garantir que as implementações são fiáveis e consistentes, ajudando-o a evitar erros humanos.
- Pode utilizar o Azure Monitor e o Application Insights para armazenar dados de registo e telemetria. Pode avaliar os dados de registos e métricas recolhidos para garantir o estado de funcionamento e o desempenho das suas aplicações. A Monitorização do Desempenho de Aplicações (APM) está totalmente integrada no serviço através de um agente Java. Este agente fornece visibilidade sobre todas as aplicações e dependências implementadas sem precisar de código adicional. Para obter mais informações, consulte a publicação de blogue Monitorizar sem esforço aplicações e dependências no Azure Spring Apps.
- Pode utilizar Microsoft Defender para a Cloud para garantir que as aplicações mantêm a segurança ao fornecer uma plataforma para analisar e avaliar os dados fornecidos.
- O serviço suporta vários padrões de implementação. Para obter mais informações, veja Configurar um ambiente de teste no Azure Spring Apps.
Fiabilidade
O Azure Spring Apps baseia-se no AKS. Embora o AKS forneça um nível de resiliência através do clustering, esta arquitetura de referência vai ainda mais longe ao incorporar serviços e considerações arquitetónicas para aumentar a disponibilidade da aplicação se existir uma falha no componente.
Ao basear-se num design de hub e spoke bem definido, a base desta arquitetura garante que pode implementá-lo em várias regiões. Para o caso de utilização de aplicações privadas, a arquitetura utiliza o Azure DNS Privado para garantir a disponibilidade contínua durante uma falha geográfica. Para o caso de utilização da aplicação pública, o Azure Front Door e Gateway de Aplicação do Azure garantir a disponibilidade.
Segurança
A segurança desta arquitetura é abordada pela sua adesão a controlos e referências definidos pela indústria. Neste contexto, "controlo" significa uma melhor prática concisa e bem definida, como "Utilizar o princípio de menor privilégio ao implementar o acesso ao sistema de informação. IAM-05" Os controlos nesta arquitetura são da Matriz de Controlo de Cloud (CCM) da Cloud Security Alliance (CSA) e do Microsoft Azure Foundations Benchmark (MAFB) pelo Center for Internet Security (CIS). Nos controlos aplicados, o foco está nos principais princípios de design de segurança da governação, da rede e da segurança das aplicações. É da sua responsabilidade processar os princípios de conceção de Identidade, Gestão de Acesso e Armazenamento, uma vez que estão relacionados com a sua infraestrutura de destino.
Governação
O aspeto principal da governação que esta arquitetura aborda é a segregação através do isolamento dos recursos de rede. No CCM, o DCS-08 recomenda o controlo de entrada e saída do datacenter. Para satisfazer o controlo, a arquitetura utiliza um design hub-and-spoke através de Grupos de Segurança de Rede (NSGs) para filtrar o tráfego este-oeste entre recursos. A arquitetura também filtra o tráfego entre os serviços centrais no hub e os recursos no spoke. A arquitetura utiliza uma instância de Azure Firewall para gerir o tráfego entre a Internet e os recursos dentro da arquitetura.
A lista seguinte mostra o controlo que aborda a segurança do datacenter nesta referência:
ID de Controlo CCM do CSA | Domínio de Controlo CCM do CSA |
---|---|
DCS-08 | Entrada de Pessoas Não Autorizadas de Segurança do Datacenter |
Rede
O design de rede que suporta esta arquitetura deriva do modelo de hub e spoke tradicional. Esta decisão garante que o isolamento de rede é uma construção fundamental. O controlo CCM IVS-06 recomenda que o tráfego entre redes e máquinas virtuais seja restrito e monitorizado entre ambientes fidedignos e não fidedignos. Esta arquitetura adota o controlo através da implementação dos NSGs para o tráfego este-oeste (no "datacenter" e do Azure Firewall para o tráfego norte-sul (fora do "datacenter"). O controlo CCM IPY-04 recomenda que a infraestrutura utilize protocolos de rede seguros para o intercâmbio de dados entre serviços. Todos os serviços do Azure que suportam esta arquitetura utilizam protocolos seguros padrão, como o TLS para HTTP e SQL.
A lista seguinte mostra os controlos CCM que abordam a segurança de rede nesta referência:
ID de Controlo CCM do CSA | Domínio de Controlo CCM do CSA |
---|---|
IPY-04 | Protocolos de Rede |
IVS-06 | Segurança de Rede |
A implementação da rede é ainda protegida ao definir controlos do MAFB. Os controlos garantem que o tráfego para o ambiente é restringido da Internet pública.
A lista seguinte mostra os controlos CIS que abordam a segurança de rede nesta referência:
ID de Controlo CIS | Descrição do controlo CIS |
---|---|
6.2 | Certifique-se de que o acesso SSH está restrito a partir da Internet. |
6.3 | Certifique-se de que nenhuma Base de Dados SQL permite a entrada 0.0.0.0/0 (QUALQUER IP). |
6.5 | Certifique-se de que Observador de Rede está "Ativado". |
6.6 | Certifique-se de que a entrada com UDP está restrita a partir da Internet. |
O Azure Spring Apps requer tráfego de gestão para a saída do Azure quando implementado num ambiente seguro. Tem de permitir as regras de rede e aplicações listadas nas Responsabilidades do cliente para executar o Azure Spring Apps numa rede virtual.
Segurança de aplicações
Este princípio de design abrange os componentes fundamentais da identidade, proteção de dados, gestão de chaves e configuração de aplicações. Por predefinição, uma aplicação implementada no Azure Spring Apps é executada com o menor privilégio necessário para funcionar. O conjunto de controlos de autorização está diretamente relacionado com a proteção de dados ao utilizar o serviço. A gestão de chaves reforça esta abordagem de segurança de aplicações em camadas.
A lista seguinte mostra os controlos CCM que abordam a gestão de chaves nesta referência:
ID de Controlo CCM do CSA | Domínio de Controlo CCM do CSA |
---|---|
EKM-01 | Direito de Encriptação e Gestão de Chaves |
EKM-02 | Geração de Chave de Gestão de Chaves e Encriptação |
EKM-03 | Proteção de Dados Confidenciais de Gestão de Chaves e Encriptação |
EKM-04 | Armazenamento e Acesso de Gestão de Chaves e Encriptação |
A partir do CCM, EKM-02 e EKM-03 recomendam políticas e procedimentos para gerir chaves e utilizar protocolos de encriptação para proteger dados confidenciais. O EKM-01 recomenda que todas as chaves criptográficas tenham proprietários identificáveis para que possam ser geridas. O EKM-04 recomenda a utilização de algoritmos padrão.
A lista seguinte mostra os controlos CIS que abordam a gestão de chaves nesta referência:
ID de Controlo CIS | Descrição do controlo CIS |
---|---|
8.1 | Certifique-se de que a data de expiração está definida em todas as chaves. |
8.2 | Certifique-se de que a data de expiração está definida em todos os segredos. |
8,4 | Certifique-se de que o cofre de chaves é recuperável. |
Os controlos CIS 8.1 e 8.2 recomendam que as datas de expiração estejam definidas para credenciais para garantir que a rotação é imposta. O controlo CIS 8.4 garante que os conteúdos do cofre de chaves podem ser restaurados para manter a continuidade do negócio.
Os aspetos da segurança da aplicação definem uma base para a utilização desta arquitetura de referência para suportar uma carga de trabalho spring no Azure.
Passos seguintes
Explore esta arquitetura de referência através das implementações arm, Terraform e CLI do Azure disponíveis no repositório arquitetura de referência do Azure Spring Apps .