Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Scale down theĀ Runtime and Listener deployments in the PROD environment by running the two commands in the following formats.

    Code Block
    languagecss
    themeMidnight
    kubectl scale --replicas=0 deployment <Release Name>-ac-runtime -n <namespace>

...


  1. Code Block
    languagecss
    themeMidnight
    kubectl scale --replicas=0 deployment <Release Name>-ac-listener -n <namespace>

...


  1. Pause Scheduler in the PROD environment

    https://<webapp_Gateway_URL>/event/schedulerservice?_dc=1670999141899&query=Pause&page=1&start=0&limit=25

...

  1. Scale down Rabbit MQ statefulset in the PROD environment
    kubectl

...

  1. scale

...

  1. --replicas=0

...

  1. statefulset

...

  1. <Release

...

  1. Name>-ac-rabbitmq

...

  1. -n

...

  1. <namespace>

...

  1. Scale down Rabbit MQ statefulset in the DR environment
    kubectl

...

  1. scale

...

  1. --replicas=0

...

  1. statefulset

...

  1. <Release

...

  1. Name>-ac-rabbitmq

...

  1. -n

...

  1. <namespace>

...

  1. Initiate Failover for the storage account using below steps:

...

  1. Info

    >> These failover steps are not mandatory. These steps are mandatory only when the Azure File Share is not accessible due to any failure.

    >> As per Microsoft guideline, the time it takes to failover after initiation can vary though typically less than one hour.

    1. Login into your Azure Portal.

...

    1. Go to the Storage Account being used in the PVC of Prod environment.

...

    1. Within that storage account go to Data Management > Redundancy section.

...

    1. Click Prepare for failover and follow the instruction given on the screen. The failover process starts.

...

    1. Once the Account Failover process completes the data from secondary region will be accessible from the existing end point of the storage account

...

Note:

...

    1. .

...

...

As per Microsoft guideline, the time it takes to failover after initiation can vary though typically less than one hour.

  1. Copy web/repository folder from PROD to DR environment
    ./azcopy

...

  1. sync

...

  1. "https://[account].file.core.windows.net/[PVC]/web/repository/?[SAS]"

...

  1. "https://[account].file.core.windows.net/[PVC]/web/repository/?[SAS]"

...

  1. --recursive=true

...


  1. For

...

  1. Example:

...


  1. ./azcopy

...

  1. sync

...

  1. "https://fxxxxxxxxxxxxxxxxxxxxx1b6a.file.core.windows.net/pvc-e38eca50-xxxx-xxxx-xxxx-828efd6d49df/web/repository/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:18:24Z&st=2023-03-05T17:18:24Z&spr=https,http&sig=VxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaXBmSAKm4%3D"

...

  1. "https://fxxxxxxxxxxxxxxxxxxx3aeb.file.core.windows.net/pvc-1a6f1c1b-xxxx-xxxx-xxxx-44ff485d707f/web/repository/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:25:19Z&st=2023-03-05T17:25:19Z&spr=https,http&sig=vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGazWA%3D"

...

  1. --recursive=true

...

...

  1. Copy recovery folder from PROD to DR environment
    ./azcopy

...

  1. sync

...

  1. "https://[account].file.core.windows.net/[PVC]/recovery/?[SAS]"

...

  1. "https://[account].file.core.windows.net/[PVC]/recovery/?[SAS]"

...

  1. --recursive=true

...


  1. For

...

  1. Example:

...


  1. ./azcopy

...

  1. sync

...

  1. "https://fxxxxxxxxxxxxxxxxxxxxx1b6a.file.core.windows.net/pvc-e38eca50-xxxx-xxxx-xxxx-828efd6d49df/recovery/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:18:24Z&st=2023-03-05T17:18:24Z&spr=https,http&sig=VxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaXBmSAKm4%3D"

...

  1. "https://fxxxxxxxxxxxxxxxxxxx3aeb.file.core.windows.net/pvc-1a6f1c1b-xxxx-xxxx-xxxx-44ff485d707f/recovery/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:25:19Z&st=2023-03-05T17:25:19Z&spr=https,http&sig=vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGazWA%3D"

