Partilhar via


Tutorial: Migrar o WebSphere Liberty/Open Liberty para o Serviço Kubernetes do Azure 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:

Diagrama da arquitetura da solução do WebSphere Liberty/Open Liberty no AKS com alta disponibilidade e recuperação de desastres.

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

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:

  1. Na etapa 4 para criar um novo grupo de recursos, salve de lado o valor Nome do grupo de recursos - por exemplo, myResourceGroup.
  2. Na etapa 5 para o nome do banco de dados, salve de lado o valor Nome do banco de dados - por exemplo, mySampleDatabase.
  3. Na etapa 6 para criar o servidor, use as seguintes etapas:
    1. Preencha um nome de servidor exclusivo - por exemplo, sqlserverprimary-mjg032524.
    2. Em Local, selecione (EUA) Leste dos EUA.
    3. Em Método de autenticação, selecione Usar autenticação SQL.
    4. Salve de lado o valor de login do administrador do servidor - por exemplo, azureuser.
    5. Salve de lado o valor da senha .
  4. 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.
  5. 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.
  6. 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:

  1. Quando chegar à seção Criar grupo de failover, use as seguintes etapas:

    1. 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.
    2. Na etapa 5 para configurar o servidor, selecione a opção para criar um novo servidor secundário e use as seguintes etapas:
      1. Insira um nome de servidor exclusivo - por exemplo, sqlserversecondary-mjg032524.
      2. Introduza o mesmo administrador do servidor e palavra-passe que o servidor principal.
      3. Em Local, selecione (EUA) Oeste dos EUA.
      4. Certifique-se de que a opção Permitir que os serviços do Azure acedam ao servidor está selecionada.
    3. 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.
  2. 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.

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:

  1. 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.

  2. Use as seguintes etapas para preencher o painel Noções básicas :

    1. Verifique se o valor mostrado para Assinatura é o mesmo que tem as funções listadas na seção de pré-requisitos.
    2. 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.
    3. Em Detalhes da instância, para Região, selecione Leste dos EUA.
    4. Selecione Avançar para ir para o painel AKS .

    Captura de tela do portal do Azure que mostra o painel IBM WebSphere Liberty e Open Liberty no Azure Kubernetes Service Basics.

  3. 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.

    Captura de tela do portal do Azure que mostra o painel IBM WebSphere Liberty e Open Liberty no Azure Kubernetes Service AKS.

  4. Use as seguintes etapas para preencher o painel Balanceamento de carga:

    1. Para Conectar ao Gateway de Aplicativo do Azure?, selecione Sim.
    2. Deixe os padrões para outros campos.
    3. Selecione Avançar para ir para o painel Operador e aplicativo .

    Captura de tela do portal do Azure que mostra o painel IBM WebSphere Liberty e Open Liberty no Azure Kubernetes Service Load balanceamento.

  5. Use as seguintes etapas para preencher o painel Operador e aplicativo:

    1. 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?.

    2. Selecione Rever + criar.

    3. Aguarde até que a Execução da validação final... seja concluída com êxito e, em seguida, selecione Criar.

    Captura de tela do portal do Azure que mostra o IBM WebSphere Liberty e o Open Liberty no Operador de Serviço Kubernetes do Azure e no painel de aplicativos.

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:

  1. Retorne à página Implantação e selecione Saídas.

  2. 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
    
  3. Salve de lado o comando para que você possa usá-lo para se conectar ao cluster mais tarde.

  4. 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
    
  5. 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, secret3984d1você o usa na implantação do aplicativo mais tarde.

  6. 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.

  1. No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione Grupos de recursos nos resultados da pesquisa.
  2. Selecione o nome do grupo de recursos para sua região primária - por exemplo, liberty-aks-eastus-mjg032524.
  3. Encontre o recurso de endereço IP público prefixado com gwip, em seguida, copie e salve seu nome.
  4. 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:

  1. No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione Grupos de recursos nos resultados da pesquisa.

  2. Selecione o nome do grupo de recursos para sua região primária - por exemplo, liberty-aks-eastus-mjg032524.

  3. Localize o recurso de registo Contentor prefixado com acro e, em seguida, selecione-o para o abrir.

  4. Selecione Propriedades. Para Plano de preços, selecione Premium e, em seguida, selecione Guardar. Aguarde até à conclusão.

  5. Selecione Replicações geográficas e, em seguida, selecione Adicionar. Em Local, selecione West US e, em seguida, selecione Criar. Aguarde até à conclusão.

  6. Aguarde um pouco, selecione Atualizar. Repita a operação até ver que dois locais estão listados e Status está pronto.

    Captura de ecrã do portal do Azure que mostra a instância ACR ativada com replicações geográficas em regiões pares.

Use as etapas a seguir para obter as credenciais de entrada do ACR. Você os usa para implantação de aplicativos mais tarde.

  1. Selecione Teclas de acesso.
  2. Copie e salve de lado o valor para Servidor de login, Nome de usuário e 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:

  1. 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 .

  2. 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 LOGIN_SERVER=<ACR-login-server>
    export USER_NAME=<ACR-username>
    export PASSWORD='<ACR-password>'
    export INGRESS_TLS_SECRET=<TLS-secret-name>
    
  3. Use os seguintes comandos para empacotar o aplicativo, criar a imagem do Docker, enviar a imagem para a instância ACR e implantar o exemplo no cluster AKS:

    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"
    docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile .
    docker tag javaee-cafe:v1 ${LOGIN_SERVER}/javaee-cafe:v1
    docker login -u ${USER_NAME} -p ${PASSWORD} ${LOGIN_SERVER}
    docker push ${LOGIN_SERVER}/javaee-cafe:v1
    
    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
    
  4. 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
    
  5. 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
    
  6. Use as seguintes etapas para verificar se o aplicativo está sendo executado conforme o esperado:

    1. 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.

    2. 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:

      Captura de tela da interface do usuário do aplicativo de exemplo.

    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.

  1. Inicie sessão no portal do Azure.
  2. 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:
    1. Para Grupo de recursos, selecione o grupo de recursos existente onde o cluster primário está implantado - por exemplo, liberty-aks-eastus-mjg032524.
    2. Em Nome da conta de armazenamento, insira um nome exclusivo - por exemplo, storageeastusmjg032524.
    3. Em Região, selecione Leste dos EUA.
    4. Selecione Rever + criar para aceitar as opções predefinidas.
    5. Prossiga para validar e criar a conta e, em seguida, volte a este artigo.
  3. 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.
  4. 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:

  1. Habilite os drivers CSI e instantâneos para seu cluster. Para o comando a seguir az aks update , atualize o valor da variável RG_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.

  2. Abra o grupo de recursos que implantou o AKS - por exemplo, liberty-aks-eastus-mjg032524. Selecione o cluster AKS na lista de recursos.

  3. Em Configurações da página de destino do AKS, selecione Fazer backup e, em seguida, selecione Instalar extensão.

  4. Na página Instalar extensão AKS Backup, selecione Avançar. Selecione a conta storageeastusmjg032524 de armazenamento e o contêiner aks-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:

  1. No portal do Azure, na caixa de pesquisa, procure por cofres de backup. Você o vê listado em Serviços. Selecione-a.

  2. 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.

  3. Quando chegar à seção Criar um cofre de backup, use as seguintes etapas:

    1. 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.

    2. Para Nome do cofre de backup, insira um valor exclusivo - por exemplo, aks-backup-vault-eastus-mjg032524.

    3. Em Região, selecione Leste dos EUA.

    4. Em Redundância de armazenamento de backup, selecione Globalmente redundante.

      Captura de tela do portal do Azure que mostra o painel Backup Vault Basic.

    5. Para a etapa 2, para Restauração entre regiões, selecione Ativar.

  4. Quando chegar à seção Criar uma política de backup, use as seguintes etapas:

    1. Para a etapa 3, insira um nome para a política de backup - por exemplo, aksbackuppolicy.

    2. Selecione o cofre de backup que você criou no mesmo grupo de recursos - por exemplo, aks-backup-vault-eastus-mjg032524.

    3. Para a etapa 4, adicione uma regra de retenção em que a opção Vault-standard esteja selecionada.

      Captura de ecrã do portal do Azure que mostra a página Criar Política de Backup com o painel Adicionar retenção aberto e a opção Padrão do Cofre realçada.

    4. Selecione Adicionar.

  5. Na seção Configurar backups, use as seguintes etapas:

    1. 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.

    2. 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.

      Captura de ecrã do portal do Azure que mostra o painel Configurar Noções Básicas de Backup com erros de permissão e com a ligação Conceder Permissões realçada.

    3. 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.

      Captura de ecrã do portal do Azure que mostra o painel Selecionar Recursos para Cópia de Segurança com a opção Incluir Segredos realçada.

    4. Para a etapa 11, você corre em erro de atribuição de função. Siga os passos 12-14 para atenuar o erro.

      Captura de ecrã do portal do Azure que mostra o painel Configurar Backup com a caixa de diálogo Conceder permissões em falta aberta.

    5. 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.

      Captura de ecrã do portal do Azure que mostra que a proteção da instância de cópia de segurança AKS está configurada.

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:

  1. Na página Backup do cluster AKS primário, selecione a instância de backup.

  2. 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 .

    Captura de ecrã do portal do Azure que mostra a secção Pontos de restauro com o ponto de restauro Operacional e padrão do Cofre realçado.

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:

  1. No painel Noções básicas, use as seguintes etapas:

    1. 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.
    2. Em Detalhes da instância, em Região, selecione Oeste dos EUA.
  2. No painel AKS, use as seguintes etapas:

    1. Em Azure Container Registry (ACR), para Selecionar instância ACR, selecione Não.

    2. Selecione a instância ACR existente na região primária habilitada com replicações geográficas.

      Captura de tela da página Criar IBM WebSphere Liberty e Open Liberty no Serviço Kubernetes do Azure com a instância ACR realçada.

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:

  1. 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.
  2. 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:

  1. 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.
  2. Em Nome da conta de armazenamento, insira um nome exclusivo - por exemplo, storagewestusmjg032524.
  3. 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:

  1. 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.
  2. Na etapa 2, selecione o cluster AKS do grupo de recursos na região secundária - por exemplo, liberty-aks-westus-mjg032524.
  3. 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:

  1. 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:

    1. Em Nome, insira um nome de perfil exclusivo do Gerenciador de Tráfego - por exemplo, tmprofile-mjg032524.
    2. Em Método de roteamento, selecione Prioridade.
    3. Para Grupo de recursos, insira e salve de lado o novo nome do grupo de recursos - por exemplo, myResourceGroupTM1.
  2. Quando chegar à seção Adicionar pontos de extremidade do Gerenciador de Tráfego, use as seguintes etapas:

    1. Depois de abrir o perfil do Gerenciador de Tráfego na etapa 2, na página Configuração , use as seguintes etapas:
      1. Para DNS time to live (TTL), digite 10.
      2. Em Configurações do monitor de ponto final, em Protocolo, selecione https, e em Porta, digite 443.
      3. 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.
      4. Selecione Guardar. Aguarde até que seja concluído.
    2. Na etapa 4 para adicionar o ponto de extremidade myPrimaryEndpointprimário, use as seguintes etapas:
      1. Em Tipo de recurso de destino, selecione Endereço IP público.
      2. 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.
    3. Na etapa 6 para adicionar um ponto de extremidade secundário/failover myFailoverEndpoint, use as seguintes etapas:
      1. Em Tipo de recurso de destino, selecione Endereço IP público.
      2. 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.
    4. Espere um pouco. Selecione Atualizar até que o status do Monitor para o ponto de extremidade myPrimaryEndpoint seja Online e o status do Monitor para o ponto de extremidade myFailoverEndpoint seja Degradado.

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:

  1. Selecione Visão geral do perfil do Gerenciador de Tráfego que você criou.

  2. Verifique e copie o nome DNS do perfil do Gerenciador de Tráfego, substituindo o protocolo http por https. Por exemplo, https://tmprofile-mjg032524.trafficmanager.net.

  3. Abra o URL num novo separador do browser. Você deve ver que o café que você criou anteriormente está listado na página.

  4. 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:

    Captura de tela da interface do usuário do aplicativo de exemplo com o segundo café.

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 myPrimaryEndpoint de extremidade e myFailoverEndpoint está Degradado.

Agora, use as seguintes etapas para fazer failover do Banco de Dados SQL do Azure do servidor primário para o servidor secundário:

  1. Alterne para a guia do navegador do seu grupo de failover do Banco de Dados SQL do Azure - por exemplo, failovergroup-mjg032524.
  2. Selecione Failover e, em seguida, selecione Sim.
  3. 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:

  1. No portal do Azure, na caixa de pesquisa, digite Centro de backup e selecione Centro de backup nos resultados da pesquisa.

  2. 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.

  3. Selecione a instância de backup.

  4. Selecione Restaurar.

  5. 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.

    Captura de ecrã do portal do Azure que mostra o painel Noções básicas de restauro.

  6. 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.

    Captura de ecrã do portal do Azure que mostra o painel Ponto de restauro.

  7. No painel Parâmetros de restauração , use as seguintes etapas:

    1. 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.

    2. 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.

      Captura de ecrã do portal do Azure que mostra o painel Parâmetros de restauração.

    3. Se os erros ainda acontecerem após a conclusão das atribuições de função, selecione Revalidar para atualizar as permissões.

    4. Ao conceder permissões ausentes, se solicitado a especificar um Escopo, aceite o valor padrão.

    5. Selecione Validar. Você deve ver a mensagem, Validation completed successfully. Caso contrário, solucione e resolva o problema antes de continuar.

  8. Selecione Seguinte: Rever + restaurar. Em seguida, selecione Restaurar. Leva cerca de 10 minutos para restaurar o cluster.

  9. Você pode monitorar o processo de restauração a partir do Centro>de backup Monitoramento + emissão de relatórios>Trabalhos de backup, conforme mostrado na captura de tela a seguir:

    Captura de tela do portal do Azure que mostra um CrossRegionRestore em andamento.

  10. 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:

  1. Mude para o terminal onde se ligou ao cluster AKS secundário.

  2. 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
    
  3. 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
    
  4. 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 extremidade myPrimaryEndpoint está Degradado.

  5. 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:

    Captura de tela da interface do usuário do aplicativo de exemplo após o failover.

    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:

  1. Para Criar um cofre de backup, use as seguintes etapas:
    1. Em Grupo de recursos, selecione o grupo de recursos existente implantado na região secundária - por exemplo, liberty-aks-westus-mjg032524.
    2. Para Nome do cofre de backup, insira um valor exclusivo - por exemplo, aks-backup-vault-westus-mjg032524.
    3. Em Região, selecione Oeste dos EUA.
  2. Para Criar uma política de backup, use as seguintes etapas:
    1. Selecione o cofre de backup que você criou na região secundária - por exemplo, aks-backup-vault-westus-mjg032524.
  3. Para Configurar backups, use as seguintes etapas:
    1. Selecione o cofre de backup que você criou na região secundária - por exemplo, aks-backup-vault-westus-mjg032524.
    2. Para Nome da instância de backup, preencha um nome exclusivo - por exemplo, akswestusmjg032524.

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:

  1. Ao se preparar para o failback, use as seguintes etapas:

    1. Pare o cluster AKS secundário para simular uma interrupção da região secundária.
    2. Inicie o cluster AKS primário.
    3. Conecte-se ao cluster AKS primário e limpe os aplicativos WebSphere Liberty/Open Liberty.
  2. Ao restaurar o backup do cluster AKS secundário para o cluster AKS primário, use as seguintes etapas:

    1. Selecione a instância de backup na região secundária - por exemplo, <aks-cluster-name>\akswestusmjg032524.
    2. No painel Parâmetros de restauração , use as seguintes etapas:
      1. Para Selecionar cluster de destino, selecione o cluster AKS primário que você criou na região Leste dos EUA.
      2. Em Local de preparo de backup, selecione a Conta de armazenamento que você criou na região Leste dos EUA.
  3. Quando verificar se a restauração funciona conforme o esperado, use as seguintes etapas:

    1. Mude para o terminal onde se ligou ao cluster AKS principal e verifique se a aplicação foi restaurada com êxito.
    2. 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 extremidade myFailoverEndpoint 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:

  1. 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.
  2. Selecione Eliminar grupo de recursos.
  3. Em Digite o nome do grupo de recursos para confirmar a exclusão, digite o nome do grupo de recursos.
  4. Selecione Eliminar.
  5. Repita as etapas 1 a 4 para o grupo de recursos do Gerenciador de Tráfego - por exemplo, myResourceGroupTM1.
  6. 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 e aks-backup-vault-westus-mjg032524. Para cada um deles, use as seguintes etapas:
    1. Selecione esta opção para abrir o cofre de backup.
    2. Selecione Manage>Properties>Soft delete>Update. Ao lado de Ativar exclusão suave, desmarque a caixa de seleção e selecione Atualizar.
    3. 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.
  7. Aguarde até que as duas instâncias de backup sejam excluídas.
  8. Repita as etapas 1 a 4 para o grupo de recursos do cluster primário - por exemplo, liberty-aks-eastus-mjg032524.
  9. 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: