Giter Site home page Giter Site logo

microsoft / mcw-business-continuity-and-disaster-recovery Goto Github PK

View Code? Open in Web Editor NEW
74.0 69.0 96.0 62.67 MB

MCW Business continuity and disaster recovery

License: MIT License

PowerShell 12.30% C# 17.90% CSS 0.13% HTML 16.46% JavaScript 53.05% Shell 0.14% ASP.NET 0.03%

mcw-business-continuity-and-disaster-recovery's Introduction

This workshop is archived and is no longer being maintained. Content is read-only.

Business continuity and disaster recovery

Contoso Insurance, headquartered in Miami, is a multi-national corporation providing insurance solutions in North America, Europe, and Australia. Its products include accident and health insurance, life insurance, travel, home, and auto coverage. Contoso seeks to automate their backup and recovery of their solutions, not just individual components.

Contoso also wants to insure they have the right breadth and depth of continuity protection. In the case of a lights-out event, they want to be able to control how the systems failover.

Contoso's corporate data center in the US is in a hurricane-prone region, and they need a backup data center that mirrors the core functions they have here.

June 2020

Target audience

  • Infrastructure Architects
  • Cloud Solution Architects

Abstracts

Workshop

In this workshop, you will gain experience designing solutions using Azure business continuity and disaster recovery (BCDR) technologies.

Three different types of environments will be examined. The first will consist of on-premises VMs running applications that will be migrated to Azure IaaS. Next, Azure IaaS applications that need to be failed over from either on-premises to Azure, or between two Azure Regions. Finally, the use of automated failover technologies built into Azure PaaS services, App Service and SQL Database will be used for PaaS applications.

At the end of this workshop, you will be better able to leverage various Azure technologies together to build a complex and robust IaaS BCDR plan.

Whiteboard design session

In the Whiteboard Design Session (WDS), you will work in groups to design a solution using Azure business continuity and disaster recovery (BCDR) technologies. Your solution will consider three different types of environments. The first will consist of on-premises VMs running applications that will be migrated to Azure IaaS. Next, Azure IaaS applications that need to be failed over from either on-premises to Azure, or between two Azure Regions. Finally, the use of automated failover technologies built into Azure PaaS services, App Service, and SQL Database will be used for PaaS applications.

At the end of the whiteboard design session, you will be better able to design a solution that leverages various Azure technologies together to build a complex and robust IaaS BCDR plan.

Hands-on lab

In the hands-on lab, you will implement three different environments and use Azure BCDR technologies to achieve three distinct goals for each environment. These will include a migration to Azure, Azure region-to-region failover, and a PaaS implementation using BCDR technologies to ensure high availability of an application.

At the end of this hands-on lab, you will be better able to build a complex and robust IaaS BCDR solution.

Azure services and related products

  • Azure Site Recovery
  • Azure Automation
  • Azure Front Door
  • Azure SQL Server Always on Availability Groups
  • Azure App Services

Azure solutions

Business Continuity, Disaster Recovery

Related references

mcw-business-continuity-and-disaster-recovery's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mcw-business-continuity-and-disaster-recovery's Issues

Upate HTML files

June test/fix is QC'd and merged - please update HTML files to complete! ๐Ÿ‘

May 2019 Content Update

Hello,
This workshop is scheduled for a May 2019 update. Please give your suggested updates for SME review.

Thanks,
Dawnmarie

Header Image

The header image needs to be updated on the WDS trainer and student guide as well as the HOL step-by-step and unguided.

Exercise 1: Task 1: SQLVM1 and SQLVM3 deployed from BCDRIaaSPrimarySite.json file do not have RDP port allowed.

As per the lab guide. in Exercise 1: Task 1
, we are deploying BCDRIaaSPrimarySite.json file. This file will deploy resources out of which there are 2 Virtual Machines named- SQLVM1 and SQLVM3.

In Exercise 3: Task 2: Step 10, we are asked to RDP into both the VMs but RDP Port (3389) is not allowed in them as shown in the image below.

image

Can you please review this as soon as possible.

Thanks,
Seerat

Issue while deploying BcdrOnPrem template

In exercise 1 Task 2 while deploying BcdrOnPrem template custom script is getting failed , so as a workaround i tried setting the powershell version to tls1.2 and it worked

Enhancement: import contosoinsruance.bak using the portal

hi,
I am working through task 4 configure paas. The step requires importing the db locally and then 'deploy database to Azure'. Is the only reason to install sql express for this step? I was trying to work locally and instead attempted to import the database bak directly in through the azure portal. The import fails with an error File contains corrupted data. I think this is a much more straight forward step to importing the database and not having to go through the install of sql express.

https://github.com/microsoft/MCW-Business-continuity-and-disaster-recovery/blob/master/Hands-on%20lab/HOL%20step-by%20step%20-%20Business%20continuity%20and%20disaster%20recovery.md#task-4-configure-paas-for-region-to-region-failover

Cannot deploy PaaS environment

When I try to deploy the PaaS environment, it fails with "-Location 'East US 2' is not accepting creation of new Windows Azure SQL Database servers at this time." I've tried it in several other regions with the same error. I've also tried it using my Pay-As-You-Go subscription on a different tenant in case it was an issue with my MSDN subscription.

DeploymentFailed","message":"At least one resource deployment operation failed

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"BadRequest","message":"{\r\n "error": {\r\n "code": "InUseSubnetCannotBeDeleted",\r\n "message": "Subnet DATA is in use by /subscriptions/ed570a34-a090-4e9b-934b-1d201de1f7c4/resourceGroups/BCDRIaaSPrimarySite/providers/Microsoft.Network/loadBalancers/SQLAOGILB/frontendIPConfigurations/LoadBalancerFrontend and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet.",\r\n "details": []\r\n }\r\n}"}]}

IIS Website Not Running?

I got as far as task 68 (of "Task 2: Configure IaaS SQL Always On availability groups for region to region failover") and got stuck. Rather than seeing the Contoso Insurance website when I browse to the DNS name of the Azure Load Balancer Public IP, I got the default IIS page. I checked both WebVMs manually and both display this default page. I RDP to both Web VMs (1 and 2) and only see the default site running:

image

Enhancement: On-prem application should incorporate a database driven web app

The on-prem to azure example uses a simple php app that displays a simple web page. There does not appear to be any database involved or any 'state' that changes.

I suggest that for the on-prem to Azure example to be useful, it should use an application that relies on a back-end database (eg shopping cart app or something similar).

Azure Site Recovery UI and instructions change

In exercise 3, Azure Site Recovery instruction and screenshots needs to be updated. And in exercise3 task2 configure cloud witness failed with the error "The TLS version of the connection is not permitted on this storage account".

Failed Template Deployment using BCDROnPremPrimarySite.json

I get deployment failed while deploying template "BCDROnPremPrimarySite.json", with following details message:

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.","details":[{"code":"Conflict","message":"{\r\n "status": "Failed",\r\n "error": {\r\n "code": "ResourceDeploymentFailure",\r\n "message": "The resource operation completed with terminal provisioning state 'Failed'.",\r\n "details": [\r\n {\r\n "code": "VMExtensionProvisioningError",\r\n "message": "VM has reported a failure when processing extension 'HyperVHostConfig'. Error message: \"DSC Configuration 'Main' completed with error(s). Following are the first few: PowerShell DSC resource MSFT_ScriptResource failed to execute Set-TargetResource functionality with error message: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. The SendConfigurationApply function did not succeed.\"."\r\n }\r\n ]\r\n }\r\n}"}]}

cannot log on to linux vm in hyper v

I tried running the hyper v steps for the on prem to azrue ASR but the log in provided didn't work in the terminal from the hyperv VM. The account I am referring to is the mcwadmin account with the demo@pass123 password as instructed - I tested writing this out on the VM to make sure that any special characters were being written as expected - often keyboard or regional settings can afftec this between machines.

Is there somewhere in the template I can check this or edit/set it before the I do the deployment?

Verify links in HOLs

Folder and document names have been updated. Please check your HOL documents for links that use folder names in their path and make sure they are still valid and working.

Error when simulating failover

When I tried to simulate failover of BCDRIaaSPrimarySite, the following error occurred in Runbook.

"The EnableVMProtection property for the parameter Virtualnetwork is no longer supported. Setting this property has no impact. This property will be removed in a future release. Please remove it from your scripts"

Therefore the backend pool addresses of external load balancer were not changed. How can I fix this issue?

Retitle folders

HOL - Hands-on labs
WDS - Whiteboard design session
Please and thank you!

Missing the "Before hands on lab" preparation steps

Missing the Before hands on lab part, including the link to the templates that need to be downloaded to go through the HOL

In the Word doc, the steps are under the following titles:

Before the hands-on lab
Task 1: Create a virtual machine to execute the lab
Task 2: Download hands-on lab step by step support files to LABVM
Task 3: Install SQL Server Express on LABVM
Task 4: Create the resource groups

Exercise 1: Task 2 : BCDROnPremPrimarySite Template failing.

Exercise 1: Task 2 BCDROnPremPrimarySite.json template is failing with error message :

image

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.","details":[{"code":"Conflict","message":"{\r\n "status": "Failed",\r\n "error": {\r\n "code": "ResourceDeploymentFailure",\r\n "message": "The resource operation completed with terminal provisioning state 'Failed'.",\r\n "details": [\r\n {\r\n "code": "VMExtensionProvisioningError",\r\n "message": "VM has reported a failure when processing extension 'HyperVHostConfig'. Error message: \"DSC Configuration 'Main' completed with error(s). Following are the first few: 'OnPremVM' failed to start.\n\nNot enough memory in the system to start the virtual machine OnPremVM.\n\nCould not initialize memory: Ran out of memory (0x8007000E).\r\n\r\n'OnPremVM' failed to start. (Virtual machine ID DDCE84F5-4458-4D22-A5DE-DA0D4D6761FC)\n\nNot enough memory in the system to start the virtual machine OnPremVM with ram size 2048 megabytes. (Virtual machine ID DDCE84F5-4458-4D22-A5DE-DA0D4D6761FC)\n\n'OnPremVM' could not initialize memory: Ran out of memory (0x8007000E). (Virtual machine ID DDCE84F5-4458-4D22-A5DE-DA0D4D6761FC) The PowerShell DSC resource '[Script]ConfigureHyperV' with SourceInfo 'C:\\Packages\\Plugins\\Microsoft.Powershell.DSC\\2.77.0.0\\DSCWork\\HyperVHostConfig.0\\HyperVHostConfig.ps1::39::3::Script' threw one or more non-terminating errors while running the Set-TargetResource functionality. These errors are logged to the ETW channel called Microsoft-Windows-DSC/Operational. Refer to this channel for more details. The SendConfigurationApply function did not succeed.\"."\r\n }\r\n ]\r\n }\r\n}"}]}

Upgrade to VS'2019

This one still uses VS'2017, and still needs to be updated to VS'2019.

Be sure to test compatibility with VS'2019 when converting to make sure there aren't any compatibility issues.

Deployment failed - DNS record bcdrdc8675309.eastus2.cloudapp.azure.com is already used by another public IP

{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"BadRequest","message":"{\r\n "error": {\r\n "code": "DnsRecordInUse",\r\n "message": "DNS record bcdrdc8675309.eastus2.cloudapp.azure.com is already used by another public IP.",\r\n "details": []\r\n }\r\n}"},{"code":"BadRequest","message":"{\r\n "error": {\r\n "code": "InUseSubnetCannotBeDeleted",\r\n "message": "Subnet DATA is in use by /subscriptions/ed570a34-a090-4e9b-934b-1d201de1f7c4/resourceGroups/BCDRIaaSPrimarySite/providers/Microsoft.Network/loadBalancers/SQLAOGILB/frontendIPConfigurations/LoadBalancerFrontend and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet.",\r\n "details": []\r\n }\r\n}"}]}

Enhancement: On-prem to Azure exercise should failover, not migrate

This workshop is about Business continuity and disaster recovery. The on-prem scenario, however, migrates the on-prem VM to Azure, rather than failing it over and then failing back (like the other exercises.)

As this is a valid use case for many customers, I think the workshop should be refactored to cover failover & failback scenario, rather than migration,

Update March 2020

These are the changes made for the March 2020 Update to this MCW using the Update-March-2020 branch:

  • Move "OnPremLinuxVM.zip" file into the Github repo; in order to do this Git LFS (Large File System) needed to be enabled on the GitHub repo. Related to Issue #31
  • Update the Azure SQL Database created for the PaaS environment to use Zone Redundant pricing tier for higher availability. Related to Issue #26
  • Changed the wording and UI screenshots for specifying a Failover with ASR rather than a Migrate. Related to Issue #32
  • Updated a couple VM sizes to be larger, to reduce script extension timeout errors when deploying templates. Affected ARM Templates: BCDRIaaSPrimarySite.json, BCDRIaaSSecondarySite.json

FYI, Issue #30 to Upgrade to VS'2019 was actually done previously, so I closed out that issue.

Iaas template failing

while deploying iaas template we are facing issue it is throwing error as:
Deployment validation failed.
Additional details from the underlying API that might be helpful: The template deployment 'Microsoft.Template' is not valid according to the validation procedure.

Unnecessary steps in Exercise 3 Task 4

In Exercise 3, Task 4:

Steps 46-51 are unnecessary and somewhat misleading. Instead of the following:
46. Close Visual Studio
47. Start Visual Studio
48. Re-open the ContosoInsurance.sln Solution
49. Right-click the ContosoInsurance Application and select Publish
50. On the Publish screen select Delete profile
51. Select Microsoft Azure App Service and then Select Existing and finally Publish

We can do the following:
46. Right-click the ContosoInsurance Application and select Publish
47. On the publish screen click on Create new profile
vs create new profile

Then continue with the rest of the flow.

This will allow us to have the publishing profiles for the primary and the secondary sites side by side instead of deleting one to create the other.
vs 2 profiles

Template Deployment Errors

HOL\Demployments* templates cannot validated

Deployment validation failed.
Additional details from the underlying API that might be helpful: The template deployment 'Microsoft.Template' is not valid according to the validation procedure.

Exercise 1 Task 1

In Exercise 1 task 1 , while deploying BCDRIAAS template it is getting failed , when i checked in logs it was throwing error as System.OutOfMemoryException it's due to low memory so when i change size of sqlvms from standard f2s to to standard D2s_v3 it worked

Failover scripts reference dropbox?

The failover script used in exercise 1, task 2, steps 17-18 pulls four failover scripts from a dropbox repository. Not clear to me why these required scripts are stored in Dropbox rather than directly in this github repo (or at a minimum, in an Azure Storage Account).

Code in question:

$ASRFailoverScriptPath = "https://www.dropbox.com/s/q3tb6h2u1qqzqx8/ASRFailOver.ps1?dl=1"
$ASRFailoverScriptPathSQLVM1 = "https://www.dropbox.com/s/t3f2wx9rzlwgkbx/ASRFailOverSQLVM1.ps1?dl=1"
$ASRFailoverScriptPathSQLVM2 = "https://www.dropbox.com/s/cfr2v9alyslct8c/ASRFailOverSQLVM2.ps1?dl=1"
$ASRFailBackScriptPath = "https://www.dropbox.com/s/szq4zkq75xa3ue1/ASRFailBack.ps1?dl=1"

I suggest that these scripts be migrated into this repo and managed along with the rest of the code.

Error creating BCDRIaaSPrimarySite (Core Quota Limit)

When attempting to create the BCDRIaaSPrimarySite deployment the following error is displayed:

This operation couldn't be completed as it results in exceeding quota limit of Core. Maximum allowed: 10, Current in use: 4, Additional requested: 10.

Note: This particular version appeared when I attempted to re-try this deployment after it failed the first time with a similar error, the 4 cores present are from other deployments in this lab series.

I am using an Azure Pass for this lab, it appears that the number of cores that they will allow is limited to 10, though much of the documentation for this says it should be a limit of 20. Has the quota limit on this resource changed recently or am I doing something wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.