...

  1. --recursive=true

...

  1. Copy reprocessing folder from

...

  1. PROD to DR environment
    ./azcopy

...

  1. sync

...

  1. "https://[account].file.core.windows.net/[PVC]/reprocessing/?[SAS]"

...

  1. "https://[account].file.core.windows.net/[PVC]/reprocessing/?[SAS]"

...

  1. --recursive=true

...


  1. For

...

  1. Example:

...


  1. ./azcopy

...

  1. sync

...

  1. "https://fxxxxxxxxxxxxxxxxxxxxx1b6a.file.core.windows.net/pvc-e38eca50-xxxx-xxxx-xxxx-828efd6d49df/web/reprocessing/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:18:24Z&st=2023-03-05T17:18:24Z&spr=https,http&sig=VxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaXBmSAKm4%3D"

...

  1. "https://fxxxxxxxxxxxxxxxxxxx3aeb.file.core.windows.net/pvc-1a6f1c1b-xxxx-xxxx-xxxx-44ff485d707f/reprocessing/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:25:19Z&st=2023-03-05T17:25:19Z&spr=https,http&sig=vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGazWA%3D"

...

  1. --recursive=true

...

  1. Copy Rabbitmq PVC content from PROD to DR environment
    ./azcopy

...

  1. sync

...

  1. "https://[account].file.core.windows.net/[PVC]/?[SAS]"

...

  1. "https://[account].file.core.windows.net/[PVC]/?[SAS]"

...

  1. --recursive=true

...

  1. --mirror-mode=true

...


  1. For

...

  1. Example:

...


  1. ./azcopy

...

  1. sync

...

  1. "https://fxxxxxxxxxxxxxxxxxxxxx1b6a.file.core.windows.net/pvc-ef345e9d-xxxx-xxxx-xxxx-54e38de9cbd1/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:18:24Z&st=2023-03-05T17:18:24Z&spr=https,http&sig=VxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaXBmSAKm4%3D"

...

  1. "https://fxxxxxxxxxxxxxxxxxxx3aeb.file.core.windows.net/pvc-4a47fa22-xxxx-xxxx-xxxx-f6538dfff1a7/?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=2024-03-06T01:25:19Z&st=2023-03-05T17:25:19Z&spr=https,http&sig=vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGazWA%3D"

...

  1. --recursive=true

...

  1. --mirror-mode=true

...

  1. Scale up RabbitMQ statefulset in the DR environment
    kubectl

...

  1. scale

...

  1. --replicas=1

...

  1. statefulset

...

  1. <Release

...

  1. Name>-ac-rabbitmq

...

  1. -n

...

  1. <namespace>

...

  1. Scale up Listener in the DR environment
    kubectl

...

  1. scale

...

  1. --replicas=1

...

  1. deployment

...

  1. <Release

...

  1. Name>-ac-runtime

...

  1. -n

...

  1. <namespace>

...

  1. Resume Scheduler in the DR environment
    https://<webapp_Gateway_URL>/event/schedulerservice?_dc=1670999141899&query=Resume&page=1&start=0&limit=25

...

  1. Update DNS record to route all request to DR environment

Switching back from DR to PROD Environment

  1. Scale down Runtime and Listener deployments in the DR environment.

...

  1. Pause Scheduler in the DR environment

...

  1. Scale down Rabbit MQ statefulset in the DR environment

...

  1. Scale down Rabbit MQ statefulset in the PROD environment

...

  1. Copy web/repository folder from DR to PROD environment

...

  1. Copy recovery folder from DR to PROD environment

...

  1. Copy reprocessing folder from DR to PROD environment

...

  1. Copy Rabbitmq PVC content from DR to PROD environment

...

  1. Scale up RabbitMQ statefulset in the PROD environment.

...

  1. Scale up Listener in the PROD environment

...

  1. Resume Scheduler in the PROD environment

...

  1. Update DNS record to route all request to PROD environment

Using DR to recover from a failure

...