In this article

Contoso migration: Overview

10/11/2018

7 minutes to read

Contributors

In this article

This article demonstrates how the fictitious organization Contoso migrates on-premises infrastructure to the Microsoft Azure cloud.

This document is the first in a series of articles that show how the fictitious company Contoso migrates to Azure. The series includes information and scenarios that illustrate how to set up a migration of infrastructure, and run different types of migrations. Scenarios grow in complexity, and we'll add additional articles over time. The articles show how the Contoso company completes its migration mission, but pointers for general reading and specific instructions are provided throughout.

Introduction

Azure provides access to a comprehensive set of cloud services. As developers and IT professionals, you can use these services to build, deploy, and manage applications on a range of tools and frameworks, through a global network of datacenters. As your business faces challenges associated with the digital shift, the Azure cloud helps you to figure out how to optimize resources and operations, engage with your customers and employees, and transform your products.

However, Azure recognizes that even with all the advantages that the cloud provides in terms of speed and flexibility, minimized costs, performance, and reliability, many organizations are going to need to run on-premises datacenters for some time to come. In response to cloud adoption barriers, Azure provides a hybrid cloud strategy that builds bridges between your on-premises datacenters, and the Azure public cloud. For example, using Azure cloud resources like Azure Backup to protect on-premises resources, or using Azure analytics to gain insights into on-premises workloads.

As part of the hybrid cloud strategy, Azure provides growing solutions for migrating on-premises apps and workloads to the cloud. With simple steps, you can comprehensively assess your on-premises resources to figure out how they'll run in the Azure cloud. Then, with a deep assessment in hand, you can confidently migrate resources to Azure. When resources are up and running in Azure, you can optimize them to retain and improve access, flexibility, security, and reliability.

Migration strategies

Strategies for migration to the cloud fall into four broad categories: rehost, refactor, rearchitect, or rebuild. The strategy you adopt depends upon your business drivers, and migration goals. You might adopt multiple strategies. For example, you could choose to rehost (lift-and-shift) simple apps, or apps that aren't critical to your business, but rearchitect those that are more complex and business-critical. Let's look at the strategies.

Strategy

Definition

When to use

Rehost

Often referred to as a "lift-and-shift" migration. This option doesn't require code changes, and let's you migrate your existing apps to Azure quickly. Each app is migrated as is, to reap the benefits of the cloud, without the risk and cost associated with code changes.

When you need to move apps quickly to the cloud.

When you want to move an app without modifying it.

When your apps are architected so that they can leverage Azure IaaS scalability after migration.

When apps are important to your business, but you don't need immediate changes to app capabilities.

Refactor

Often referred to as “repackaging,” refactoring requires minimal changes to apps, so that they can connect to Azure PaaS, and use cloud offerings.

For example, you could migrate existing apps to Azure App Service or Azure Kubernetes Service (AKS).

Or, you could refactor relational and non-relational databases into options such as Azure SQL Database Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.

If your app can easily be repackaged to work in Azure.

If you want to apply innovative DevOps practices provided by Azure, or you're thinking about DevOps using a container strategy for workloads.

For refactoring, you need to think about the portability of your existing code base, and available development skills.

Rearchitect

Rearchitecting for migration focuses on modifying and extending app functionality and the code base to optimize the app architecture for cloud scalability.

For example, you could break down a monolithic application into a group of microservices that work together and scale easily.

Or, you could rearchitect relational and non-relational databases to a fully managed DBaaS solutions, such as Azure SQL Database Managed Instance, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Cosmos DB.

When your apps need major revisions to incorporate new capabilities, or to work effectively on a cloud platform.

When you want to use existing application investments, meet scalability requirements, apply innovative Azure DevOps practices, and minimize use of virtual machines.

Rebuild

Rebuild takes things a step further by rebuilding an app from scratch using Azure cloud technologies.

When you want rapid development, and existing apps have limited functionality and lifespan.

When you're ready to expedite business innovation (including DevOps practices provided by Azure), build new applications using cloud-native technologies, and take advantage of advancements in AI, Blockchain, and IoT.

Migration articles

The articles in the series are summarized in the table below.

Each migration scenario is driven by slightly different business goals that determine the migration strategy.

For each deployment scenario, we provide information about business drivers and goals, a proposed architecture, steps to perform the migration, and recommendation for cleanup and next steps after migration is complete.

Article

Details

Status

Article 1: Overview

Overview of the article series, Contoso's migration strategy, and the sample apps that are used in the series.

Contoso migrates the SmartHotel360 app. Contoso uses Site Recovery to migrate the app VMs. It uses the Database Migration Service to migrate the app database to a SQL Server cluster that's protected by an AlwaysOn availability group.

After trying out migration combinations, Contoso prepares to scale to a full migration to Azure.

Available

In this article Contoso sets up all the infrastructure elements it needs to complete all migration scenarios.

Demo apps

The articles use two demo apps - SmartHotel360, and osTicket.

SmartHotel360: This app was developed by Microsoft as a test app that you can use when working with Azure. It's provided as open source and you can download it from GitHub. It's an ASP.NET app connected to a SQL Server database. Currently the app is on two VMware VMs running Windows Server 2008 R2, and SQL Server 2008 R2. The app VMs are hosted on-premises and managed by vCenter Server.

osTicket: An open-source service desk ticketing app that runs on Linux. You can download it from GitHub. Currently the app is on two VMware VMs running Ubuntu 16.04 LTS, using Apache 2, PHP 7.0, and MySQL 5.7

Next steps

Learn how Contoso sets up an on-premises and Azure infrastructure to prepare for migration.

Feedback

We'd love to hear your thoughts. Choose the type you'd like to provide: