Tutorial: Migrar o WebSphere Liberty/Open Liberty para o Azure Kubernetes Service (AKS) com alta disponibilidade e recuperação de desastres
Este tutorial mostra uma maneira simples e eficaz de implementar alta disponibilidade e recuperação de desastres (HA/DR) para Java usando o WebSphere Liberty/Open Liberty no Serviço Kubernetes do Azure (AKS). A solução ilustra como alcançar um baixo Recovery Time Objetive (RTO) e Recovery Point Objetive (RPO) usando um aplicativo Jakarta EE simples orientado por banco de dados em execução no WebSphere Liberty/Open Liberty.
HA/DR é um tema complexo, com muitas soluções possíveis. A melhor solução depende dos seus requisitos exclusivos. Para obter outras maneiras de implementar HA/DR, consulte os recursos no final deste artigo.
Neste tutorial, irá aprender a:
- Use as práticas recomendadas otimizadas do Azure para obter alta disponibilidade e recuperação de desastres.
- Configure um grupo de failover do Banco de Dados SQL do Microsoft Azure em regiões emparelhadas.
- Configure o cluster primário do WebSphere Liberty/Open Liberty no AKS.
- Configure a recuperação de desastres para o cluster usando o Backup do Azure.
- Configure o cluster AKS secundário.
- Configure um Gerenciador de Tráfego do Azure.
- Teste o failover do primário para o secundário.
O diagrama a seguir ilustra a arquitetura que você cria:
O Azure Traffic Manager verifica a integridade de suas regiões e roteia o tráfego de acordo com a camada de aplicativo. Tanto a região primária quanto a secundária têm uma implantação completa do cluster Liberty. No entanto, apenas a região primária está atendendo ativamente às solicitações de rede dos usuários. A região secundária é passiva e é ativada para receber tráfego somente quando a região primária sofre uma interrupção do serviço. O Azure Traffic Manager usa o recurso de verificação de integridade do Gateway de Aplicativo do Azure para implementar esse roteamento condicional. O cluster primário está em execução e o cluster secundário é encerrado. O RTO de failover geográfico da camada de aplicativo depende do tempo para iniciar máquinas virtuais (VMs) e executar o cluster secundário. O RPO depende do Banco de Dados SQL do Azure porque os dados são persistentes e replicados no grupo de failover do Banco de Dados SQL do Azure.
A camada de banco de dados consiste em um grupo de failover do Banco de Dados SQL do Azure com um servidor primário e um servidor secundário. O endpoint do ouvinte de leitura/gravação sempre aponta para o servidor primário e está conectado a um cluster do WebSphere Liberty/Open Liberty em cada região. Um failover geográfico alterna todos os bancos de dados secundários do grupo para a função principal. Para o RPO e RTO de failover geográfico do Banco de Dados SQL do Azure, consulte Visão geral da continuidade de negócios com o Banco de Dados SQL do Azure.
Este tutorial foi escrito com os serviços Backup do Azure e Banco de Dados SQL do Azure porque o tutorial depende dos recursos de HA desses serviços. Outras opções de banco de dados são possíveis, mas você deve considerar os recursos de HA de qualquer banco de dados escolhido.
Pré-requisitos
- Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Certifique-se de que lhe foi atribuída a função ou as
Owner
Contributor
funções eUser Access Administrator
na subscrição. Você pode verificar a atribuição seguindo as etapas em Listar atribuições de função do Azure usando o portal do Azure. - Prepare uma máquina local com Windows, Linux ou macOS instalado.
-
Instale a CLI do Azure 2.62.0 ou superior para executar comandos da CLI do Azure.
- Inicie sessão na CLI do Azure utilizando o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de início de sessão, consulte a página Entrar no Azure com a CLI do Azure.
- Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
- Execute az version para verificar a versão instalada e as bibliotecas dependentes. Para atualizar para a versão mais recente, execute az upgrade.
- Instale e configure o Git.
- Instale uma implementação Java SE, versão 17 ou posterior - por exemplo, a compilação da Microsoft do OpenJDK.
- Instale o Maven, versão 3.9.3 ou posterior.
Configurar um grupo de failover do Banco de Dados SQL do Azure em regiões emparelhadas
Nesta seção, você cria um grupo de failover do Banco de Dados SQL do Azure em regiões emparelhadas para uso com seus clusters e aplicativo WebSphere Liberty/Open Liberty. Em uma seção posterior, configure o WebSphere Liberty/Open Liberty para armazenar seus dados de sessão nesse banco de dados. Esta prática faz referência à criação de uma tabela para persistência de sessão.
Primeiro, crie o Banco de Dados SQL do Azure primário seguindo as etapas do portal do Azure em Guia de início rápido: criar um único banco de dados - Banco de Dados SQL do Azure. Siga as etapas até, mas não incluindo, a seção "Limpar recursos". Use as instruções a seguir ao longo do artigo e retorne a este artigo depois de criar e configurar o Banco de Dados SQL do Azure.
Quando chegar à seção Criar um único banco de dados, use as seguintes etapas:
- Na etapa 4 para criar um novo grupo de recursos, salve de lado o valor Nome do grupo de recursos - por exemplo,
myResourceGroup
. - Na etapa 5 para o nome do banco de dados, salve de lado o valor Nome do banco de dados - por exemplo,
mySampleDatabase
. - Na etapa 6 para criar o servidor, use as seguintes etapas:
- Preencha um nome de servidor exclusivo - por exemplo,
sqlserverprimary-mjg032524
. - Em Local, selecione (EUA) Leste dos EUA.
- Em Método de autenticação, selecione Usar autenticação SQL.
- Salve de lado o valor de login do administrador do servidor - por exemplo,
azureuser
. - Salve de lado o valor da senha .
- Preencha um nome de servidor exclusivo - por exemplo,
- Na etapa 8, para Ambiente de carga de trabalho, selecione Desenvolvimento. Observe a descrição e considere outras opções para sua carga de trabalho.
- Na etapa 11, para Redundância de armazenamento de backup, selecione Armazenamento de backup com redundância local. Considere outras opções para seus backups. Para obter mais informações, consulte a seção Redundância de armazenamento de backup de Backups automatizados no Banco de Dados SQL do Azure.
- Na etapa 14, na configuração de regras de firewall, para Permitir que os serviços e recursos do Azure acessem este servidor, selecione Sim.
Em seguida, crie um grupo de failover do Banco de Dados SQL do Azure seguindo as etapas do portal do Azure em Configurar um grupo de failover para o Banco de Dados SQL do Azure. Você só precisa das seguintes seções: Criar grupo de failover e Testar failover planejado. Use as etapas a seguir ao longo do artigo e retorne a este artigo depois de criar e configurar o grupo de failover do Banco de Dados SQL do Azure:
Quando chegar à seção Criar grupo de failover, use as seguintes etapas:
- Na etapa 5 para criar o grupo de failover, insira e salve de lado o nome exclusivo do grupo de failover - por exemplo,
failovergroup-mjg032524
. - Na etapa 5 para configurar o servidor, selecione a opção para criar um novo servidor secundário e use as seguintes etapas:
- Insira um nome de servidor exclusivo - por exemplo,
sqlserversecondary-mjg032524
. - Introduza o mesmo administrador do servidor e palavra-passe que o servidor principal.
- Em Local, selecione (EUA) Oeste dos EUA.
- Certifique-se de que a opção Permitir que os serviços do Azure acedam ao servidor está selecionada.
- Insira um nome de servidor exclusivo - por exemplo,
- Na etapa 5 para configurar os Bancos de Dados dentro do grupo, selecione o banco de dados criado no servidor primário - por exemplo,
mySampleDatabase
.
- Na etapa 5 para criar o grupo de failover, insira e salve de lado o nome exclusivo do grupo de failover - por exemplo,
Depois de concluir todas as etapas na seção Testar failover planejado, mantenha a página do grupo de failover aberta e use-a para o teste de failover dos clusters do WebSphere Liberty/Open Liberty mais tarde.
Nota
Este artigo orienta você a criar um banco de dados único do Banco de Dados SQL do Azure com autenticação SQL para simplificar, pois a configuração de HA/DR na qual este artigo se concentra já é muito complexa. Uma prática mais segura é usar autenticação do Microsoft Entra para SQL do Azure para autenticar a conexão do servidor de banco de dados. Para obter informações sobre como configurar a conexão de banco de dados com a autenticação do Microsoft Entra, consulte Implementar um aplicativo Java com Open Liberty ou WebSphere Liberty em um cluster do Serviço Kubernetes do Azure (AKS).
Configurar o cluster primário do WebSphere Liberty/Open Liberty no AKS
Nesta seção, você cria o cluster principal do WebSphere Liberty/Open Liberty no AKS usando a oferta IBM WebSphere Liberty e Open Liberty on Azure Kubernetes Service . O cluster secundário é restaurado do cluster primário durante o failover usando o Backup do Azure posteriormente.
Implementar o cluster primário do WebSphere Liberty/Open Liberty
Use as seguintes etapas para implantar o cluster primário:
Abra a oferta IBM WebSphere Liberty e Open Liberty on Azure Kubernetes Service em seu navegador e selecione Criar. Você deve ver o painel Noções básicas da oferta.
Use as seguintes etapas para preencher o painel Noções básicas :
- Verifique se o valor mostrado para Assinatura é o mesmo que tem as funções listadas na seção de pré-requisitos.
- Você deve implantar a oferta em um grupo de recursos vazio.
No campo Grupo de recursos, selecione Criar novo e preencha um valor exclusivo para o grupo de recursos - por exemplo,
liberty-aks-eastus-mjg032524
. - Em Detalhes da instância, para Região, selecione Leste dos EUA.
- Selecione Avançar para ir para o painel AKS .
Espere um pouco. Você verá todos os campos pré-preenchidos com os padrões no painel AKS . Selecione Avançarpara ir para o painel Balanceamento de carga.
Use as seguintes etapas para preencher o painel Balanceamento de carga:
- Para Conectar ao Gateway de Aplicativo do Azure?, selecione Sim.
- Deixe os padrões para outros campos.
- Selecione Avançar para ir para o painel Operador e aplicativo .
Use as seguintes etapas para preencher o painel Operador e aplicativo:
Deixe os padrões para todos os campos.
Nota
Este tutorial implanta o Open Liberty Operator usando os padrões. Opcionalmente, é possível implementar o WebSphere Liberty Operator selecionando Yes for IBM supported?.
Selecione Rever + criar.
Aguarde até que a Execução da validação final... seja concluída com êxito e, em seguida, selecione Criar.
Depois de um tempo, você verá a página Implantação onde a Implantação está em andamento é exibida.
Nota
Se vir algum problema durante a execução da validação final..., corrija-o e tente novamente.
Dependendo das condições da rede e de outras atividades na região selecionada, a implantação pode levar até cerca de 30 minutos para ser concluída. Depois disso, você verá o texto Sua implantação foi concluída exibido na página de implantação.
Verificar a implantação do cluster
Você implantou um cluster AKS, uma instância do Azure Container Registry (ACR) e um Gateway de Aplicativo do Azure na região primária. O cluster AKS é a plataforma de computação de destino onde seu aplicativo é implantado e executado. A instância ACR armazena a imagem do aplicativo que o AKS extrai durante a implantação do aplicativo. O Gateway de Aplicativo do Azure atua como balanceador de carga para o aplicativo implantado no cluster AKS.
Use as seguintes etapas para verificar esses componentes principais antes de passar para a próxima etapa:
Retorne à página Implantação e selecione Saídas.
Copie o valor da propriedade cmdToConnectToCluster. Abra um terminal, cole o comando copiado e pressione Enter para executar. Você verá uma mensagem semelhante ao exemplo a seguir incluído na saída:
Merged "cluster3984d1-admin" as current context in <your-user>\.kube\config
Salve de lado o comando para que você possa usá-lo para se conectar ao cluster mais tarde.
Execute
kubectl get pod --all-namespaces
no terminal para listar todos os pods em execução no cluster AKS. Você deve ver uma saída semelhante ao exemplo a seguir:NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-66bc9756fd-255pk 1/1 Running 0 8m55s cert-manager cert-manager-cainjector-669c9fb694-k4q88 1/1 Running 0 8m55s cert-manager cert-manager-webhook-84967d556d-vj4lp 1/1 Running 0 8m55s kube-system azure-ip-masq-agent-dgzkt 1/1 Running 0 29m kube-system cloud-node-manager-6x7bp 1/1 Running 0 29m kube-system coredns-789789675-6b7dh 1/1 Running 0 28m kube-system coredns-789789675-n68wt 1/1 Running 0 29m kube-system coredns-autoscaler-649b947bbd-zhdbn 1/1 Running 0 29m kube-system csi-azuredisk-node-h9p7m 3/3 Running 0 29m kube-system csi-azurefile-node-jnllw 3/3 Running 0 29m kube-system ingress-appgw-deployment-69944d8fb9-v9btr 1/1 Running 5 (12m ago) 17m kube-system konnectivity-agent-94878f88c-hfqng 1/1 Running 0 29m kube-system konnectivity-agent-94878f88c-ln2vp 1/1 Running 0 29m kube-system kube-proxy-28lkg 1/1 Running 0 29m kube-system metrics-server-5fffcb8954-549xl 2/2 Running 0 28m kube-system metrics-server-5fffcb8954-fn56g 2/2 Running 0 28m open-liberty olo-controller-manager-7954d76cf8-qhmxw 1/1 Running 0 8m40s
Execute
kubectl get secret
no terminal para listar todos os segredos instalados no cluster AKS. Você deve ver um segredo na saída, como mostrado no exemplo a seguir:NAME TYPE DATA AGE secret3984d1 kubernetes.io/tls 2 24m
Esse segredo é um segredo TLS que inclui dados de certificado e chave para o tráfego TLS. Copie e salve o nome do segredo - por exemplo,
secret3984d1
você o usa na implantação do aplicativo mais tarde.Volte para a página Saídas . Copie o valor da propriedade cmdToLoginInRegistry. Cole o comando copiado no terminal e pressione Enter para executar. Você deve ver Login bem-sucedido na saída. Mantenha o terminal aberto e use-o para configuração adicional do cluster WebSphere Liberty/Open Liberty mais tarde.
Use as etapas a seguir para obter o nome e o nome DNS do endereço IP público do Gateway de Aplicativo do Azure. Você os usa para a implantação do aplicativo e a configuração do Gerenciador de Tráfego do Azure mais tarde.
- No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione Grupos de recursos nos resultados da pesquisa.
- Selecione o nome do grupo de recursos para sua região primária - por exemplo,
liberty-aks-eastus-mjg032524
. - Encontre o recurso de endereço IP público prefixado com
gwip
, em seguida, copie e salve seu nome. - Selecione o recurso Endereço IP público e, em seguida, copie e salve o nome DNS - por exemplo,
olgw3984d1.eastus.cloudapp.azure.com
.
Habilitar replicações geográficas para a instância ACR
A instância ACR foi projetada para armazenar imagens de aplicativos para clusters primários e secundários. Use as seguintes etapas para habilitar replicações geográficas para a instância ACR:
No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione Grupos de recursos nos resultados da pesquisa.
Selecione o nome do grupo de recursos para sua região primária - por exemplo,
liberty-aks-eastus-mjg032524
.Localize o recurso de registo Contentor prefixado com
acr
o e, em seguida, selecione-o para o abrir.Selecione Propriedades. Para Plano de preços, selecione Premium e, em seguida, selecione Guardar. Aguarde até à conclusão.
Selecione Replicações geográficas e, em seguida, selecione Adicionar. Em Local, selecione West US e, em seguida, selecione Criar. Aguarde até à conclusão.
Aguarde um pouco, selecione Atualizar. Repita a operação até ver que dois locais estão listados e Status está pronto.
Use as etapas a seguir para obter as credenciais de entrada do ACR. Você os usa para implantação de aplicativos mais tarde.
Selecione Teclas de acesso.
Copie e guarde separadamente os valores para o Nome de registo e o servidor de login .
Nota
Este artigo usa o comando
az acr build
para criar e enviar por push a imagem do Docker para o Registro de Contêiner, sem usarusername
epassword
do Registro de Contêiner. Ainda é possível usar nome de usuário e senha comdocker login
edocker push
. Usar nome de usuário e senha é menos seguro do que a autenticação sem senha.
Implantar um aplicativo de exemplo
Use as seguintes etapas para implementar e executar um aplicativo CRUD Java/Jakarta EE de amostra no cluster WebSphere Liberty/Open Liberty para teste de failover de recuperação de desastres mais tarde:
Baixe o exemplo usando os seguintes comandos:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git cd open-liberty-on-aks export BASE_DIR=$PWD git checkout 20240325
O aplicativo configura uma fonte de dados jdbc/JavaEECafeDB que se conecta ao Banco de Dados SQL do Azure implantado anteriormente. A fonte de dados é usada para armazenar dados de sessão HTTP, o que permite failover e balanceamento de carga em um cluster de servidores WebSphere Liberty/Open Liberty. O aplicativo de exemplo também configura um esquema de persistência para persistir dados
coffee
do aplicativo na mesma fonte de dados. Observe que a raiz de contexto do exemplo está configurada como / no arquivo server.xml .Use os seguintes comandos para definir variáveis de ambiente com os valores que você salvou anteriormente:
export DB_SERVER_NAME=<failover-group-name>.database.windows.net export DB_NAME=mySampleDatabase export DB_USER=azureuser@<failover-group-name> export DB_PASSWORD='<SQL-Server-admin-login-password>' export REGISTRY_NAME=<ACR-registry-name> export LOGIN_SERVER=<ACR-login-server> export INGRESS_TLS_SECRET=<TLS-secret-name>
Use o comando
az acr build
para criar e enviar por push a imagem do Docker para o Registro de Contêiner, conforme mostrado no exemplo a seguir:cd $BASE_DIR/java-app mvn clean install cd $BASE_DIR/java-app/target # If you deployed WebSphere Liberty Operator previously, use "Dockerfile-wlp" instead of "Dockerfile" az acr build \ --registry ${REGISTRY_NAME} \ --image javaee-cafe:v1 \ --file Dockerfile \ .
Use os seguintes comandos para implantar o aplicativo de exemplo no cluster AKS:
cd $BASE_DIR/java-app/target kubectl apply -f db-secret.yaml # If you deployed WebSphere Liberty Operator previously, use "webspherelibertyapplication-agic.yaml" instead of "openlibertyapplication-agic.yaml" kubectl apply -f openlibertyapplication-agic.yaml
Execute o seguinte comando para obter o aplicativo de exemplo implantado:
# If you deployed WebSphere Liberty Operator previously, use "WebSphereLibertyApplication" instead of "OpenLibertyApplication" kubectl get OpenLibertyApplication
Você deve ver um aplicativo READY na saída:
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 45s
Execute o seguinte comando para obter o status dos pods criados durante a implantação:
kubectl get pods
O exemplo a seguir indica que todos os pods estão em execução. Se você não vir uma saída semelhante, aguarde um pouco e repita a operação.
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-6bbb8d6f5c-2xjc4 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-4f449 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-m2wg6 1/1 Running 0 1m
Use as seguintes etapas para verificar se o aplicativo está sendo executado conforme o esperado:
Em uma nova guia do navegador, abra o nome DNS do endereço IP público do Gateway de Aplicativo do Azure que você salvou anteriormente. Use o
https
protocolo - por exemplo,https://olgw3984d1.eastus.cloudapp.azure.com
. Você deve ver a página de boas-vindas do aplicativo de exemplo.Crie um novo café com nome e preço - por exemplo, Café 1 com preço 10 - que é mantido na tabela de dados do aplicativo e na tabela de sessão do banco de dados. A interface do usuário que você vê deve ser semelhante à seguinte captura de tela:
Se a interface do usuário não for semelhante, solucione o problema e resolva o problema antes de continuar.
Configurar a recuperação de desastres para o cluster usando o Backup do Azure
Nesta seção, você configura a recuperação de desastres para o cluster AKS na região primária usando o Backup do Azure.
Criar uma conta de armazenamento
O backup do AKS usa um contêiner de blob para armazenar os recursos do cluster AKS. Você cria outro contêiner de blob como um local de preparo para uso durante a restauração entre regiões.
Use as etapas a seguir para criar uma conta de armazenamento e dois contêineres. Alguns destes passos direcionam-no para outros guias.
- Inicie sessão no portal do Azure.
- Crie uma conta de armazenamento seguindo as etapas em Criar uma conta de armazenamento. Você não precisa fazer todas as etapas no artigo. Preencha os campos conforme mostrado no painel Noções básicas , usando as seguintes etapas:
- Para Grupo de recursos, selecione o grupo de recursos existente onde o cluster primário está implantado - por exemplo,
liberty-aks-eastus-mjg032524
. - Em Nome da conta de armazenamento, insira um nome exclusivo - por exemplo,
storageeastusmjg032524
. - Em Região, selecione Leste dos EUA.
- Selecione Rever + criar para aceitar as opções predefinidas.
- Prossiga para validar e criar a conta e, em seguida, volte a este artigo.
- Para Grupo de recursos, selecione o grupo de recursos existente onde o cluster primário está implantado - por exemplo,
- Crie um contêiner de armazenamento para a extensão de backup AKS seguindo as etapas em Criar um contêiner de armazenamento. Este guia usa
aks-backup-ext
como o nome do contêiner. - Crie outro contêiner de armazenamento como um local de preparo para uso durante a restauração. Este guia usa
staging
como o nome do contêiner.
Ativar a extensão de backup AKS
Antes de continuar, use as seguintes etapas para instalar a extensão de backup AKS no cluster na região primária:
Habilite os drivers CSI e instantâneos para seu cluster. Para o comando a seguir
az aks update
, atualize o valor da variávelRG_NAME
Bash para o nome do grupo de recursos - por exemplo,liberty-aks-eastus-mjg032524
- e execute no terminal Bash local.export RG_NAME=<your-aks-cluster-resource-group> export AKS_NAME=$(az aks list \ --resource-group ${RG_NAME} \ --query "[0].name" \ --output tsv | tr -d '\r') az aks update \ --resource-group ${RG_NAME} \ --name ${AKS_NAME} \ --enable-disk-driver \ --enable-file-driver \ --enable-blob-driver \ --enable-snapshot-controller --yes
Demora cerca de 5 minutos para habilitar os motoristas. Certifique-se de que os comandos estão concluídos sem erros antes de continuar.
Abra o grupo de recursos que implantou o AKS - por exemplo,
liberty-aks-eastus-mjg032524
. Selecione o cluster AKS na lista de recursos.Em Configurações da página de destino do AKS, selecione Fazer backup e, em seguida, selecione Instalar extensão.
Na página Instalar extensão AKS Backup, selecione Avançar. Selecione a conta
storageeastusmjg032524
de armazenamento e o contêineraks-backup-ext
de blob criados no mesmo grupo de recursos. Selecione Avançar e, em seguida, selecione Criar. Demora cerca de cinco minutos a concluir esta etapa.
Faça backup do cluster AKS
Use as seguintes etapas para fazer backup do cluster AKS:
No portal do Azure, na caixa de pesquisa, procure por cofres de backup. Você o vê listado em Serviços. Selecione-a.
Siga as etapas em Fazer backup do Serviço Kubernetes do Azure usando o Backup do Azure para habilitar o AKS Backup para o cluster primário. Execute as etapas até, mas não incluindo, a seção Usar ganchos durante o backup do AKS e use o restante das etapas nesta seção para fazer ajustes à medida que avança.
Quando chegar à seção Criar um cofre de backup, use as seguintes etapas:
Para a etapa 1, para Grupo de recursos, selecione o grupo de recursos existente onde o cluster primário está implantado - por exemplo,
liberty-aks-eastus-mjg032524
.Para Nome do cofre de backup, insira um valor exclusivo - por exemplo,
aks-backup-vault-eastus-mjg032524
.Em Região, selecione Leste dos EUA.
Em Redundância de armazenamento de backup, selecione Globalmente redundante.
Para a etapa 2, para Restauração entre regiões, selecione Ativar.
Quando chegar à seção Criar uma política de backup, use as seguintes etapas:
Para a etapa 3, insira um nome para a política de backup - por exemplo,
aksbackuppolicy
.Selecione o cofre de backup que você criou no mesmo grupo de recursos - por exemplo,
aks-backup-vault-eastus-mjg032524
.Para a etapa 4, adicione uma regra de retenção em que a opção Vault-standard esteja selecionada.
Selecione Adicionar.
Na seção Configurar backups, use as seguintes etapas:
Pule as etapas 1-5, que são para a instalação da extensão AKS. Comece a partir da etapa 6 para o cluster AKS na região primária.
Para a etapa 7, para o Vault, selecione o cofre de backup que você criou no mesmo grupo de recursos - por exemplo,
aks-backup-vault-eastus-mjg032524
. Quando você encontrar erros de permissão, selecione Conceder permissões para seguir em frente. Após a conclusão da implantação de permissão, se o erro ainda aparecer, selecione Revalidar para atualizar as atribuições de função.Para a etapa 10, localize Selecionar recursos para backup. Para Nome da instância de backup, preencha um nome exclusivo - por exemplo,
akseastusmjg032524
. Para Outras opções, selecione todas as opções. Certifique-se de que a opção Incluir segredos está selecionada.Para a etapa 11, você corre em erro de atribuição de função. Siga os passos 12-14 para atenuar o erro.
Depois de selecionar Configurar backup na etapa 15, você retorna à página Backup . Aguarde um pouco e selecione Atualizar. Repita a operação até ver que a instância de backup está listada e seu status de Proteção está configurado como Proteção.
Aguarde até que um backup padrão do Vault aconteça
No AKS, a camada padrão do Vault é a única camada que suporta redundância geográfica e restauração entre regiões. Conforme indicado em Qual camada de armazenamento de backup o AKS suporta?, "Apenas um ponto de recuperação agendado por dia é movido para o nível do Vault." Você deve aguardar a realização de um backup padrão do Vault. Um bom limite inferior é aguardar no máximo 24 horas após concluir a etapa anterior antes de restaurar.
Use as seguintes etapas para verificar se um backup padrão do Vault está disponível:
Na página Backup do cluster AKS primário, selecione a instância de backup.
Aguarde um pouco e selecione Atualizar. Repita a operação até ver que pelo menos um ponto de restauração Operacional e padrão do Vault está listado na seção RESTORE POINTS .
Configurar o cluster secundário do AKS
Enquanto aguarda que um backup padrão do Vault para o cluster AKS primário aconteça, configure seu cluster AKS secundário para restaurar mais tarde.
Use as mesmas etapas na seção Implementar o cluster primário do WebSphere Liberty/Open Liberty para configurar o cluster AKS secundário na região secundária, exceto pelas seguintes diferenças:
No painel Noções básicas, use as seguintes etapas:
-
No campo Grupo de recursos, selecione Criar novo e preencha um valor exclusivo diferente para o grupo de recursos - por exemplo,
liberty-aks-westus-mjg032524
. - Em Detalhes da instância, em Região, selecione Oeste dos EUA.
-
No campo Grupo de recursos, selecione Criar novo e preencha um valor exclusivo diferente para o grupo de recursos - por exemplo,
No painel AKS, use as seguintes etapas:
Use as mesmas etapas na seção Verificar a implantação do cluster para verificar a implantação na região secundária, exceto pelas seguintes diferenças:
- Você não precisa copiar e salvar o nome do segredo TLS. O segredo TLS é restaurado a partir do backup do cluster AKS primário.
- Use o grupo de recursos do cluster secundário - por exemplo,
liberty-aks-westus-mjg032524
- quando pesquisar o nome e o nome DNS do endereço IP público do Gateway de Aplicativo do Azure implantado na região secundária.
Use as mesmas etapas na seção Criar uma conta de armazenamento para criar uma conta de armazenamento na região secundária, exceto pelas seguintes diferenças:
- Para o campo Grupo de recursos , selecione o grupo de recursos existente onde o cluster secundário está implantado - por exemplo,
liberty-aks-westus-mjg032524
. - Em Nome da conta de armazenamento, insira um nome exclusivo - por exemplo,
storagewestusmjg032524
. - Em Região, selecione Oeste dos EUA.
Use as mesmas etapas na seção Habilitar a Extensão de Backup do AKS para instalar a Extensão de Backup do AKS para o cluster na região secundária, exceto pelas seguintes diferenças:
- Na etapa 1 para habilitar os drivers CSI e instantâneos para seu cluster secundário, atualize o valor da variável
RG_NAME
Bash para o grupo de recursos na região secundária - por exemplo,liberty-aks-westus-mjg032524
. - Na etapa 2, selecione o cluster AKS do grupo de recursos na região secundária - por exemplo,
liberty-aks-westus-mjg032524
. - Na etapa 4 para instalar a extensão de backup AKS para seu cluster secundário, selecione a conta de armazenamento que você criou no mesmo grupo de recursos da região secundária - por exemplo,
storagewestusmjg032524
.
Para economizar custos, pare o cluster AKS na região secundária seguindo as etapas em Parar e iniciar um cluster do Serviço Kubernetes do Azure (AKS). Você precisa iniciá-lo antes de restaurar o cluster mais tarde.
Configurar um Azure Traffic Manager
O backup padrão do Vault foi mencionado na seção Aguarde até que um backup padrão do Vault aconteça. Depois de ver que um backup padrão do Vault está disponível, você pode criar um Gerenciador de Tráfego do Azure para distribuir o tráfego para seus aplicativos voltados para o público nas regiões globais do Azure. O ponto de extremidade primário aponta para o endereço IP público do Gateway de Aplicativo do Azure na região primária. O ponto de extremidade secundário aponta para o endereço IP público do Gateway de Aplicativo do Azure na região secundária.
Crie um perfil do Azure Traffic Manager seguindo as etapas em Guia de início rápido: criar um perfil do Gerenciador de Tráfego usando o portal do Azure. Você só precisa das seguintes seções: Criar um perfil do Gerenciador de Tráfego e Adicionar pontos de extremidade do Gerenciador de Tráfego. Use as etapas a seguir ao percorrer essas seções e retorne a este artigo depois de criar e configurar o Gerenciador de Tráfego do Azure:
Quando você chegar à seção Criar um perfil do Gerenciador de Tráfego, na etapa 2, para Criar perfil do Gerenciador de Tráfego, use as seguintes etapas:
- Em Nome, insira um nome de perfil exclusivo do Gerenciador de Tráfego - por exemplo,
tmprofile-mjg032524
. - Em Método de roteamento, selecione Prioridade.
- Para Grupo de recursos, insira e salve de lado o novo nome do grupo de recursos - por exemplo,
myResourceGroupTM1
.
- Em Nome, insira um nome de perfil exclusivo do Gerenciador de Tráfego - por exemplo,
Quando chegar à seção Adicionar pontos de extremidade do Gerenciador de Tráfego, use as seguintes etapas:
- Depois de abrir o perfil do Gerenciador de Tráfego na etapa 2, na página Configuração , use as seguintes etapas:
- Para DNS time to live (TTL), digite 10.
- Em Configurações do monitor de ponto final, em Protocolo, selecione https, e em Porta, digite 443.
- Em Configurações rápidas de failover de ponto de extremidade, use os seguintes valores:
- Em Sondagem interna, selecione 10.
- Em Número tolerado de falhas, digite 3.
- Para Tempo limite da sonda, digite 5.
- Selecione Guardar. Aguarde até que seja concluído.
- Na etapa 4 para adicionar o ponto de extremidade
myPrimaryEndpoint
primário, use as seguintes etapas:- Em Tipo de recurso de destino, selecione Endereço IP público.
- Selecione a lista suspensa Escolher endereço IP público e insira o nome do endereço IP público do Gateway de Aplicativo do Azure na região Leste dos EUA que você salvou anteriormente. Você verá uma entrada correspondida. Selecione-o para Endereço IP público.
- Na etapa 6 para adicionar um ponto de extremidade secundário/failover
myFailoverEndpoint
, use as seguintes etapas:- Em Tipo de recurso de destino, selecione Endereço IP público.
- Selecione a lista suspensa Escolher endereço IP público e insira o nome do endereço IP público do Gateway de Aplicativo do Azure na região Oeste dos EUA que você salvou anteriormente. Você verá uma entrada correspondida. Selecione-o para Endereço IP público.
- Espere um pouco. Selecione Atualizar até que o status do Monitor para o ponto de extremidade seja
myPrimaryEndpoint
e o status do Monitor para o ponto de extremidademyFailoverEndpoint
seja Degradado.
- Depois de abrir o perfil do Gerenciador de Tráfego na etapa 2, na página Configuração , use as seguintes etapas:
Em seguida, use as seguintes etapas para verificar se o aplicativo de exemplo implantado no cluster primário está acessível a partir do perfil do Gerenciador de Tráfego:
Selecione Visão geral do perfil do Gerenciador de Tráfego que você criou.
Verifique e copie o nome DNS do perfil do Gerenciador de Tráfego, substituindo o protocolo
http
porhttps
. Por exemplo,https://tmprofile-mjg032524.trafficmanager.net
.Abra o URL num novo separador do browser. Você deve ver que o café que você criou anteriormente está listado na página.
Crie outro café com um nome e preço diferentes - por exemplo, Café 2 com preço 20 - que é mantido na tabela de dados do aplicativo e na tabela de sessão do banco de dados. A interface do usuário que você vê deve ser semelhante à seguinte captura de tela:
Se a interface do usuário não for semelhante, solucione o problema e resolva o problema antes de continuar. Mantenha o console aberto e use-o para o teste de failover mais tarde.
Você concluiu a configuração do perfil do Gerenciador de Tráfego. Mantenha a página aberta e use-a para monitorar a alteração de status do ponto de extremidade em um evento de failover mais tarde.
Teste o failover do primário para o secundário
Nesta seção, para testar o failover, faça failover manualmente do servidor do Banco de Dados SQL do Azure e restaure o backup do cluster AKS e, em seguida, faça failback usando o portal do Azure.
Failover para o site secundário
Para simular uma interrupção da região primária, pare o cluster AKS primário seguindo as etapas em Parar e iniciar um cluster do Serviço Kubernetes do Azure (AKS).
Em seguida, inicie o cluster AKS secundário para que ele possa ser restaurado a partir do backup do cluster primário.
Nota
Se você tiver aplicativos WebSphere Liberty/Open Liberty em execução no cluster de destino de restauração, para evitar conflitos, use as seguintes etapas para limpar aplicativos WebSphere Liberty/Open Liberty:
Conecte-se ao cluster de destino executando o comando que
cmdToConnectToCluster
você salvou anteriormente.Para aplicativos Open Liberty, execute o seguinte comando:
kubectl delete OpenLibertyApplication --all --all-namespaces
Para aplicativos WebSphere Liberty, execute o seguinte comando:
kubectl delete WebSphereLibertyApplication --all --all-namespaces
Em seguida, alterne para a guia do navegador do seu perfil do Gerenciador de Tráfego e verifique se o status do Monitor para ambos os pontos de extremidade e myPrimaryEndpoint
está myFailoverEndpoint
.
Agora, use as seguintes etapas para fazer failover do Banco de Dados SQL do Azure do servidor primário para o servidor secundário:
- Alterne para a guia do navegador do seu grupo de failover do Banco de Dados SQL do Azure - por exemplo,
failovergroup-mjg032524
. - Selecione Failover e, em seguida, selecione Sim.
- Aguarde até que seja concluído.
Em seguida, use as seguintes etapas para restaurar o backup do cluster AKS primário para o cluster AKS secundário:
No portal do Azure, na caixa de pesquisa, digite Centro de backup e selecione Centro de backup nos resultados da pesquisa.
Em Gerenciar, selecione Instâncias de backup. Filtre o tipo de fonte de dados Serviços Kubernetes. Encontre a instância de backup que você criou na seção anterior - por exemplo,
<aks-cluster-name>\akseastusmjg032524
.Selecione a instância de backup.
Selecione Restaurar.
Na página Restaurar, o painel padrão é Ponto de restauração. Selecione Anterior para alterar para o painel Noções básicas . Em Região de restauração, selecione Região secundária e, em seguida, selecione Seguinte: Ponto de restauro.
No painel Ponto de restauração, o ponto de restauração mais recente Operacional e padrão do Vault é selecionado. Mantenha os padrões e selecione Avançar: Restaurar parâmetros.
No painel Parâmetros de restauração , use as seguintes etapas:
Para Selecionar cluster de destino, selecione o cluster AKS secundário que você criou na região Oeste dos EUA. Você se depara com um problema de permissão, conforme mostrado na captura de tela a seguir. Selecione Conceder permissão para atenuar os erros.
Em Local de preparo de backup, selecione a Conta de armazenamento que você criou na região Oeste dos EUA. Você se depara com um problema de permissão, conforme mostrado na captura de tela a seguir. Selecione Atribuir funções ausentes para atenuar os erros.
Se os erros ainda acontecerem após a conclusão das atribuições de função, selecione Revalidar para atualizar as permissões.
Ao conceder permissões ausentes, se solicitado a especificar um Escopo, aceite o valor padrão.
Selecione Validar. Você deve ver a mensagem,
Validation completed successfully
. Caso contrário, solucione e resolva o problema antes de continuar.
Selecione Seguinte: Rever + restaurar. Em seguida, selecione Restaurar. Leva cerca de 10 minutos para restaurar o cluster.
Você pode monitorar o processo de restauração a partir do Centro>> de backup, conforme mostrado na captura de tela a seguir:
Aguarde um pouco e selecione Atualizar. Repita a operação até ver que Status se torna Concluído.
Em seguida, use as seguintes etapas para verificar se a restauração funciona conforme o esperado:
Mude para o terminal onde se ligou ao cluster AKS secundário.
Execute o seguinte comando para obter o aplicativo de exemplo restaurado do backup:
kubectl get OpenLibertyApplication
Você deve ver um aplicativo READY na saída:
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 3m
Execute o seguinte comando para obter o status dos pods criados durante a implantação:
kubectl get pods
Você deve ver três pods de execução na saída:
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-7bb57dd945-6ljll 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-h2xdf 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-k744w 1/1 Running 0 3m
Mude para o separador do browser do seu perfil do Gestor de Tráfego e, em seguida, atualize a página até ver que o estado do Monitor para o ponto de extremidade
myFailoverEndpoint
está Online e o estado do Monitor para o ponto de extremidademyPrimaryEndpoint
está Degradado.Mude para o separador do browser com o nome DNS do perfil do Gestor de Tráfego - por exemplo,
https://tmprofile-mjg032524.trafficmanager.net
. Atualize a página e você verá os mesmos dados persistidos na tabela de dados do aplicativo e na tabela de sessão exibida. A interface do usuário que você vê deve ser semelhante à seguinte captura de tela:Se você não observar esse comportamento, pode ser porque o Gerenciador de Tráfego está demorando para atualizar o DNS para apontar para o site de failover. O problema também pode ser que seu navegador armazenou em cache o resultado da resolução de nomes DNS que aponta para o site com falha. Aguarde um pouco e atualize a página novamente.
Nota
O aplicativo configura o tempo limite da sessão como 1 hora. Dependendo de quanto tempo levou para o failover, talvez você não veja os dados da sessão exibidos na seção Novo café da interface do usuário do aplicativo de exemplo se ele expirou mais de uma hora antes.
Proteja novamente o local de failover
Agora que a região secundária é o site de failover e está ativa, você deve protegê-la novamente com o Backup do Azure.
Primeiro, use as mesmas etapas na seção Fazer backup do cluster AKS para fazer backup do cluster AKS secundário, exceto pelas seguintes diferenças:
- Para Criar um cofre de backup, use as seguintes etapas:
- Em Grupo de recursos, selecione o grupo de recursos existente implantado na região secundária - por exemplo,
liberty-aks-westus-mjg032524
. - Para Nome do cofre de backup, insira um valor exclusivo - por exemplo,
aks-backup-vault-westus-mjg032524
. - Em Região, selecione Oeste dos EUA.
- Em Grupo de recursos, selecione o grupo de recursos existente implantado na região secundária - por exemplo,
- Para Criar uma política de backup, use as seguintes etapas:
- Selecione o cofre de backup que você criou na região secundária - por exemplo,
aks-backup-vault-westus-mjg032524
.
- Selecione o cofre de backup que você criou na região secundária - por exemplo,
- Para Configurar backups, use as seguintes etapas:
- Selecione o cofre de backup que você criou na região secundária - por exemplo,
aks-backup-vault-westus-mjg032524
. - Para Nome da instância de backup, preencha um nome exclusivo - por exemplo,
akswestusmjg032524
.
- Selecione o cofre de backup que você criou na região secundária - por exemplo,
Em seguida, use as mesmas etapas na seção Aguarde um backup padrão do Vault para aguardar até que um backup padrão do Vault do cluster AKS secundário esteja disponível, exceto selecionar a instância de backup na página Backup do cluster AKS secundário.
Failback para o site primário
Use as mesmas etapas na seção Failover para o site secundário para fazer failover no site primário, incluindo o servidor de banco de dados e o cluster AKS, exceto pelas seguintes diferenças:
Ao se preparar para o failback, use as seguintes etapas:
- Pare o cluster AKS secundário para simular uma interrupção da região secundária.
- Inicie o cluster AKS primário.
- Conecte-se ao cluster AKS primário e limpe os aplicativos WebSphere Liberty/Open Liberty.
Ao restaurar o backup do cluster AKS secundário para o cluster AKS primário, use as seguintes etapas:
- Selecione a instância de backup na região secundária - por exemplo,
<aks-cluster-name>\akswestusmjg032524
. - No painel Parâmetros de restauração , use as seguintes etapas:
- Para Selecionar cluster de destino, selecione o cluster AKS primário que você criou na região Leste dos EUA.
- Em Local de preparo de backup, selecione a Conta de armazenamento que você criou na região Leste dos EUA.
- Selecione a instância de backup na região secundária - por exemplo,
Quando verificar se a restauração funciona conforme o esperado, use as seguintes etapas:
- Mude para o terminal onde se ligou ao cluster AKS principal e verifique se a aplicação foi restaurada com êxito.
- Mude para o separador do browser do seu perfil do Gestor de Tráfego e, em seguida, atualize a página até ver que o estado do Monitor para o ponto de extremidade
myPrimaryEndpoint
está Online e o estado do Monitor para o ponto de extremidademyFailoverEndpoint
está Degradado.
Clean up resources (Limpar recursos)
Se você não vai continuar a usar os clusters do WebSphere Liberty/Open Liberty e outros componentes, use as seguintes etapas para excluir os grupos de recursos para limpar os recursos usados neste tutorial:
- No portal do Azure, na caixa de pesquisa, insira o nome do grupo de recursos dos servidores do Banco de Dados SQL do Azure - por exemplo,
myResourceGroup
- e selecione o grupo de recursos correspondente nos resultados da pesquisa. - Selecione Eliminar grupo de recursos.
- Em Digite o nome do grupo de recursos para confirmar a exclusão, digite o nome do grupo de recursos.
- Selecione Eliminar.
- Repita as etapas 1 a 4 para o grupo de recursos do Gerenciador de Tráfego - por exemplo,
myResourceGroupTM1
. - No portal do Azure, na caixa de pesquisa, insira Cofres de backup e selecione Cofres de backup nos resultados da pesquisa. Você deve ver dois cofres de backup listados - por exemplo,
aks-backup-vault-eastus-mjg032524
eaks-backup-vault-westus-mjg032524
. Para cada um deles, use as seguintes etapas:- Selecione esta opção para abrir o cofre de backup.
- Selecione Manage>Properties>Soft delete>Update. Ao lado de Ativar exclusão suave, desmarque a caixa de seleção e selecione Atualizar.
- Selecione Gerenciar>instâncias de backup. Filtre o tipo de fonte de dados Serviços Kubernetes. Selecione a instância que você criou e exclua-a.
- Aguarde até que as duas instâncias de backup sejam excluídas.
- Repita as etapas 1 a 4 para o grupo de recursos do cluster primário - por exemplo,
liberty-aks-eastus-mjg032524
. - Repita as etapas 1 a 4 para o grupo de recursos do cluster secundário - por exemplo,
liberty-aks-westus-mjg032524
.
Próximos passos
Neste tutorial, você configura uma solução WebSphere Liberty/Open Liberty HA/DR que consiste em uma camada de infraestrutura de aplicativo ativo-passivo com uma camada de banco de dados ativo-passivo e na qual ambas as camadas abrangem dois locais geograficamente diferentes. No primeiro site, a camada de infraestrutura de aplicativo e a camada de banco de dados estão ativas. No segundo site, o domínio secundário é restaurado com o Backup do Azure e o banco de dados secundário fica em espera.
Continue a explorar as seguintes referências para obter mais opções para criar soluções HA/DR e executar o WebSphere no Azure: