Git Product home page Git Product logo

mcw-linux-lift-and-shift's Introduction

Linux lift and shift

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

Fabrikam Global Manufacturing & Operations Corporation, based in Japan, provides product design, manufacturing, and repair services of domestic individual or industrial electronics, as well as global support for their customers.

To avoid any impact from restructured support operations, executives decided to migrate on-premises customer support systems into Microsoft Azure. The hope is that running Linux VMs on Azure should enable Fabrikam to lower costs while sustaining or even increasing availability of the application.

Target audience

  • Infrastructure Architect
  • Application Developer

Abstract

Workshop

In this workshop, you will learn how to migrate a Linux based application to the Azure Cloud. This will include the use of Azure IaaS Virtual Machines and Virtual Machine Scale Sets. Azure platform as a service (PaaS) will also be leveraged including Azure App Services (Web App), and Azure Database for MySQL.

By the end of this workshop, you will have learned to leverage Azure Resource Manager templates, the Linux custom script extension, GitHub and a Linux Docker Container in the App Service to lift and shift open source applications to Azure

Whiteboard design session

In this whiteboard design session, you will learn how to migrate an existing Linux based deployment into Microsoft Azure, and configure it for availability, connectivity, monitoring and general best practices using Azure Virtual Machines (VMs), Virtual Machine Scale Sets and Azure Web Apps with Linux.

By the end of the whiteboard design session, you will be better able to configure Linux VMs and VM Scale Sets in Azure for availability, storage, and connectivity. You will also be better prepared to migrate data from on-premises to Azure, establish connectivity between multiple regions and on-premises to Azure. You will also learn how to deploy and scale applications to Azure Web Apps on Linux.

Hands-on lab

In this hands-on lab, you will migrate an on-premises based help desk application called OsTicket, to Azure. This will be a two-phase project to lift-and-shift the application into Azure IaaS and then migrate it to Azure PaaS. The application is Linux based using Apache, PHP and MySQL (LAMP). During the process of these phases, you will ensure zero data loss.

By the end of the hands-on lab you will be better able to configure Linux VMs and VM Scale Sets in Azure for availability, storage, and connectivity. You will also be better prepared to migrate data from on-premises to Azure, establish connectivity between multiple regions and on-premises to Azure. You will also learn how to deploy and scale applications to Azure Web Apps on Linux.

Azure services and related products

  • Azure VMs
  • Azure Portal
  • Azure CLI
  • Azure App Services on Linux
  • Azure Database for MySQL
  • Azure Resource Manager Templates
  • MySQL Workbench

Related references

mcw-linux-lift-and-shift's People

Contributors

dawnmariedesjardins avatar hopero929 avatar microsoftopensource avatar msftgits avatar mwasham avatar paulopsgility avatar waltermyersiii avatar

Stargazers

 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

mcw-linux-lift-and-shift's Issues

HOL - unguided

Lines 364 & 368:

Alt-text reads: At this time, we are unable to capture all of the information in the Github window. Future versions of this course should address this.

Problem with custom script extension for linux during OnPrem VM deployment

Hi, I'm CSA based in Brazil and we would like to use this content in the next partner bootcamp for OSS track.
I testing the HOL lab and I got an error during the template deployment for the OnPrem VM:
az group deployment create --name OsTicketOnPremRG --resource-group OsTicketOnPremRG --template-uri "https://cloudworkshop.blob.core.windows.net/linux-lift-shift/onpremvmdeploy.json"

Deployment failed. Correlation ID: 88c45ed5-f624-48e8-a705-5b36c8c5604e. {
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "VMExtensionProvisioningError",
"message": "VM has reported a failure when processing extension 'CustomSciptExtension1'. Error message: "Command returned an error.\n---stdout---\n 404 Not Found\nErr:39 http://security.ubuntu.com/ubuntu xenial-security/main amd64 php7.0-mysql amd64 7.0.30-0ubuntu0.16.04.1\n 404 Not Found\nFetched 21.0 MB in 1s (13.2 MB/s)\nReading package lists...\nBuilding dependency tree...\nReading state information...\nSuggested packages:\n zip\nThe following NEW packages will be installed:\n unzip\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 158 kB of archives.\nAfter this operation, 530 kB of additional disk space will be used.\nGet:1 http://azure.archive.ubuntu.com/ubuntu xenial/main amd64 unzip amd64 6.0-20ubuntu1 [158 kB]\nFetched 158 kB in 0s (0 B/s)\nSelecting previously unselected package unzip.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 55052 files and directories currently installed.)\r\nPreparing to unpack .../unzip_6.0-20ubuntu1_amd64.deb ...\r\nUnpacking unzip (6.0-20ubuntu1) ...\r\nProcessing triggers for mime-support (3.59ubuntu1) ...\r\nProcessing triggers for man-db (2.7.5-1) ...\r\nSetting up unzip (6.0-20ubuntu1) ...\r\nHit:1 http://azure.archive.ubuntu.com/ubuntu xenial InRelease\nGet:2 http://azure.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]\nGet:3 http://azure.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]\nGet:4 http://azure.archive.ubuntu.com/ubuntu xenial/main Sources [868 kB]\nGet:5 http://azure.archive.ubuntu.com/ubuntu xenial/restricted Sources [4,808 B]\nGet:6 http://azure.archive.ubuntu.com/ubuntu xenial/universe Sources [7,728 kB]\nGet:7 http://azure.archive.ubuntu.com/ubuntu xenial/multiverse Sources [179 kB]\nGet:8 http://azure.archive.ubuntu.com/ubuntu xenial-updates/main Sources [321 kB]\nGet:9 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]\nGet:10 http://azure.archive.ubuntu.com/ubuntu xenial-updates/restricted Sources [2,528 B]\nGet:11 http://azure.archive.ubuntu.com/ubuntu xenial-updates/universe Sources [222 kB]\nGet:12 http://azure.archive.ubuntu.com/ubuntu xenial-updates/multiverse Sources [8,388 B]\nGet:13 http://azure.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [849 kB]\nGet:14 http://azure.archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [347 kB]\nGet:15 http://azure.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [691 kB]\nGet:16 http://azure.archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [279 kB]\nGet:17 http://azure.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [16.4 kB]\nGet:18 http://azure.archive.ubuntu.com/ubuntu xenial-backports/main Sources [4,488 B]\nGet:19 http://azure.archive.ubuntu.com/ubuntu xenial-backports/universe Sources [6,740 B]\nGet:20 http://azure.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7,568 B]\nGet:21 http://azure.archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [4,048 B]\nGet:22 http://security.ubuntu.com/ubuntu xenial-security/main Sources [134 kB]\nGet:23 http://security.ubuntu.com/ubuntu xenial-security/restricted Sources [2,116 B]\nGet:24 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [75.8 kB]\nGet:25 http://security.ubuntu.com/ubuntu xenial-security/multiverse Sources [2,088 B]\nGet:26 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [556 kB]\nGet:27 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [235 kB]\nGet:28 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [379 kB]\nGet:29 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [144 kB]\nFetched 13.4 MB in 2s (5,352 kB/s)\nReading package lists...\nArchive: osticket.zip\n\n---errout---\n.......... .......... .......... .......... .......... 71% 132M 0s\n 6000K .......... .......... .......... .......... .......... 72% 193M 0s\n 6050K .......... .......... .......... .......... .......... 72% 224M 0s\n 6100K .......... .......... .......... .......... .......... 73% 200M 0s\n 6150K .......... .......... .......... .......... .......... 73% 126M 0s\n 6200K .......... .......... .......... .......... .......... 74% 196M 0s\n 6250K .......... .......... .......... .......... .......... 75% 300M 0s\n 6300K .......... .......... .......... .......... .......... 75% 119M 0s\n 6350K .......... .......... .......... .......... .......... 76% 167M 0s\n 6400K .......... .......... .......... .......... .......... 76% 233M 0s\n 6450K .......... .......... .......... .......... .......... 77% 185M 0s\n 6500K .......... .......... .......... .......... .......... 78% 153M 0s\n 6550K .......... .......... .......... .......... .......... 78% 160M 0s\n 6600K .......... .......... .......... .......... .......... 79% 186M 0s\n 6650K .......... .......... .......... .......... .......... 79% 223M 0s\n 6700K .......... .......... .......... .......... .......... 80% 164M 0s\n 6750K .......... .......... .......... .......... .......... 80% 177M 0s\n 6800K .......... .......... .......... .......... .......... 81% 225M 0s\n 6850K .......... .......... .......... .......... .......... 82% 230M 0s\n 6900K .......... .......... .......... .......... .......... 82% 152M 0s\n 6950K .......... .......... .......... .......... .......... 83% 152M 0s\n 7000K .......... .......... .......... .......... .......... 83% 189M 0s\n 7050K .......... .......... .......... .......... .......... 84% 158M 0s\n 7100K .......... .......... .......... .......... .......... 85% 148M 0s\n 7150K .......... .......... .......... .......... .......... 85% 222M 0s\n 7200K .......... .......... .......... .......... .......... 86% 215M 0s\n 7250K .......... .......... .......... .......... .......... 86% 148M 0s\n 7300K .......... .......... .......... .......... .......... 87% 199M 0s\n 7350K .......... .......... .......... .......... .......... 88% 170M 0s\n 7400K .......... .......... .......... .......... .......... 88% 142M 0s\n 7450K .......... .......... .......... .......... .......... 89% 267M 0s\n 7500K .......... .......... .......... .......... .......... 89% 252M 0s\n 7550K .......... .......... .......... .......... .......... 90% 170M 0s\n 7600K .......... .......... .......... .......... .......... 91% 151M 0s\n 7650K .......... .......... .......... .......... .......... 91% 157M 0s\n 7700K .......... .......... .......... .......... .......... 92% 224M 0s\n 7750K .......... .......... .......... .......... .......... 92% 199M 0s\n 7800K .......... .......... .......... .......... .......... 93% 173M 0s\n 7850K .......... .......... .......... .......... .......... 94% 175M 0s\n 7900K .......... .......... .......... .......... .......... 94% 233M 0s\n 7950K .......... .......... .......... .......... .......... 95% 189M 0s\n 8000K .......... .......... .......... .......... .......... 95% 204M 0s\n 8050K .......... .......... .......... .......... .......... 96% 277M 0s\n 8100K .......... .......... .......... .......... .......... 97% 321M 0s\n 8150K .......... .......... .......... .......... .......... 97% 283M 0s\n 8200K .......... .......... .......... .......... .......... 98% 329M 0s\n 8250K .......... .......... .......... .......... .......... 98% 229M 0s\n 8300K .......... .......... .......... .......... .......... 99% 290M 0s\n 8350K .......... .......... .......... .......... ....... 100% 284M=0.1s\n\n2018-09-26 18:56:38 (70.6 MB/s) - osticket.zip saved [8598701/8598701]\n\ncheckdir: cannot create extraction directory: /var/www/html\n No such file or directory\nchown: cannot access '/var/www/html': No such file or directory\nmv: cannot stat '/var/www/html/index.html': No such file or directory\nFailed to restart apache2.service: Unit apache2.service not found.\n\n"."
}
]
}
}

From what I found out it seems that line:
sudo apt-get install -y lamp-server^
is not working and installing the required components. When I manually run the script after the extension error I was able to successfully start the application.

HOL-Ex3-Task1-Step3 - Azure CLI command error

I got the following error during Ex3, task 1 step 3 of HOL lab:
C:\Users\rfonseca>az mysql server create --resource-group OsTicketPaaSRG --name foca-osticketsrv01 --location "West US" --admin-user demouser --admin-password demo@pass123 --sku-name B_Gen4_1 --storage-size 51200 --ssl-enforcement Disabled
az mysql server create: error: unrecognized argument: --sku-name B_Gen4_1

I managed to successfully deploy using this command:

C:\Users\rfonseca>az mysql server create --resource-group OsTicketPaaSRG --name foca-osticketsrv01 --location "West US" --admin-user demouser --admin-password demo@pass123 --performance-tier Basic --storage-size 51200 --ssl-enforcement Disabled

HOL - unguided

Line 272:
When this peering connection was established the ScaleSet can now address the …..?
Please complete the text.

Before the HOL

I updated header & license info from the current template but the document needs a TOC please. I don't know how to format those yet.

Before the HOL

Task 3 - Two steps. Is that correct? I added the "you should follow all steps provided..." sentence after step 2 but it ends so abruptly I wanted you to look and make sure there's nothing missing please.

Line 148 - In .md, the code reads: … into the directory C:\HOL
When looking at the GitHub repo, it shows up with only one back slash - C:\HOL. Is that okay?

HOL - step-by-step & unguided

Abstract and overview sections say - In this step-by-step
It doesn't fit in the unguided version, can we just change all to "in this lab" so that they work for all?

Content update scheduled

This workshop is scheduled for a November update. Please review the contents of this repo and comment on this issue with suggested updates. All suggestions must be added to this issue by EOD November 12, 2018.

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.