<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Hybrid Cloud Best Practices</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/hybridcloudbp/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/feed.xml</link>
    <description>Technical blog about hybrid cloud scenarios – Microsoft Azure, Service Providers and Private Cloud.</description>
    <lastBuildDate>Tue, 27 Nov 2018 23:22:42 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>SQL Server license flexibility for CSP Partners</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/sql-server-license-flexibility-for-csp-partners</link>
      <pubDate>Tue, 27 Nov 2018 22:48:20 GMT</pubDate>
      <dc:creator><![CDATA[Rob Davies msft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=7935</guid>
      <description><![CDATA[One of the great benefits of Azure is the ability to achieve significant cost savings with the Azure...]]></description>
      <content:encoded><![CDATA[<div><span>One of the great benefits of Azure is the ability to achieve significant cost savings with the <a href="https://azure.microsoft.com/en-us/pricing/hybrid-benefit/">Azure Hybrid Benefit (AHB)</a>.  By bringing existing licenses for Windows Server or SQL Server, Partners can capture significant cost savings.</span></div>
<br />
<div></div>
<div><span>Partners can purchase 1 or 3 year licenses for SQL Server, via CSP Software Subscriptions.  This gives predictable pricing &amp; cost savings over per-hour PAYG billing - allowing you to pick the right licensing model for your customers.  We detailed how to purchase CSP Software Subscriptions<a href="https://blogs.technet.microsoft.com/hybridcloudbp/2018/08/08/moving-windows-server-and-sql-server-licenses-from-spla-to-csp/"> in an earlier blog</a>. </span></div>
<div></div>
<h2><span>Azure Hybrid Benefit for SQL Server on Azure Virtual Machines</span></h2>
<div><span>This week, we announced new features for <a href="https://azure.microsoft.com/en-us/blog/azure-hybrid-benefit-for-sql-server-on-azure-virtual-machines/">SQL Server on a VM</a>, which makes it even easier to deploy &amp; manage SQL Server on an Azure VM.  </span></div>
<div></div>
<br />
<div><span>Previously, if partners wanted to use Bring-Your-Own-License (BYOL) for SQL Server on an Azure VM, they would have to deploy a Windows Server VM, install and configure SQL Server themselves.  The BYOL image of SQL Server on a VM, is not available in the Azure Marketplace for CSP Subscriptions.</span></div>
<div></div>
<h2><span>Benefits for CSP Partners</span></h2>
<div><span>Partners can now deploy PAYG SQL Server on a VM from the Azure Marketplace, then swap it to use an AHB license.  This provides the flexibility to select the right license type for your customers. </span></div>
<div></div>
<br />
<div><span>The ability to change the license type is available on SQL Server PAYG VMs, which are deployed via the Azure marketplace.  This means Partners no longer have to manually install &amp; configure SQL Servers when wanting to bring-your-own-licenses.</span></div>
<div></div>
<br />
<div><span>SQL Server on a VM, from the Azure Marketplace, also fully automates SQL Backup, Patching &amp; integrates with Azure Key Vault, via the <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-agent-extension">SQL Server Agent Extension</a>.  This means Partners have less VM management Vs. manually installing &amp; configuring SQL Server.
</span></div>
<div></div>
<br />
<div><strong>Remember</strong>! End-Of-Support is approaching for Windows &amp; SQL Server 2008 &amp; 2008 R2.  This is a great opportunity to evaluate customers' SQL estate &amp; either migrate or modernize - <a href="https://blogs.technet.microsoft.com/hybridcloudbp/2018/08/27/migrate-windows-server-sql-server-2008-to-azure/">more info on this in an earlier blog</a>.</div>
<h2><span>SQL Managed Instance</span></h2>
<div><span>When migrating customers to Azure, Partners should always consider which data solution is the right fit for their customers.  Rather than using SQL Server on a VM, Partners should consider if Azure SQL Managed Instance is appropriate.</span></div>
<div></div>
<br />
<div><span>SQL Managed Instance gives nearly all the features &amp; compatibility of SQL Server, within a fully managed environment, with no VMs to update, configure or manage.  For more information see our <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-paas-vs-sql-server-iaas">guide for picking the right SQL option</a> and our <a href="https://blogs.technet.microsoft.com/hybridcloudbp/2018/11/02/migration-from-sql-server-to-azure-sql-database-managed-instance/">SQL MI Migration guide</a>.
</span></div>
<div></div>
<h2>Next Steps</h2>
<span>This ability is provided by the new Microsoft. SqlVirtualMachine Resource Provider, which is available in all CSP subscriptions today.  </span>
<ol>
 	<li><span>Deploy SQL on a VM from the Azure Marketplace, such as <a href="https://portal.azure.com/#create/Microsoft.SQLServer2016SP1EnterpriseWindowsServer2016-ARM">SQL Server 2016 SP1 Enterprise on Windows Server 2016</a></span></li>
 	<li><span>Once deployed, use PowerShell to switch the VM from PAYG to AHB licensing</span></li>
</ol>
<span>Get started &amp; read about this capability here: <a href="https://azure.microsoft.com/en-us/blog/azure-hybrid-benefit-for-sql-server-on-azure-virtual-machines/">https://azure.microsoft.com/en-us/blog/azure-hybrid-benefit-for-sql-server-on-azure-virtual-machines/</a>.</span>]]></content:encoded>
    </item>
    <item>
      <title>Migration from SQL Server to Azure SQL Database Managed Instance</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/migration-from-sql-server-to-azure-sql-database-managed-instance</link>
      <pubDate>Fri, 02 Nov 2018 09:45:10 GMT</pubDate>
      <dc:creator><![CDATA[Kirill Kotlyarenko [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=7335</guid>
      <description><![CDATA[Today we'll review how you can migrate databases, running on SQL Server, to a new Azure SQL Database...]]></description>
      <content:encoded><![CDATA[Today we'll review how you can migrate databases, running on SQL Server, to a new <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance">Azure SQL Database Managed Instance</a>.

Azure SQL Database Managed Instance (aka "SQL MI") is a new deployment model of Azure SQL Database, providing near 100% compatibility with SQL Server database engine with benefits of PaaS. So if you think about migrating your SQL Server databases to the public cloud - you definitely should consider SQL MI as the first option. Especially if you still use SQL Server 2008, which will reach <a href="https://blogs.technet.microsoft.com/hybridcloudbp/2018/08/27/migrate-windows-server-sql-server-2008-to-azure/">end of support</a> in less than a year.

SQL MI is a special version of SQL Server, deployed on Azure infrastructure and managed by Microsoft. But since SQL Server instance is dedicated for your needs and not shared with any other customers, the list of differences between SQL MI and regular SQL Server that you use is way shorter comparing to other Database-as-a-Service offerings, available on the market today.

Today you'll see how you can migrate your workload from existing SQL Server to SQL MI with minimal changes on the workload level.
<h1>Preparation</h1>
Migration of SQL Server databases to Azure SQL Database Managed Instance consists of the following steps:
<ol>
 	<li>Perform an assessment using <a href="https://docs.microsoft.com/en-us/sql/dma/dma-overview?view=sql-server-2017">Data Migration Assistant</a> (DMA). DMA is a light-weight tool that you can run inside your environment to analyze if your current SQL Server databases are compatible with SQL MI.</li>
 	<li>Decide how your app <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-connect-app">will connect to SQL MI</a> after the migration. Keeping front end much closer to back end as possible is a best practice, so if you migrate the database from on-prem SQL Server to SQL MI, consider also migrating front end server to Azure VM or Azure App Service. For example, you can migrate front end server and on-prem SQL Server to Azure together using <a href="https://azure.microsoft.com/en-us/services/azure-migrate/">Azure Migrate</a> or another lift&amp;shift tool, and then migrate databases from SQL Server inside Azure VM to SQL MI.</li>
 	<li>Create new SQL MI through Azure Portal. Deployment of the first SQL MI instance takes up to 6 hours, so consider doing this first. Don’t worry, deployments of additional instances take less than an hour.</li>
 	<li>Create new Azure Database Migration (DMS) instance. DMS is a free service that supports migrations of different databases to Azure database offerings. It can migrate MySQL, PostgreSQL, MariaDB databases to Azure Database for MySQL/PostgreSQL/MariaDB, and it also supports SQL Server migrations, including SQL MI.</li>
 	<li>Connect DMS to the source SQL Server and to target SQL MI.</li>
 	<li>Perform the migration (online or offline).</li>
 	<li>Change the connection string in the app to direct it to SQL MI host name.</li>
</ol>
Important aspects of SQL MI:
<ol>
 	<li>SQL MI is based on SQL Server 2017 Enterprise Edition, which has backwards compatibility with <b>SQL Server 2008 and newer.</b> But what's very important - you need to know what is the latest supported <a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-2017">compatibility level</a> of the app that is using SQL Server - a number from 80 to 150. Each version of SQL Server introduces a new set of features and changes, and to ensure that app is using T-SQL queries with the right syntax and invoked stored procedures in the right way, there is a concept of compatibility levels. SQL Server 2000 has default compatibility level 80, and each next version of SQL Server has +10 compatibility by default (up to 150 for SQL Server 2019). For backwards compatibility each new SQL Server supports compatibility levels of older SQL Server versions. SQL Server 2017 supports compatibility levels from 100 (default for SQL Server 2008) to 140 (default for SQL Server 2017). So if you app requires compatibility level 100 (default for SQL Server 2008), and you use SQL Server 2014 - you can safely move to SQL MI. But if you use an app with compatibility level 80, running on SQL Server 2008 (which supported that compatibility level, which is default for SQL Server 2000), you won't be able to move it to SQL MI since it supports compatibility levels 100 and newer. You may face such situation if you have very old workloads, which were created a decade ago and hasn't been updated since then. You can an upgrade from compatibility level 90 to 100 though using in-place upgrade, but ensure to check the <a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-2017#differences-between-compatibility-level-90-and-level-100">differences between compatibility level 90 and 100</a> to ensure that it won't break the app.</li>
 	<li>SQL MI is a SQL Server <b>database engine</b>. While it includes SQL Server Agent, it doesn't include other components of SQL Server product like:
<ol>
 	<li>SQL Server Reporting Services (SSRS) - there is no alternative to traditional SSRS paginated reports in Azure except running SQL Server inside a VM. But if you've already switched from paginated reports to PowerBI-format reports, it won’t be a problem for you to move those reports to PowerBI.</li>
 	<li>SQL Server Analysis Services (SSAS) - Azure provides PaaS solution based on SSAS - <a href="https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview">Azure Analysis Services</a>. You can use it as an alternative to existing SSAS. SSAS has <a href="https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models/compatibility-level-for-tabular-models-in-analysis-services?view=sql-server-2017">its own compatibility levels</a>, and Azure Analysis Services supports 1200 and newer (SQL Server 2016+)</li>
 	<li>SQL Server Integration Services (SSIS) - if your app relies on SSIS, you can deploy it in <a href="https://docs.microsoft.com/en-us/azure/data-factory/tutorial-deploy-ssis-packages-azure">Azure Data Factory</a>.</li>
</ol>
</li>
 	<li>Check <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-connect-app">this article</a> for connectivity options between your app and SQL MI. Important to remember:
<ol>
 	<li>SQL MI requires a new subnet inside new or existing vNet that conforms to <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-vnet-configuration#requirements">specific requirements</a>. If you'll decide to create a new vNet during SQL MI deployment on Azure Portal, it will create a new vNet with 10.0.0.0/16 address space and 10.0.0.0/24 subnet. SQL MI default cluster IP is 10.0.0.254. If your existing SQL Server environments is in 192.168.x.x address space or any other outside 10.x.x.x range, then you can leave it as is. But you already use 10.x.x.x address space, you won't be able to tie existing network with SQL MI vNet due to conflicting address spaces. In this case you should consider creating a new vNet with all required rules applied using the <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-vnet-configuration#create-a-new-virtual-network-for-a-managed-instance">following script</a>.</li>
 	<li>SQL MI can't be published to the Internet and it can't be accessed by IP directly. It has a private IP assigned (10.0.0.254 by default) inside Azure vNet and has a publicly resolvable host name in a form <i>&lt;mi-name&gt;.&lt;unique-id&gt;.database.windows.net</i>. But private IP doesn’t belong to SQL MI - it belongs to internal load balancer that directs traffic to the Managed Instance Gateway (GW). As multiple Managed Instances can run inside the same cluster on the same IP, GW uses Managed Instance host name (<i>&lt;mi-name&gt;.&lt;unique-id&gt;.database.windows.net</i>) to redirect traffic to the correct SQL Engine service. Check <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-connectivity-architecture#virtual-cluster-connectivity-architecture">here</a> for more details. For you it means that app should connect to SQL MI using a specific host name. If you'll try to connect directly using private IP, GW won't accept the connection since it won't know to which instance do you want to connect.</li>
 	<li>Comment above means that you will need to change the connection string on the app level and switch your app from existing SQL Server IP/FQDN to SQL MI hostname. Trick with modifying <i>hosts </i>file won't work, since you can't access SQL MI directly by IP. Adding an ability to connect to SQL MI through DNS CNAME (and leaving the connection string as-is) is in the roadmap for future SQL MI versions.</li>
 	<li>SQL MI doesn't support connectivity through <a href="https://msdn.microsoft.com/en-us/library/aa266530(v=vs.60).aspx">Named Pipes</a>. So if you app connects to SQL Server using Named Pipes, you need to switch it to TCP/IP sockets.</li>
 	<li>SQL MI currently supports only <a href="https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/authentication-in-sql-server">SQL Server logins</a>. Azure AD logins will be added in next versions. Windows logins are not supported. So if your app connects to SQL Server using Windows Authentication, then you need to switch to SQL Authentication. Or you can wait for the release of Azure AD logins support in SQL MI and then convert existing Windows logins to Azure AD logins.</li>
</ol>
</li>
 	<li>I recommend to use <a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017">SQL Server Management Studio (SSMS) 18</a> since I've faced some issues with SSMS 17.9 related to SQL MI management. E.g. SSMS 17.9 throwed an error when I tried to create a new DB through UI, most probably because SQL MI uses different syntax for <a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/create-database-transact-sql?view=azuresqldb-mi-current">CREATE DATABASE</a> command. Running a command using a query went fine. That bug was fixed in SSMS 18.</li>
</ol>
Important aspects of DMS related to SQL MI migrations:
<ol>
 	<li>Azure Database Migration Service has <a href="https://azure.microsoft.com/en-us/pricing/details/database-migration/">two pricing tiers</a> - General Purpose and Business Critical. For General Purpose you can select the instance size - 1 vCore, 2 vCore or 4 vCore. Business Critical is available only in 4 vCore size. Larger instance means more computation power to perform data replication and transformation from source to the target. It allows to perform the migration quicker. Since DMS is free of charge until December 31st, 2018 anyway, I recommend to use Business Critical tier for DMS to reduce the downtime period.</li>
 	<li>DMS can perform offline and online migrations to SQL MI. Online mode is available only for Business Critical tier DMS instances.
<ol>
 	<li>In <a href="https://docs.microsoft.com/en-us/azure/dms/tutorial-sql-server-to-managed-instance">offline migration mode</a> DMS performs full backup of the source database, copies the backup from local network share to Azure Storage blob and then restores it on SQL MI. You should stop all write transactions on the source database before initiating last full backup through DMS. So your database won't be available for writes for the time of making full backup, uploading it to Azure blob and then restoring on MI, which takes time depending on the database size - from minutes for small databases to hours for large ones. It also copies SQL Server logins with current passwords from source SQL Server to SQL MI. Offline migration mode should be used in all migration scenarios where putting the database to read-only mode is a possible option.</li>
 	<li>In <a href="https://docs.microsoft.com/en-us/azure/dms/tutorial-sql-server-managed-instance-online">online migration mode</a> you need to perform full backup and incremental transaction log backups, then DMS will take these files from local share, upload it to Azure Storage account, and then restore the database on SQL MI - starting from the last full backup, and then applying all incremental transaction log backups. So just before the migration you put the database to read-only mode and perform the last transaction log backup, and then DMS automatically uploads it and applies to the current database copy on SQL MI. As soon as it is done, you perform the failover in DMS and SQL MI database becomes available for read-write. Downtime time in this case is significantly shorter since you don't need to wait until the full backup is completed and uploaded to Azure blob - minutes even for large databases. But there are some disadvantages of DMS online migration mode for SQL Server:
<ol>
 	<li>It can migrate up to 4 databases per activity, up to 2 activities per DMS instance. So you can perform up to 8 database migrations and cutovers at the same time.</li>
 	<li>It requires to use Business Critical tier for DMS instance, which potentially means more migration costs after DMS promotion period.</li>
 	<li>You need to migrate SQL Server logins manually</li>
 	<li>It won't work for databases in <a href="https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-2017">Simple recovery model</a>.</li>
</ol>
</li>
</ol>
</li>
 	<li>Current experience for offline and online mode differs, but DMS team is working on building a unified UI.</li>
 	<li>DMS requires to <a href="https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/enable-or-disable-backup-checksums-during-backup-or-restore-sql-server?view=sql-server-2017#SSMSProcedure">perform checksums</a> for database backups. If you didn't enable that setting for existing backups - you will need to do backups again.</li>
 	<li>SQL Server logins are migrated only in offline mode. Windows logins can't be migrated since SQL MI doesn't support them. An ability to convert Windows logins to Azure AD logins will be added in next versions of DMS.</li>
 	<li>SQL Server Agent jobs are not migrated through DMS UI, but you can migrate them <a href="https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/enable-or-disable-backup-checksums-during-backup-or-restore-sql-server?view=sql-server-2017#SSMSProcedure">through PowerShell</a>. Migration of jobs through DMS UI will be added in next versions.</li>
 	<li>If migration takes too long or fails - try using a larger DMS instance (4 vCore) or switching to Business Critical tier.</li>
</ol>
OK, now let's start.
<h1>Source environment</h1>
Our source environment will be represented by a solution that you may already forgot about - <a href="https://technet.microsoft.com/en-us/library/dn296435.aspx">Windows Azure Pack</a> (WAP). While WAP migration to Azure doesn’t have practical sense, it shows the value of SQL MI in DMS. WAP relies on several interconnected databases, including management databases and databases belonging to different tenants. WAP supports SQL Server authentication and it doesn't require any other components of SQL Server beyond database engine. Perfect candidate to demonstrate how real-world workloads can be moved from on-prem SQL Server to SQL MI.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration01.png"><img width="1024" height="618" class="aligncenter size-large wp-image-7355" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration01-1024x618.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration02.png"><img width="1024" height="618" class="aligncenter size-large wp-image-7365" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration02-1024x618.png" /></a>

Source environment consist of two VMs:
<ol>
 	<li>Front-end - all Windows Azure Pack components (tenant portal, admin portal, resource providers). Windows Server 2012. Private IP <i>10.0.1.4</i> + public IP for Internet access.</li>
 	<li>Back-end - SQL Server 2012 on Windows Server 2012. Hosting 7 management databases of Windows Azure Pack and one tenant DB (db01). Private IP <i>10.0.1.5</i>, no public IP.</li>
</ol>
VMs are connected with each other through vNet called <i>SQLMigrationRG-vnet</i>.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/VMs.jpg"><img width="1024" height="109" class="aligncenter size-large wp-image-7865" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/VMs-1024x109.jpg" /></a>

Our goal is to migrate all databases from Back-end VM to SQL MI, change Windows Azure Pack connection string on Front-end VM and decommission Back-end VM. The whole process is identical for Windows Server 2008 and SQL Server 2008, so you can use this guidance for end-of-support activities.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration03.png"><img width="611" height="625" class="aligncenter size-full wp-image-7375" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration03.png" /></a>

&nbsp;
<h1>Step 1: Assessment using DMA</h1>
Download <a href="https://docs.microsoft.com/en-us/sql/dma/dma-overview?view=sql-server-2017">SQL Server Database Migration Assistant</a> to check that your databases are compatible with SQL MI. Just run the software on any Windows machine that has network access to your SQL Server, or on SQL Server itself. The process is straightforward - choose <i>Assessment</i>, Source Server type - <i>SQL Server, </i>Target server type - <i>Azure SQL Database Managed Instance.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration04.png"><img width="1024" height="617" class="aligncenter size-large wp-image-7385" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration04-1024x617.png" /></a>

Then provide server IP/FQDN, specify credentials of a user with sysadmin role.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration05.png"><img width="1024" height="618" class="aligncenter size-large wp-image-7395" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration05-1024x618.png" /></a>

Select databases that you want to assess.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration06.png"><img width="1024" height="618" class="aligncenter size-large wp-image-7405" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration06-1024x618.png" /></a>

Wait for few minutes and check the results. Ensure that you don't have any blocking issues and read all warnings. In our case everything is OK.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration07.png"><img width="1024" height="619" class="aligncenter size-large wp-image-7415" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration07-1024x619.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration08.png"><img width="1024" height="618" class="aligncenter size-large wp-image-7425" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration08-1024x618.png" /></a>
<h1>Step 2: Create SQL MI Instance</h1>
Go to Azure Portal and click <i>Create a resource -&gt; Databases -&gt; Azure SQL Database Managed Instance.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration09.png"><img width="1024" height="722" class="aligncenter size-large wp-image-7435" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration09-1024x722.png" /></a>

Specify managed instance name, admin login credentials and select if you want wizard to create a new vNet for you of select a qualifying subnet (if you've <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-vnet-configuration#create-a-new-virtual-network-for-a-managed-instance">created in manually</a> before).

If you select <i>Create new virtual network, </i>then a new vNet with standard name and address space 10.0.0.0/16 will be created.

Wait for several hours until deployment is complete.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration10.png"><img width="1024" height="394" class="aligncenter size-large wp-image-7445" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration10-1024x394.png" /></a>
<h1>Step 3: Create DMS Instance</h1>
Go to Azure Portal and click <i>Create a </i>Resource, search for <i>Database Migration Service </i>and click <i>Create.</i>

Specify DMS instance name, select virtual network where your source SQL Server resides and select tier. I will use<i> Business Critical</i> tier since we plan to use online database migration mode.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration11.png"><img width="1024" height="639" class="aligncenter size-large wp-image-7455" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration11-1024x639.png" /></a>

Wait for an hour until DMS instance is created.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration12.png"><img width="1024" height="513" class="aligncenter size-large wp-image-7465" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration12-1024x513.png" /></a>
<h1>Step 4: Connect source SQL Server, SQL MI and DMS</h1>
In order to use DMS for migration, it should be able to connect to source SQL Server and to destination SQL MI using the network. In our case we will use <a href="https://docs.microsoft.com/en-us/azure/virtual-network/tutorial-connect-virtual-networks-portal">vNet peering</a> since source and destination servers reside in two different vNets inside the same Azure region.

Since vNet where source SQL Server resides has address space 10.0.1.0/24, is conflict with SQL MI vNet with address space 10.0.0.0/16. To resolve that, we'll just reduce the address space in SQL MI vNet to 10.0.0.0/24. Now we have two vNets with two address spaces - 10.0.0.0/24 (SQL MI vNet) and 10.0.1.0/24 (vNet with source SQL Server VM).

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration13.png"><img width="1024" height="493" class="aligncenter size-large wp-image-7475" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration13-1024x493.png" /></a>

Go to first vNet settings, select <i>Peerings </i>and create a peering request from SQL MI vNet to another vNet. Then do the same on another vNet side and create a peering request to SQL MI vNet.

After creating requests from both sides, peering should turn into <i>Connected </i>state.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/vnetpeering.png"><img width="1024" height="488" class="aligncenter size-large wp-image-7875" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/vnetpeering-1024x488.png" /></a>

Now we should be able to connect to SQL MI from any VM in the same vNet where source SQL Server resides using <a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017">SQL Server Management Studio</a>.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration14.png"><img width="1024" height="919" class="aligncenter size-large wp-image-7485" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration14-1024x919.png" /></a>

As you see, SQL MI supports databases with compatibility level starting from 100 (SQL Server 2008) up to 140 (SQL Server 2017).

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration15.png"><img width="1024" height="918" class="aligncenter size-large wp-image-7495" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration15-1024x918.png" /></a>

Windows authentication is greyed out in <i>New Login </i>menu since SQL MI doesn't support Windows authentication logins.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration16.png"><img width="1024" height="917" class="aligncenter size-large wp-image-7505" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration16-1024x917.png" /></a>
<h1>Step 5: Configure DMS</h1>
Go to Azure Portal, click <i>All services </i>and search for <i>Azure Database Migration Service</i>. Click <i>New migration project.</i> Give it a name and select <i>Online data migration (</i>see the difference between online and offline mode in the beginning of this article).

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration17.png"><img width="1024" height="657" class="aligncenter size-large wp-image-7515" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration17-1024x657.png" /></a>

Specify FQDN or IP of the source SQL Server and sysadmin user credentials. Most probably you will need to select <i>Trust server certificate</i>, otherwise DMS connection attempt will fail.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration19.png"><img width="862" height="532" class="aligncenter size-full wp-image-7525" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration19.png" /></a>

If connection is successful, on the next step you will see all databases running on that server. Select all DBs.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration20.png"><img width="1024" height="581" class="aligncenter size-large wp-image-7535" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration20-1024x581.png" /></a>

Specify FQDN of SQL MI and user credentials of SQL MI.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration21.png"><img width="1024" height="931" class="aligncenter size-large wp-image-7545" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration21-1024x931.png" /></a>

Click <i>Save</i> to save this migration project.
<h1>Step 6a: Migrate databases using online mode</h1>
In order to use online mode of DMS, you need to create app registration in your Azure Active Directory. For that go to your Azure AD settings <i>-&gt; App Registrations -&gt; Create. </i>Specify any name and any resolvable sign-on URL (e.g. <a href="https://portal.azure.com/">https://portal.azure.com</a>).

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration22.png"><img width="1024" height="691" class="aligncenter size-large wp-image-7555" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration22-1024x691.png" /></a>

<span style="float: none;background-color: transparent;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px">Then go to </span><i>Keys </i><span style="float: none;background-color: transparent;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px">and create a new key. Key value will become visible when you click </span><i>Save. </i><span style="float: none;background-color: transparent;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px">Store that key and application ID, we'll need it later.</span>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration23.png"><img width="1024" height="544" class="aligncenter size-large wp-image-7565" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration23-1024x544.png" /></a>

Then go to Azure subscription settings and assign Owner permissions to this app.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24.png"><img width="1024" height="519" class="aligncenter size-large wp-image-7575" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-1024x519.png" /></a>

If you don't have backups for DBs that you want to migrate, do them know. Don’t forget to enable <i>Perform checksum before writing to media </i>- that's a requirement on DMS side for SQL Server backups. But I assume you already have full backups and transaction log backups for DBs that you plan to migrate.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-3.png"><img width="1024" height="746" class="aligncenter size-large wp-image-7595" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-3-1024x746.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-4.png"><img width="1024" height="747" class="aligncenter size-large wp-image-7605" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-4-1024x747.png" /></a>

Share the folder where backups are stored. If should be accessible by SQL Server service user using UNC path. Or you share it with Everyone just to be sure.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-2.png"><img width="1024" height="647" class="aligncenter size-large wp-image-7585" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-2-1024x647.png" /></a>

Now all backups are stored in the same folder and accessible by SQL Server service.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-5.png"><img width="1024" height="683" class="aligncenter size-large wp-image-7615" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration24-5-1024x683.png" /></a>

Return to DMS page and create <i>New Activity -&gt; Online data migration.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration25.png"><img width="1024" height="508" class="aligncenter size-large wp-image-7625" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration25-1024x508.png" /></a>

Select source SQL Server again, and on target page specify Application ID and Key that you've obtained a minute before.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration26.png"><img width="1024" height="560" class="aligncenter size-large wp-image-7635" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration26-1024x560.png" /></a>

Select up to 4 databases to migrate (current limit for a single activity for DMS in online mode).

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration27.png"><img width="1024" height="611" class="aligncenter size-large wp-image-7645" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration27-1024x611.png" /></a>

Specify path to file share where DB backups are stored. Source SQL Server should be able to access that share. Specify user credentials for uploading backups to Azure Storage account (I will use local admin credentials for source SQL Server VM) and select Azure Storage account where DB backups will be copied.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration28.png"><img width="1024" height="744" class="aligncenter size-large wp-image-7655" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration28-1024x744.png" /></a>

Wait for some time until all backups are uploaded to Azure Storage account and applied to database replica in SQL MI. As soon as it is done, select database and click <i>Complete cutover</i>.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration29.png"><img width="1024" height="600" class="aligncenter size-large wp-image-7665" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration29-1024x600.png" /></a>

Then you should stop all incoming transactions to that DB, perform the final transaction log backup and wait until it is applied to replica. <i>Pending log backups </i>should become <i>0.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration30.png"><img width="1024" height="640" class="aligncenter size-large wp-image-7675" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration30-1024x640.png" /></a>

Click <i>Confirm </i>and <i>Apply. </i>After some time cutover status will be completed. Repeat the same process for remaining databases.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration31.png"><img width="1024" height="524" class="aligncenter size-large wp-image-7685" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration31-1024x524.png" /></a>
<h1>Step 6b: Migrate databases using offline mode</h1>
We'll migrate 4 remaining databases using DMS offline mode to show you how alternative process looks like.

UI for offline mode is slightly different then for online mode. You don't need to create app registration in Azure AD, but you need to download <a href="https://azure.microsoft.com/en-us/features/storage-explorer/">Azure Storage Explorer</a>, login to Azure subscription, create new container in new or existing Azure Storage account and click <i>Get Shared Access Signature.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration32.png"><img width="1024" height="632" class="aligncenter size-large wp-image-7695" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration32-1024x632.png" /></a>

Select <i>Read, Write, Delete </i>and <i>List </i>permissions<i>. </i>Save SAS URI for the future use.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration33.png"><img width="728" height="814" class="aligncenter size-full wp-image-7705" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration33.png" /></a>

Return to Azure Portal, open DMS page and click <i>New Activity -&gt; Offline data migration.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration34.png"><img width="905" height="366" class="aligncenter size-full wp-image-7715" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration34.png" /></a>

Select source SQL Server and target SQL MI in the same way as we showed it for online mode.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35.png"><img width="1024" height="910" class="aligncenter size-large wp-image-7725" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35-1024x910.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35-2.png"><img width="1024" height="905" class="aligncenter size-large wp-image-7735" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35-2-1024x905.png" /></a>

Select databases that you want to migrate. Then select logins that should be migrated to SQL MI (note: login migration is currently available only in offline mode). You can select only SQL Server logins since Windows authentication logins are not supported by SQL MI.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35-3.png"><img width="1024" height="658" class="aligncenter size-large wp-image-7745" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration35-3-1024x658.png" /></a>

Select if you want DMS to perform full DB backups for you or reuse existing full backups. Specify network share where backups should be stored (or where they are stored already). Specify user credentials for uploading backups to Azure Storage account (I will use local admin credentials for source SQL Server VM) and provide SAS URI for storage container that you've obtained earlier.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration36.png"><img width="1024" height="773" class="aligncenter size-large wp-image-7755" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration36-1024x773.png" /></a>

On the last step select <i>Validate my databases </i>by running test queries after migration is complete.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration37.png"><img width="1024" height="746" class="aligncenter size-large wp-image-7765" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration37-1024x746.png" /></a>

Track the progress of database and logins migration from source SQL Server to SQL MI. Required time depends on the total size of database backups. Status will change from <i>Restoring </i>to <i>Completed.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration38.png"><img width="1024" height="553" class="aligncenter size-large wp-image-7775" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration38-1024x553.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration39.png"><img width="569" height="575" class="aligncenter size-full wp-image-7785" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration39.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration40.png"><img width="1024" height="387" class="aligncenter size-large wp-image-7795" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration40-1024x387.png" /></a>

Now both migration activities should show status <i>Completed </i>since all 8 database in the scope are migrated to SQL MI. You can connect to SQL MI using SQL Server Management Studio and check that all databases and SQL Server logins are present and there are no errors.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration41.png"><img width="1024" height="369" class="aligncenter size-large wp-image-7805" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration41-1024x369.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration42.png"><img width="478" height="1024" class="aligncenter size-large wp-image-7815" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration42-478x1024.png" /></a>
<h1>Step 7: Redirect the app to SQL MI</h1>
The final step is to change the connection string in the app to SQL MI hostname. You don't need to change any other settings in the connection string, including login and password of the user. You just need to replace old server FQDN or IP with SQL MI hostname, and then restart the app. In our case we need to update the connection string for all Windows Azure Pack website.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration43.png"><img width="1024" height="630" class="aligncenter size-large wp-image-7825" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration43-1024x630.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration44.png"><img width="1024" height="629" class="aligncenter size-large wp-image-7835" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration44-1024x629.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration45.png"><img width="1024" height="743" class="aligncenter size-large wp-image-7845" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration45-1024x743.png" /></a>

That's all. Our Windows Azure Pack test environment is now switched to 8 interconnected databases, running on SQL MI. And the only change that was required on the app level is just one small tweak in connection strings.

<a href="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration46.png"><img width="1024" height="544" class="aligncenter size-large wp-image-7855" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/11/sqlmimigration46-1024x544.png" /></a>

The described process may look complicated, but you will get used to it after the first migration. Benefits of SQL MI worth it - spend some time to migrate DBs once, and then never worry about installing OS patches, resizing VMs or updating to a newer version of the SQL Server.]]></content:encoded>
    </item>
    <item>
      <title>Datacenter migration updates from Ignite 2018</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/datacenter-migration-updates-from-ignite-2018</link>
      <pubDate>Thu, 18 Oct 2018 08:27:06 GMT</pubDate>
      <dc:creator><![CDATA[Kirill Kotlyarenko [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=7255</guid>
      <description><![CDATA[Microsoft Ignite 2018 took place in Orlando, Florida few weeks ago. It is an annual Microsoft...]]></description>
      <content:encoded><![CDATA[Microsoft Ignite 2018 took place in Orlando, Florida few weeks ago. It is an annual Microsoft conference for ITPros with more then 700+ sessions and 100+ announcements.

Let's review what announcements are relevant if you are migrating from your datacenter to Azure.

First of all, 2 new regions were announced - Norway West and Norway East. Great opportunity for customers and partners in Nordics to migrate their workloads to Azure with no or minimal network latency impact. Total number of Azure regions is now <a href="https://azure.microsoft.com/en-us/global-infrastructure/regions/">54</a> (available + announced).

Also there were many <strong>updates on IaaS</strong>:
<ul type="disc">
 	<li><span>5 new VM series were announced:</span>
<ul type="circle">
 	<li><a href="https://azure.microsoft.com/en-us/updates/public-preview-new-gpu-enabled-nvv2-azure-vms-for-graphics-intensive-applications/"><span>NVv2</span></a><span>. Architected to support remote visualization workloads and other graphics intensive applications. The new NVv2 VMs feature up to 448GiB of RAM - twice the amount of memory present in the prior NVv1 generation - an upgraded CPU class and are backed by the NVIDIA Tesla M60 GPU. The NVv2 VMs will also support Premium SSDs and they have been optimized for applications like CAD, gaming and interactive 3D design. They are in private preview right now, and if you are interested - request access </span><a href="http://aka.ms/nvv2signup"><span>here</span></a><span>.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/unlocking-innovation-with-the-new-n-series-azure-virtual-machines/"><span>NDv2</span></a><span>. A new addition to the ND-series, NDv2 VMs focus on deep learning training and inferencing as well as machine learning. The new NDv2 will feature up to 8 NVIDIA Tesla V100 Tensor core GPUs interconnected via NVIDIA NVLink GPUs and up to 40 Intel Skylake cores aimed to deliver high quality results even faster. NDv2 VMs are expected to be in preview by the end of 2018.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/introducing-the-new-hb-and-hc-azure-vm-sizes-for-hpc/"><span>HB</span></a><span>. These new VMs will feature 60 </span><a href="https://www.amd.com/en/products/epyc"><span>AMD EPYC</span></a><span> cores and 240 GiB RAM. They have the highest amount of memory bandwidth (260GBps) in the public cloud. This is really valuable for calculations required in fluid dynamics and weather forecasting. Preview will start later this year, and if you are interested - request access </span><a href="https://aka.ms/HPCNextGen"><span>here</span></a><span>.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/introducing-the-new-hb-and-hc-azure-vm-sizes-for-hpc/"><span>HC</span></a><span>. These VMs are optimized for computationally intensive workloads. The HC will feature up to 352 GiB RAM, 44 Intel Skylake cores with clock speeds up to 3.7 GHz, and will support Intel’s rich ecosystem of HPC software tools. Preview will start later this year, and if you are interested - request access </span><a href="https://aka.ms/HPCNextGen"><span>here</span></a><span>.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/introducing-azure-confidential-computing/"><span>DC</span></a><span>. A new family of virtual machines in Azure that can help protect the confidentiality and integrity of your data and code while it’s processed in the public cloud. These machines are backed by the latest generation of 3.7GHz Intel Xeon E-2176G Processor with </span><a href="https://software.intel.com/en-us/sgx"><span>SGX technology</span></a><span>. With the Intel Turbo Boost technology these machines can go up to 4.7GHz. DC series instances enable customers to build secure enclave-based applications to protect their code and data while it’s in use.</span></li>
</ul>
</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-VM-series.jpg"><img width="853" height="500" class="aligncenter size-full wp-image-7315" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-VM-series.jpg" /></a>
<ul type="disc">
 	<li><span>Managed Disks enhancements:</span>
<ul type="circle">
 	<li><a href="https://azure.microsoft.com/en-us/blog/announcing-general-availability-of-standard-ssd-disks-for-azure-virtual-machine-workloads/"><span>Standard SSD Managed Disks</span></a><span> are now generally available. Standard SSD Disks are a cost-effective storage option optimized for workloads that need consistent performance at lower IOPS levels. Standard SSD Disks store data on Solid State Drives (SSDs) whereas our Standard HDD disks store data on Hard Disk Drive (HDD). Standard SSDs deliver better availability, consistency, reliability and latency compared to HDD Disks, and are suitable for Web servers, low IOPS application servers, lightly used enterprise applications, and Dev/Test workloads.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/announcing-ultra-ssd-the-next-generation-of-azure-disks-technology-preview/"><span>Ultra SSD Managed Disks</span></a><span> are now available in public preview. Ultra SSD provides top of the line performance at the same availability levels as our other disks offerings. Additional benefits of Ultra SSD include the ability to dynamically tune disk performance, without the need to restart your virtual machines. Ultra SSD is designed for I/O-intensive workloads such as SAP HANA, top tier databases (e.g. SQL, Oracle), and other transaction-heavy workloads.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/introducing-the-public-preview-of-larger-managed-disks-sizes/"><span>Larger Managed Disks</span></a><span> - up to 32 Tib for regular tiers and up to 64 TiB for new Ultra SSDs. Significant increase comparing to old 4 TiB limit.With new disk sizes, Premium SSD performance will now reach up to 20,000 IOPS and 750MBps, and Standard SSD will now reach up to 2,000 IOPS and 500MBps. New disk sizes are in public preview now and available only in West Central US region, but they will be rolled out in other regions after GA.</span></li>
</ul>
</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Disk-Options.jpg"><img width="1024" height="409" class="aligncenter size-large wp-image-7305" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Disk-Options-1024x409.jpg" /></a>

&nbsp;

<strong>New network services and features:</strong>
<ul type="disc">
 	<li><a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-erdirect-about"><span>ExpressRoute Direct</span></a><span>. New mode of ExpressRoute that provides an ability to connect your network directly into Microsoft’s global network at peering locations strategically distributed across the world. ExpressRoute Direct provides dual 100Gbps connectivity, which supports Active/Active connectivity at scale. Now you can connect your datacenter directly to the closest Azure region with fast and reliable 100Gbps pipe. Also there is a new gateway bypass feature, which gives 100Gps throughput directly into vNet.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-global-reach"><span>ExpressRoute Global Reach</span></a><span>. New feature of ExpressRoute, that allows you to link together several ExpressRoute circuits in different parts of the world.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/firewall/overview"><span>Azure Firewall</span></a><span> is now GA. Azure Firewall is a managed, cloud-based network security service that protects your Azure Virtual Network resources. It is 1st-party fully stateful firewall as a service with built-in high availability and unrestricted cloud scalability. </span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/virtual-wan/virtual-wan-about"><span>Azure Virtual WAN</span></a><span> is now GA and has new features in private preview. Azure Virtual WAN is a networking service that provides optimized and automated branch-to-branch connectivity through Azure. Virtual WAN lets you connect and configure branch devices to communicate with Azure. In addition to site-to-site connections (which are GA now), you can add point-to-site and ExpressRoute connectivity to Virtual WAN environment.</span></li>
 	<li><a href="http://www.velocloud.com/partners/microsoft"><span>VMware NSX SD-WAN for Azure Virtual WAN</span></a><span>. VMware and Microsoft will enable customers to redesign their networks for optimized cloud access using SD-WAN and a Virtual Cloud Network architecture. The solution will combine Microsoft Virtual WAN, which spans 130 edge sites or Points of Presence (PoPs), with the optimization, security, and ease of deployment and use provided by cloud-delivered NSX SD-WAN by VeloCloud cloud.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/ddos-protection-attack-analytics-rapid-response/"><span>New Azure DDoS protection features</span></a><span> - DDoS Attack Analytics and DDoS Rapid Response. They provide enterprise grade visibility and support to customers when their resources are under attack. DDoS Attack Analytics provides attack insights that can be used for compliance, security audits and post attack analysis to optimize defense strategies and security operations. DDoS Rapid Response will enable customers to engage DDoS experts during an active attack for specialized support.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/frontdoor/front-door-overview"><span>Azure Front Door</span></a><span>. New service that allows to deliver and protect global applications close to your end users with a "battle-tested" service built on world-class Microsoft Global Network infrastructure. This service is a commercialized representation of a solution, that was used by Bing, OneDrive and Xbox Live teams to deliver applications globally.</span></li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Network-Updates.jpg"><img width="1024" height="581" class="aligncenter size-large wp-image-7295" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Network-Updates-1024x581.jpg" /></a>

&nbsp;

<strong>New products in <a href="https://azure.microsoft.com/en-us/services/storage/databox/">Azure Data Box family</a></strong> that allow you to quickly and cost-effectively move data from your datacenter to Azure:
<ul type="disc">
 	<li><span>Data Box offline devices easily move data to Azure when busy networks aren’t an option:</span>
<ul type="circle">
 	<li><span>Data Box - ruggedized device, with 100 TB of capacity, uses standard NAS protocols and common copy tools. It features AES 256-bit encryption for safer transit. This solution is now GA and you can order it through Azure Portal in US and Europe (other regions will follow).</span></li>
 	<li><span>Data Box Disk - Microsoft-provided 8 TB SSD, with a USB/SATA interface and 128-bit encryption. It comes in packs of up to five for a total of 40 TB.</span></li>
 	<li><span>Data Box Heavy - as its name implies, this ruggedized, self-contained device is designed to lift 1 PB of data to the cloud.</span></li>
</ul>
</li>
 	<li><span>Data Box online appliances transfer data to and from Azure over the network:</span>
<ul type="circle">
 	<li><span>Data Box Gateway - storage solution that enables you to seamlessly send data to Azure and back. It is a virtual device based on a virtual machine provisioned in your virtualized environment. The virtual device resides in your premises and you write data to it using the NFS and SMB protocols. The device then transfers your data to Azure block blob, page blob, or Azure Files. </span></li>
 	<li><span>Data Box Edge - on-premises physical network appliance that transfers data to and from Azure. Analyze, process, and transform your on-premises data before uploading it to the cloud using AI-enabled edge compute capabilities powered by Intel FPGA. It includes Azure Data Box Gateway, mentioned previously, and </span><a href="https://azure.microsoft.com/en-us/services/iot-edge/"><span>Azure IoT Edge</span></a><span>.</span></li>
</ul>
</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Data-Box-Family.jpg"><img width="1024" height="435" class="aligncenter size-large wp-image-7275" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/10/Azure-Data-Box-Family-1024x435.jpg" /></a>

<strong>New file services:</strong>
<ul type="disc">
 	<li><a href="https://azure.microsoft.com/en-us/blog/avere-vfxt-for-microsoft-azure-now-in-public-preview/"><span>Avere vFXT for Azure</span></a><span>. Caching solution from a company, that was recently acquired by Microsoft. It tiers data stored in Azure Blob to an SSD-based cache in Azure Compute while the job is running. Once processing is complete, the data is written back into Blob. With this flexibility to support hybrid deployments and edge computing, the Avere vFXT becomes an important part of a cloud migration strategy for file-based applications in HPC environments.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/azure-netapp-files/azure-netapp-files-introduction"><span>Azure NetApp Files</span></a><span>. Jointly developed by Microsoft and NetApp, Azure NetApp Files is a native Azure service powered by NetApp’s ONTAP technology and storage expertise. It is designed to meet and exceed most organizational requirements for performance, scalability, data management, security and more.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/blog/score-one-for-the-it-pro-azure-file-sync-is-now-generally-available/"><span>Azure File Sync</span></a><span>. This service replicates files from on-premises Windows Server to an Azure file share. Azure File Sync enables you to centralize your file services in Azure while maintaining local access to your data.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/updates/announcing-the-limited-public-preview-for-azure-premium-files/"><span>Azure Premium Files</span></a><span>. New service that provides fully managed file services, optimized to deliver consistent performance at 100 times improvement from the existing Azure Files. It's designed for IO intensive enterprise workloads that require high throughput and a single digit millisecond latency.</span></li>
</ul>
<strong><a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance">Azure SQL Database Managed Instance</a></strong> is now GA. Azure SQL Database Managed Instance is a new deployment model of Azure SQL Database, providing near 100% compatibility with the latest SQL Server on-premises (Enterprise Edition) Database Engine, providing a native virtual network (VNet) implementation that addresses common security concerns, and a business model favorable for on-premises SQL Server customers. Managed Instance allows existing SQL Server customers to lift and shift their on-premises applications to the cloud with minimal application and database changes. At the same time, Managed Instance preserves all PaaS capabilities (automatic patching and version updates, automated backups, high-availability ), that drastically reduces management overhead and TCO. Great option if you have SQL Servers in the scope of datacenter migration project. Also it is important to mention that:
<ul type="disc">
 	<li><span>Now you can </span><a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-reserved-capacity"><span>pre-pay for Azure SQL Database Managed Instance capacity</span></a><span> for 1 year or 3 years and get a significant discount.</span></li>
 	<li><a href="https://blogs.msdn.microsoft.com/datamigration/2018/10/16/announcing-assessments-on-premises-sql-server-migrating-to-azure-sql-database-managed-instance-using-dma-4-1/"><span>Database Migration Assistant (DMA)</span></a><span> - essential tool for SQL Server migration, now has full support for Azure SQL Database Managed Instance. Also there were important updates for </span><a href="https://azure.microsoft.com/en-us/blog/database-migration-service-and-tool-updates-ignite-2018/"><span>Azure Database Migration Service</span></a><span>.</span></li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/10/Managed-Instance.png"><img width="1024" height="204" class="aligncenter size-large wp-image-7325" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/10/Managed-Instance-1024x204.png" /></a>

Other updates worth to mention:
<ul type="disc">
 	<li><span>Windows Server 2019 is now GA. Check </span><a href="https://docs.microsoft.com/en-us/windows-server/get-started-19/whats-new-19"><span>this article</span></a><span> to learn what's new in the latest version of Windows Server.</span></li>
 	<li><span>New services for Azure Stack - </span><a href="https://azure.microsoft.com/en-us/updates/kubernetes-on-azure-stack-public-preview/"><span>Kubernetes</span></a><span>, </span><a href="https://azure.microsoft.com/en-us/updates/event-hubs-on-azure-stack/"><span>Event Hubs</span></a><span> and </span><a href="https://azure.microsoft.com/en-us/updates/service-fabric-available-on-azure-stack/"><span>Service Fabric</span></a><span>.</span></li>
 	<li><span>Now you can move </span><a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-move-resources#virtual-machines-limitations"><span>VMs with managed disks from one subscription to another</span></a><span>. E.g. from Azure subscription in EA to CSP, vice versa.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/cloud-shell/overview"><span>Azure Cloud Shell</span></a><span> is now GA. Azure Cloud Shell is an interactive shell for managing Azure resources, accessible directly from Azure Portal with one click. It provides the flexibility of choosing the shell experience that best suits the way you work. Linux users can opt for a Bash experience, while Windows users can opt for PowerShell.</span></li>
 	<li><span>Azure Database portfolio now includes </span><a href="https://azure.microsoft.com/en-us/services/mariadb/"><span>MariaDB</span></a><span> (in preview) in addition to MySQL, PostgreSQL and SQL Server.</span></li>
 	<li><a href="https://azure.microsoft.com/en-us/updates/windows-virtual-desktop/"><span>Windows Virtual Desktop</span></a><span> was announced and will be available in private preview later this year. It is a new VDI solution, that will allow you to deploy and scale Windows and Office clients on Azure in minutes, with built-in security and compliance.</span></li>
 	<li><a href="https://docs.microsoft.com/en-us/azure/governance/blueprints/overview"><span>Azure Blueprints</span></a><span> is not available in public preview. Azure Blueprints enables you to rapidly provision and stand up new environments knowing that they're built within organizational compliance and contain a set of built-in components. Blueprints are a declarative way to orchestrate the deployment of multiple resource templates and other artifacts such as role assignments, policy assignments, Azure Resource Manager templates and Resource Groups.</span></li>
</ul>
That's only a small portion of all Azure announcements that were made on Ignite 2018. Full list of announcement can be found <a href="https://azure.microsoft.com/en-us/updates/ignite">here</a>. All session recordings and decks can be found <a href="https://myignite.techcommunity.microsoft.com/sessions">here</a>.

And as a bonus - here are the recordings of sessions that you can't miss:
<ol type="1">
 	<li value="1"><a href="https://myignite.techcommunity.microsoft.com/sessions/64716"><span>BRK2041 - A deeper look at Azure Storage with a special focus on new capabilities</span></a><span>. Great insights into an evolution of hardware, backing up Azure storage services and the future of cost-efficient data storage in the glass and using DNA. </span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/66668"><span>BRK2483 - Azure networking internals.</span></a><span> How global Azure network looks on the other side and what are the challenges that Microsoft solves while operating one of the largest software-defined networks in the world.</span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/66291"><span>BRK3296 - Tips and tricks to get the most out of your Azure virtual machines</span></a><span>. Number of insider tips on how to get the most out of your Azure virtual machines.</span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/64686"><span>BRK3055 - Azure migration deep dive: Accelerate your migration with the right tools</span></a><span>. This session, rich in demos, shows you how to leverage Azure migration services, such as Azure Migrate, Azure Site Recovery, and Database Migration Service, to automate and accelerate your migration.</span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/66824"><span>BRK2414 - Migrating your Linux solutions to Microsoft Azure</span></a><span>. Overview of existing services and IP that will help you with the migration of Linux solutions to Azure.</span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/66259"><span>BRK3337 - Azure migration customer experiences and best practices</span></a><span>. Learn the steps Azure customers have used to migrate applications from on-premises data centers to Azure.</span></li>
 	<li><a href="https://myignite.techcommunity.microsoft.com/sessions/65383"><span>BRK3165 - Azure SQL Database Managed Instance: Migrate SQL Servers easily to a fully managed cloud service</span></a><span> and </span><a href="https://myignite.techcommunity.microsoft.com/sessions/65381"><span>BRK3163 - Securing Azure SQL Database Managed Instance: Overview and best practices</span></a><span> - if you want to learn more about new Azure SQL Database Managed Instance.</span></li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Why it is important to create Azure support requests</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/why-it-is-important-to-create-azure-support-requests</link>
      <pubDate>Thu, 30 Aug 2018 07:45:23 GMT</pubDate>
      <dc:creator><![CDATA[Kirill Kotlyarenko [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=7215</guid>
      <description><![CDATA[Why is it so important to create a support request when something is wrong with your workloads in...]]></description>
      <content:encoded><![CDATA[Why is it so important to create a support request when something is wrong with your workloads in Azure? Imagine a situation - you are a CSP partner, and you've just moved workloads of your customer from your or their datacenter to Azure. And in a month something went wrong - VMs are running slow, you see errors in service logs, or WebApp crashes every few hours.

Public cloud is a very complex thing, and anything can wrong. Don't think that because of high SLA you are protected from any issues. Bugless software is a myth. So you need to know what to do when you think that something is wrong with your Azure resources and where to go.

And the answer is very simple. <b>If something is wrong with your workloads in Azure - create a support request on Azure Portal.</b> Don't look for shortcuts. That's the first step, and it is really needed to help you with solving your problem.

It won't take more than few minutes. Just go to <a href="https://portal.azure.com/">Azure Portal</a>, select <i>Help + support, </i>select<i> Issue type </i>(technical, billing, quotas or subscription management), select your subscription and support plan and provide more details.

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/capture_29082018_234206.png">
<img width="1024" height="440" class="aligncenter size-large wp-image-7225" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/capture_29082018_234206-1024x440.png" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/capture_29082018_234427.png"><img width="1024" height="597" class="aligncenter size-large wp-image-7235" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/capture_29082018_234427-1024x597.png" /></a>

Instead of escalating problems directly to your Microsoft representative or blaming Microsoft in social networks, create a support request first and give a chance to Azure support team. If they won't help for some reason - provide ticket ID during the escalation. But don't skip the first step. Any escalation is much more productive when engineering team has a ticket ID and can look into details what was behind the scenes at the moment when you've experienced an issue.

When you create a support request, you don't just file a ticket in Microsoft's helpdesk. You also trigger a series of scripts to collect and store additional information about your environment, including what's happening with other workloads in the same region, same rack or even same physical server (remember - you are not the only one in Azure). It's hard to say what is the reason when it comes to services with so many interconnections. When you create a support request - additional logs are collected and stored, and that allows support engineers to see the whole picture.

<b>Note:</b> in CSP model, CSP partner is a front end of technical support for the customer. Customers can't create support requests on Azure portal directly - they should use partner-provided options instead. But CSP partner can create a support request on behalf the customer to escalate an issue to Microsoft. If you are a CSP reseller in CSP indirect model, then your indirect provider (disti) is a first stop. <a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/support/azure-csp-support-overview">More details.</a>

If you want to speed up the resolution of your problem - perform some basic troubleshooting steps on your side to determine the core of the problem. For example, it you have a problem with your VM, try to reduce the problem surface by running a series of simple tests:
<ol>
 	<li>Run the same VM in another Azure region - to determine if it is a global problem, or something is wrong with a -specific region</li>
 	<li>Resize it to a different VM family - to use a different underlying hardware</li>
 	<li>Recreate the VM - maybe something is wrong with guest OS configuration</li>
</ol>
But always start from creating a support request and follow the instructions of Azure support engineer. Sometimes you may not understand why he/she asks those questions and requests some additional information. But if you don't understand the logic - it doesn't mean that there is no logic at all.
<h2>What about Partner Center?</h2>
If you are a CSP direct partner or CSP indirect provider, you may also face issues on Partner Center side. Azure engineering team and Partner Center team are connected with each other, but these are two separate teams with different processes for technical support. So when you create an Azure-related issue through Partner Center portal, it is not automatically created in Azure helpdesk system, vice versa. More of that - maybe Azure engineer assigned to your case won't even know what is Partner Center, since he/she never worked with CSP partners before. But it doesn't mean that he/she is not an expert in a particular Azure service.

To create a support request in Partner Center, sign it to <a href="https://partnercenter.microsoft.com">Partner Center portal</a>, go to <i>Support -&gt; Partner support requests</i> and click <i>New request.</i>

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/capture_30082018_002322.png"><img width="1024" height="685" class="aligncenter size-large wp-image-7245" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/capture_30082018_002322-1024x685.png" /></a>

So here is the rule:
<ol>
 	<li>If you have a problem with Partner Center portal, Partner Center API, CSP billing or any other problem with Partner Center - create a support request on Partner Center portal and provide the details.</li>
 	<li>If you have a problem with Azure resource (VM, storage account, Web app or anything not related to Partner Center) - go to Azure Portal on behalf of an affected customer and create a support request there.</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Act now! Migrate your customers running Windows Server and SQL Server 2008/2008 R2 to Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/migrate-windows-server-sql-server-2008-to-azure</link>
      <pubDate>Mon, 27 Aug 2018 21:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Rob Davies msft]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=7195</guid>
      <description><![CDATA[[caption id="attachment_7205" align="alignnone" width="300"] Windows Server 2008 R2 End of...]]></description>
      <content:encoded><![CDATA[[caption id="attachment_7205" align="alignnone" width="300"]<img width="300" height="240" class="size-medium wp-image-7205" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/server2008r2-300x240.jpg" /> Windows Server 2008 R2 End of Support[/caption]

&nbsp;

End of support is fast approaching for Windows Server and SQL Server 2008/2008 R2. This is a significant opportunity for our partners to migrate those on-premises workloads to Azure.

Now is the ideal time to upgrade, modernize and transform to current versions of SQL Server, Windows Server and Azure services for more security, performance and innovation.
<ul>
 	<li>Support for SQL Server 2008/2008 R2 ends <span style="color: #ff0000"><strong>July 9, 2019</strong></span></li>
 	<li>Support for Windows Server 2008/2008 R2 ends <span style="color: #ff0000"><strong>January 14, 2020</strong></span></li>
</ul>
<h1>Free extended security updates in Azure</h1>
When those workloads are migrated to Azure Virtual Machines, they will have access to <em><strong>three years of Extended Security Updates</strong></em> for both SQL Server and Windows Server 2008 and 2008 R2, after the End of Support deadlines, included at no additional charge over the standard VM pricing.

• This is detailed in the <a href="https://azure.microsoft.com/en-us/blog/announcing-new-options-for-sql-server-2008-and-windows-server-2008-end-of-support/">official announcement</a>
• You can also download the <a href="https://aka.ms/eos-offer-faq">FAQ Document</a>
<h1>Save money</h1>
Migrating to Azure brings cost saving opportunities with Azure Hybrid Use Benefit and Reserved Instances:

• Save up to 55% on migrations to Azure SQL Database with <a href="https://azure.microsoft.com/en-us/pricing/hybrid-benefit/">Azure Hybrid Benefit</a>
• Save up to 80% on Windows Server with Azure Hybrid Benefit and <a href="https://azure.microsoft.com/en-us/pricing/reserved-vm-instances/">Reserved Instances</a>

Avoid significant costs paying for Extended Support if your customer needs to continue using Windows 2008 and SQL 2008 after support ends.
<h1>Migrate VMs using Azure Site Recovery</h1>
Our flagship service for Azure migrations, Azure Site Recovery, has <a href="https://azure.microsoft.com/en-us/blog/migrate-windows-server-2008-with-azure-site-recovery/">recently introduced support for Windows Server 2008 and 2008 R2</a>. This means our Partners can use the familiar Azure tools to migrate those legacy workloads.

The getting started documentation for migrating Server 2008 and 2008 is available here: <a href="https://docs.microsoft.com/en-us/azure/site-recovery/migrate-tutorial-windows-server-2008">https://docs.microsoft.com/en-us/azure/site-recovery/migrate-tutorial-windows-server-2008</a>
<h1>Migrate SQL Server 2008 &amp; 2008 R2</h1>
Azure has a comprehensive set of services to migrate SQL Server – you can pick the most appropriate route for your customers:
<ul>
 	<li>Migrate to <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-migrate-sql">SQL Server on Azure VM</a>
Migrate to PaaS, <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate">Azure SQL DB</a>
Migrate to <a href="https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-migrate">Azure SQL Managed Instance</a></li>
</ul>
<h1>Modernize the data platform</h1>
Seize this End-Of-Support, to have conversations about modernizing the data platform with your customers!

Azure has a comprehensive set of <a href="https://azure.microsoft.com/en-us/product-categories/databases/">Data Services</a>, from fully managed Data Warehouses in Azure SQL Data Warehouse, to globally distributed multi-model NoSQL databases with Azure Cosmos DB.

This is the perfect opportunity to understand how your customers’ businesses would benefit from the scale &amp; agility which is unlocked by innovating on top of our portfolio of secure, enterprise-grade, fully managed data services.]]></content:encoded>
    </item>
    <item>
      <title>Moving Windows Server and SQL Server licenses from SPLA to CSP</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/moving-windows-server-and-sql-server-licenses-from-spla-to-csp</link>
      <pubDate>Wed, 08 Aug 2018 23:33:05 GMT</pubDate>
      <dc:creator><![CDATA[Kirill Kotlyarenko [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=6975</guid>
      <description><![CDATA[As you may heard, now CSP partners can buy Windows Server and SQL Server licenses on behalf of their...]]></description>
      <content:encoded><![CDATA[As you may heard, now CSP partners can buy Windows Server and SQL Server licenses on behalf of their customers directly in Partner Center. It became possible because on new functionality in Partner Center, described <a href="https://docs.microsoft.com/en-us/partner-center/csp-software-subscriptions">here</a>.

New functionality allows partners, migrating SPLA-licenses VMs with Windows Server and SQL Server to Azure, to switch from SPLA licenses to CSP with minimal efforts. Also it can be easily combined with <a href="https://docs.microsoft.com/en-us/partner-center/azure-reservations">Azure Reserved VM Instances</a> for better pricing.

Current list of products includes:
<ol>
 	<li>Windows Server Standard 8 Core License Pack + CALs</li>
 	<li>SQL Server Standard 2 Core License Pack</li>
 	<li>SQL Server Enterprise 2 Core License Pack</li>
 	<li>Windows Server RMS CAL.</li>
</ol>
The list will be extended in the future with other on-prem Microsoft products.

SPLA licensing doesn't allow to use Windows Server and SQL Server per-Core licenses in the public cloud. Ability to use SPLA licenses in the public cloud for different Microsoft products is granted by <i>DCP Eligible </i>property in <a href="https://www.microsoft.com/en-us/licensing/product-licensing/products.aspx">Service Provider Use Rights (SPUR)</a> document, which is specified as <i>SAL Editions only </i>for Windows Server and SQL Server. So it means that non-SAL SKUs (per-CPU or per-Core) don’t provide <i>DCP Eligible</i> rights and can't be used in the public cloud like Azure.

[caption id="attachment_7115" align="aligncenter" width="800"]<a href="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-windows-server.png"><img width="800" height="311" class="wp-image-7115" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-windows-server-1024x398.png" /></a> Windows Server DCP rights[/caption]

&nbsp;

[caption id="attachment_7105" align="aligncenter" width="800"]<a href="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-sql-server.png"><img width="800" height="279" class="wp-image-7105" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-sql-server-1024x358.png" /></a> SQL Server DCP rights[/caption]

&nbsp;

[caption id="attachment_7095" align="aligncenter" width="800"]<a href="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-definition.png"><img width="800" height="22" class="wp-image-7095" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/dcp-definition-1024x28.png" /></a> DCP definition from SPUR[/caption]

So if you are moving VMs of your managed customers from your datacenter to Azure, you can't keep using per-Core licenses of Windows Server and SQL Server from SPLA after the migration. Possible options are:
<ol>
 	<li>Use Azure Marketplace images with pay-as-you-go (PAYG) licenses for Windows Server and SQL Server included and pay for Windows Server and SQL Server based on the number of cores per hour.</li>
 	<li>Use this new capability of Partner Center to buy Windows Server and SQL Server licenses for 1 year or 3 years on behalf of your customers.</li>
</ol>
While 1st option provides more flexibility because of per-hour billing, option with software subscription upfront purchase is more cost efficient and provides more predictability. Both options are different from monthly billing in SPLA, so you should decide what is better in your scenario - per-hour billing or purchase for 1/3 year upfront.

Keep in mind that Windows Server licenses purchased in Partner Center require Client Access Licenses (CALs) for every user or device accessing the (physical) server if it runs outside Azure. If VMs runs in Azure, then Azure Hybrid Benefits for Windows Server is applied, which doesn't require CALs.

Prices for software subscriptions are available in a separate price list in Partner Center.

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-pricing1.png"><img width="1024" height="588" class="aligncenter size-large wp-image-7185" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-pricing1-1024x588.png" /></a>

<strong>Remember</strong> - currency is determined by customer location, not by partner location as for regular Azure services. E.g. if you are selling Windows Server licenses using your Partner Center account for Netherlands partner location, and customer is in Norway, you will be invoiced in Norway krone for those licenses, not in Euros.
<h2>Azure Hybrid Benefit for Windows Server</h2>
After procuring Windows Server licenses on behalf of your customer in Partner Center, you can use them for Windows Server VMs in Azure by utilizing <a href="https://azure.microsoft.com/en-us/pricing/hybrid-benefit/">Azure Hybrid Benefit (AHB)</a> for Windows Server. Windows Server VM with Azure Hybrid Benefit for Windows Server will be priced as a Linux VM of the same size.

Regular <a href="http://go.microsoft.com/fwlink/?LinkId=859786">Azure Hybrid Benefit for Windows Server rules</a> apply to Windows Server licenses, purchased through Partner Center:
<ol>
 	<li>Number of required core licenses is based on the number of VM cores (no matter if they are hyper-threaded or not).</li>
 	<li>Minimal amount of Windows Server licenses in order to use Azure Hybrid Benefit per customer - 16 cores (at least two 8-core packs).</li>
 	<li>16 core licenses allow to run two VMs with up to 8 core each, or single 16-core VM.</li>
 	<li>VMs with less than 8 cores still require 8 core licenses assigned.</li>
 	<li>VM price with Azure Hybrid Benefit for Windows Server is equal to the Linux VM price of the same size.</li>
 	<li>You can create VMs with Azure Hybrid Benefit activated using Azure portal, PowerShell or even ARM template. You can enable Azure Hybrid Benefit in the existing Azure VM, so it will be converted from PAYG Windows Server license to AHB. You can filter all VMs that are using AHB in the VM list. Those topics are covered on <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/hybrid-use-benefit-licensing">this page</a>.</li>
 	<li>If you are migrating an existing VM to Azure, don't forget about Windows Server activation - switch to Azure KMS servers after the migration as described in <a href="https://blogs.msdn.microsoft.com/mast/2017/06/14/troubleshooting-windows-activation-failures-on-azure-vms/">this article</a>.</li>
</ol>
Review <a href="https://azure.microsoft.com/en-us/pricing/hybrid-benefit/faq/">Azure Hybrid Benefit FAQ</a> for more details.
<h2>Azure Hybrid Benefit for SQL Server</h2>
After procuring SQL Server licenses on behalf of your customer in Partner Center, you can use them for Azure SQL Databases by utilizing <a href="https://azure.microsoft.com/en-us/pricing/hybrid-benefit/">Azure Hybrid Benefit (AHB)</a> for SQL Server. It reduces the cost of single database or elastic pool in vCore-purchase model, and also for Azure SQL Database Managed Instance (which is available in vCore-purchase model only). So you pay only for compute, and don't pay for SQL Server license twice.

Regular <a href="https://go.microsoft.com/fwlink/?linkid=868254">Azure Hybrid Benefit for SQL Server rules</a> apply to SQL Server licenses, purchased through Partner Center:
<ol>
 	<li>1 core license for SQL Server Standard grants rights to 1 vCore for Azure SQL Database, General Purpose tier only.</li>
 	<li>1 core license for SQL Server Enterprise grants rights to 4 vCores for Azure SQL Database in General Purpose tier, or 1 vCore for Azure SQL Database in Business Critical tier.</li>
</ol>
Keep in mind that Azure Hybrid Benefit for SQL Server applied to Azure SQL Database. If you want to use SQL Server licenses for Azure VMs with SQL Server, you can use <a href="https://azure.microsoft.com/en-us/pricing/license-mobility/">License Mobility</a> benefit to avoid paying for SQL Server twice. Minimal number of SQL Server core licenses per VM is four. You can install SQL Server Standard in the Azure VM is you have enough SQL Server Standard Core licenses, same for Enterprise edition.
<h2>Process walkthrough</h2>
Let's take a look on the process by creating a sample Windows Server VM with Windows Server licenses, procured through Partner Center.
<ol>
 	<li>Go to <a href="https://partnercenter.microsoft.com/">Partner Center portal</a>, select customer account from the list, and then select <em>Software</em> -&gt; <em>Add products</em>.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-1.png"><img width="1024" height="686" class="aligncenter size-large wp-image-7125" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-1-1024x686.png" /></a></li>
 	<li>Select <em>Segment: Commercial, Type: Software subscriptions, Terms: 1 Year</em> or <em>3 Years</em>.</li>
 	<li>Select the quantity of required licenses and click <em>Add to cart</em>.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-2.png"><img width="1024" height="585" class="aligncenter size-large wp-image-7135" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-2-1024x585.png" /></a></li>
 	<li>Then click <em>Review</em> and <em>Buy</em>.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-3.png"><img width="1024" height="588" class="aligncenter size-large wp-image-7145" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-3-1024x588.png" /></a></li>
</ol>
To use Windows Server licenses that you've just procured for new VM:
<ol>
 	<li>Go to <a href="https://portal.azure.com/">Azure portal</a> and create a new VM using any Windows Server image.</li>
 	<li>Choose <em>Yes</em> for <em>Already have a Windows license?</em> question and confirm that you have enough licenses for Windows Server with active Software Assurance. All licenses that you buy in Partner Center include Software Assurance for the duration of software subscription.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-1.png"><img width="1024" height="768" class="aligncenter size-large wp-image-7045" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-1-1024x768.png" /></a></li>
 	<li>Proceed through the VM creation UI as usual.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-2.png"><img width="880" height="781" class="aligncenter size-full wp-image-7055" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-2.png" /></a></li>
 	<li>Go to Configuration menu in VM settings and ensure that Use existing Windows license is set to Yes.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-3.png"><img width="797" height="455" class="aligncenter size-full wp-image-7065" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-vm-3.png" /></a></li>
</ol>
For existing Windows Server VMs:
<ol>
 	<li>If you want to activate Azure Hybrid Benefit for VM, that was created without Azure Hybrid Benefit, than just select Yes on VM Configuration page.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-convert-existing-vm.png"><img width="679" height="414" class="aligncenter size-full wp-image-7005" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-convert-existing-vm.png" /></a></li>
 	<li>If you want to activate Azure Hybrid Benefit for VMs that you want to migrate to Azure using Azure Site Recovery, check <a href="https://azure.microsoft.com/en-us/blog/hybrid-use-benefit-migration-with-asr/">this guide</a>.</li>
 	<li>If you've migrated this VM to Azure from your environment and it was previously activated using your internal KMS servers, than run the following command inside the guest OS to set Azure KMS servers for Windows activation instead:
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-kms.png"><img width="1024" height="366" class="aligncenter size-large wp-image-7085" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-kms-1024x366.png" /></a></li>
</ol>
To use SQL Server licenses that you've just procured for new Azure SQL Database:
<ol>
 	<li>Go to <a href="https://portal.azure.com/">Azure portal</a> and start creating new Azure SQL Database.</li>
 	<li>In the Pricing tier menu select vCore-based purchasing options, then select General Purpose or Business Critical tier.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-db-1.png"><img width="1024" height="497" class="aligncenter size-large wp-image-7025" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-db-1-1024x497.png" /></a></li>
 	<li>Click Yes for Save money option to activate Azure Hybrid Benefit for SQL Server and confirm that you enough SQL Server licenses with Software Assurance. All licenses that you buy in Partner Center include Software Assurance for the duration of software subscription.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-db-2.png"><img width="1024" height="602" class="aligncenter size-large wp-image-7035" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-new-db-2-1024x602.png" /></a></li>
 	<li>Proceed through SQL Database creation UI as usual.</li>
 	<li>If you want to activate Azure Hybrid Benefit for SQL database, that was created without Azure Hybrid Benefit, than just select Yes in Configure page in database settings.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-convert-existing-db.png"><img width="1024" height="617" class="aligncenter size-large wp-image-6995" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-convert-existing-db-1024x617.png" /></a></li>
</ol>
To use SQL Server licenses that you've just procured for new Windows Server VM with SQL Server:
<ol>
 	<li>Go to Software menu in customer account page on <a href="http://partnercenter.microsoft.com">Partner Center portal</a>.</li>
 	<li>Select SQL Server version and language.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-keys.png"><img width="1024" height="338" class="aligncenter size-large wp-image-7165" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/partner-center-software-subscriptions-keys-1024x338.png" /></a></li>
 	<li>Click Get keys and downloads.</li>
 	<li>Download SQL Server ISO. Product key is not required for SQL Server installation, it is embedded to the installer.</li>
 	<li>Create a new VM using regular Windows Server image. Don't use SQL Server Azure Marketplace images since you will be charged for SQL Server license using pay-as-you-go meter.</li>
 	<li>Activate Azure Hybrid Use Benefit for Windows Server during the VM creation if you want to utilize existing Windows Server licenses.</li>
 	<li>Proceed through new VM creation UI as usual.</li>
 	<li>Install SQL Server on that VM manually using the SQL Server installation media, downloaded from Partner Center.</li>
</ol>
To use SQL Server licenses that you've just procured for new Linux VM with SQL Server:
<ol>
 	<li>Create new VM in Azure using regular Linux template for one of the <a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes?view=sql-server-2017">supported Linux platforms</a>. Don't use SQL Server Azure Marketplace images since you will be charged for SQL Server license using pay-as-you-go meter.</li>
 	<li>Proceed through new VM creation UI as usual. <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-pricing-guidance#bring-your-own-license-byol">BYOL images</a> for SQL Server are not available in CSP <b>yet</b>.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-linux-vm.png"><img width="881" height="828" class="aligncenter size-full wp-image-7015" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-create-linux-vm.png" /></a></li>
 	<li>Install SQL Server on that <a href="https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017">Linux VM manually</a>. Installation media or product key is not required to install SQL Server on Linux.</li>
 	<li>Select edition on the last step - Standard or Enterprise, regarding SQL Server license edition that you've purchased through Partner Center.
<a href="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-install-sql-server-on-linux.png"><img width="980" height="683" class="aligncenter size-full wp-image-7075" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/ahb-install-sql-server-on-linux.png" /></a></li>
</ol>
To migrate existing SQL Server environment from on-prem to Azure and use SQL Server licenses, purchased in Partner Center, you have three options:
<ol>
 	<li>Migrate the source VM to Azure using Azure Site Recovery or similar VM lift&amp;shift tool, activate Azure Hybrid Benefit for Windows Server if needed.</li>
 	<li>Deploy new VM and install SQL Server as described above. Migrate existing SQL Server database using Azure Database Migration service or similar tool.</li>
 	<li>Create Azure SQL Database or Azure SQL Database Managed Instance and activate Azure Hybrid Benefit for SQL Server. Migrate an existing SQL Server database using Azure Database Migration service or similar tool.</li>
</ol>
Try this new great functionality in your Partner Center account today. It will help you during the migration from your environment to Azure and will simplify the license conversion from SPLA to CSP. Also, combine it with <a href="https://docs.microsoft.com/en-us/partner-center/azure-reservations">Azure reserved VM instances</a> and upcoming <a href="https://azure.microsoft.com/en-us/blog/announcing-general-availability-of-azure-sql-database-reserved-capacity/">Azure SQL Database reserved capacity</a> to maximize savings after moving workloads to Azure.]]></content:encoded>
    </item>
    <item>
      <title>Azure CSP Documentation released</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/azure-csp-documentation-released</link>
      <pubDate>Wed, 20 Sep 2017 05:28:12 GMT</pubDate>
      <dc:creator><![CDATA[Kirill Kotlyarenko [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=6945</guid>
      <description><![CDATA[I'm glad to announce that Azure CSP documentation was published today as a part of Azure technical...]]></description>
      <content:encoded><![CDATA[<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt">I'm glad to announce that Azure CSP documentation was published today as a part of Azure technical documentation. It is accessible using vanity URL: <a href="http://aka.ms/azurecsp">http://aka.ms/azurecsp</a> or using a full URL: <a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/">https://docs.microsoft.com/en-us/azure/cloud-solution-provider</a>.</p>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt">Azure CSP documentation provides answers to the most popular partner questions about Azure specifics in Cloud Solution Partner model, including:</p>

<ol type="1" style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle" value="1"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">Which Azure services are </span><a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/overview/azure-csp-available-services"><span style="font-family: Calibri;font-size: 11.0pt">available (and not available) in CSP</span></a></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">How to </span><a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/migration/migration-from-ea-to-csp"><span style="font-family: Calibri;font-size: 11.0pt">move existing Azure EA customers to CSP</span></a></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">How Azure partner experience looks like </span><a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/overview/partner-center-overview"><span style="font-family: Calibri;font-size: 11.0pt">inside Partner Center</span></a><span style="font-family: Calibri;font-size: 11.0pt"> (with videos)</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">How </span><a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/support/azure-csp-support-overview"><span style="font-family: Calibri;font-size: 11.0pt">customer support</span></a><span style="font-family: Calibri;font-size: 11.0pt"> of Azure customers in CSP should look like</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">How </span><a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/billing/azure-csp-billing-overview"><span style="font-family: Calibri;font-size: 11.0pt">Azure billing</span></a><span style="font-family: Calibri;font-size: 11.0pt"> works in CSP etc.</span></li>
</ol>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"> Also Azure CSP documentation provides details about <a href="https://docs.microsoft.com/en-us/azure/cloud-solution-provider/integration/integration-scenarios-list">50 integration scenarios</a> with UI screenshots and code examples on PowerShell, C# and REST API. It should helpful for CSP partners, that are looking for guidance how to integrate existing apps and services with Azure in CSP.</p>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt">There is a comment section in the bottom of every page in the documentation. So you are able to provide feedback and ask additional questions directly on documentation pages.</p>]]></content:encoded>
    </item>
    <item>
      <title>Migrating Datacenter to Azure - Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/migration-datacenter-to-azure-part-2</link>
      <pubDate>Thu, 15 Jun 2017 02:06:22 GMT</pubDate>
      <dc:creator><![CDATA[Robert van der Ent]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=6875</guid>
      <description><![CDATA[This post provides an overview of key technical considerations, actionable recommendations and...]]></description>
      <content:encoded><![CDATA[This post provides an overview of key technical considerations, actionable recommendations and common pitfalls related to migration of workloads from an on-premises datacenter to Microsoft Azure. The business related considerations were addressed within the <a href="https://blogs.technet.microsoft.com/hybridcloudbp/2017/06/05/migrating-datacenter-to-azure-part-1/">Migrating Datacenter to Azure – Part 1</a>.

Migrating IT systems and infrastructure to a private or public cloud can be a challenge even for the most seasoned IT professional. At the same time, it is the moment to revise, rethink and improve architecture and concepts.

The most common strategic drivers behind moving a datacenter to the cloud include: reducing capital expenditure, decreasing operational expenditure, improving elasticity, improving time-to-market and attaining improvements in security and compliance.

A datacenter migration must start with very careful planning and a phased approach to execution. Although the ease of entry to the cloud invites to easily rush in without a solid plan an inadequate cloud architecture almost always ends up preventing organisations from realizing the benefits that prompted the migration in the first place. Also, a datacenter migration is a strategic undertaking that must be executed without causing a significant impact on business operations, service delivery, performance, and data protection requirements.

This post is focused on the process and most essential design decisions towards the transformation of the on-premises environment into Microsoft Azure. Implementation specific topics, such as prescriptive guidance on Azure Resource Manager templates, Azure Network Security Group design or Azure storage configuration are not addressed within this post.

This post consists of multiple sections that do not need to be read in sequence and which may be referred to as required to assist in planning and migration activities:
<ul>
 	<li><strong>The Landscape and Feasibility</strong>. This chapter summarises the key areas to address when evaluating the business feasibility of moving the managed services provider platform into Microsoft Azure.</li>
 	<li><strong>Planning for Coexistence. </strong>Transformations or migrations are not accomplished Customer functional and non-functional requirements, platform requirements, and other dependencies force typically demand a phased approach to migration. This means that both the source and target environments will be active concurrently for at least the duration of the migration.</li>
 	<li><strong>Building the Inventory.</strong> A thorough understanding of the source environment is required when moving a workload, application or service from the source environment into the target environment. Dependencies within and between workloads must be identified to assess the impact of migration and plan an appropriate approach.</li>
 	<li><strong>Designing the Target Environment.</strong> This section will address considerations for planning the Microsoft Azure environment and provide examples of logical and physical architectures and approaches to leverage the agility introduced when embracing public cloud services.</li>
 	<li><strong>Migration. </strong>This section focusses on different approaches to moving services into Azure subscriptions, the approach to project execution as well as roles and responsibilities within the migration project team.</li>
</ul>
This post has been prepared for Managed Service Providers seeking to move their shared services and tenant-specific workloads into Microsoft Azure. Many of the concepts and recommendations within this post may also be applicable to other business types including, but not limited to Systems Integrators and traditional datacenter hosting companies.
<h1>The Landscape and Feasibility</h1>
<h2>Overview</h2>
The landscape for a typical Managed Services Provider (MSP) is often defined by platform efficiencies and resource sharing. Typically, MSPs host multiple tenants (customers) within their datacenters and these tenants share networking, storage and compute resources. Managed Services Providers also typically provide shared or common platform services for tenants including directory services, messaging services, publishing services, service delivery services and file services. It is the shared nature of these common services that introduces complexity, as the significant size of these environments prevents them from being transformed overnight. At any point in time during this transitioning cycle, there are two platforms that need to be operated and maintained concurrently.

When evaluating these parameters for transformation or migration planning it is essential to understand the overall process and steps that should be followed. Figure 1 provides an overview of the steps involved, and further details are provided elsewhere in this post.

<img width="770" height="385" class="aligncenter size-full wp-image-6885" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-1-Migration-Steps.png" />

Figure 1: Migration Steps
<ul>
 	<li><a></a><a></a><a></a><a></a><a></a><a></a><a></a> Cloud Solution Provider and Shared Services</li>
</ul>
Service providers deploying Azure solutions will typically utilise Azure subscriptions deployed under one of two Microsoft licencing programs; the Cloud Solution Provider (CSP) program and the Enterprise Agreement (EA).

Utilising the Microsoft Cloud Solution Provider (CSP) program, each Azure subscription provisioned under program the must contain resources utilised by one and only one tenant. Not only is this a requirement of the CSP program terms, but the approach also provides security, billing and operational benefits. For example:
<ul>
 	<li>Role-based access control may be configured at the subscription level to secure Azure resources.</li>
 	<li>All Azure resource consumption within a CSP-based subscription is linked to the subscription, enabling the service provider to readily identify the tenant with which the consumption is associated.</li>
 	<li>When requesting support from Microsoft, service providers can create service requests on behalf of their tenants that are linked to a specific tenant and subscription.</li>
</ul>
When Azure resources will be shared by multiple customers then Microsoft requires that an alternative licensing program such as an EA or Microsoft Online Subscription Program (MOSP) .

The appropriate Azure licensing model for a specific workload will depend on the MSP's business model and whether it wishes to own the customer relationship and solutions end to end. Most MSPs will prefer to licence Azure through the CSP program as it allows them to build a closer and higher value customer relationship.

Although Microsoft offers the CSP program as the primary cloud channel program for service providers, in some cases a hybrid model that combines both EA-based subscriptions and CSP-based subscriptions may be required. In the case study that was used as a reference for post, a combination of CSP and EA Azure subscriptions was used. Approximately 75% of the workloads were deployed into CSP-based subscriptions, with the balance using EA-based subscriptions for shared services.

From a technology perspective, there is no major difference since both environments are based on Azure Resource Management (ARM) deployment concepts.
<h2><a></a> Individual CSP Subscriptions Per Tenant</h2>
As mentioned earlier, hosting Azure resources for each tenant within their own CSP-based Azure subscription is the most common approach. However, if tenant (customer) resources are limited in number and rely heavily on shared services, setting up dedicated subscriptions for each tenant then configuring connectivity between the tenant environment and the shared services environment may not be cost effective.

There are a few considerations to be taken into account, but the most important one is if the tenant requires direct access to the resources such as a remote desktop session (RDS) directly hosted on a server system. This is not preferred in a shared environment since it has the potential for compromising security. If the customer is only consuming Software as a Service (SaaS) services through a UI, web services or a shared remote desktop session, that might warrant locating these single server systems into the shared services environment eliminating the overhead and cost of egress traffic from tenant environments into the shared services.
<h2><a></a> Cost Optimization and Planning</h2>
Many Managed Service Providers have adopted virtualisation technologies to optimise the usage of their compute, network and storage resources. Often the resource allocation for workloads hosted in these virtualisation environments are not optimised and more resources (eg. CPU cores, memory, disk) are assigned to workloads than what is necessary. In addition, virtualisation infrastructure will most commonly include redundant hardware to provide high availability for virtualised workloads.

When transitioning to a public cloud service, the approach to provisioning of workload resources must change. For example:
<ul>
 	<li>The public cloud does not provide hardware resilience in the same way as on-premises virtualisation platforms may. Workloads should incorporate availability measures at the application layer rather than relying on highly available infrastructure.</li>
 	<li>Service providers have limited control over maintenance cycles for public cloud infrastructure but are still required to meet service levels with their customers as described by their managed services agreement.</li>
</ul>
There are several considerations when planning for workload migration to the public cloud to ensure cost optimisation and an ongoing ability to deliver managed services according to service level agreements:
<ul>
 	<li><strong>Resource Capacity Requirements:</strong> It is of utmost importance to understand the actual resource requirements of a certain workload, application or services within managed services. By understanding specific workload requirements it is possible to allocate sufficient public cloud resources without over-provisioning and incurring unnecessary additional cost. Using resource definitions equivalent to an existing on-premises environment and adopting them unchanged in the public cloud infrastructure often leads to higher cost, thereby affecting the bottom line.</li>
 	<li><strong>Infrastructure Availability:</strong> Not having an underlying highly available compute infrastructure for workloads means that service availability must be accomplished at a workload level. Single server configurations must transition to multiple server configurations to provide continued availability of managed services in case underlying infrastructure is affected by issues or maintenance. Microsoft Azure Availability Set resources can be used to ensure virtual machines are distributed across multiple Fault Domains.</li>
 	<li><strong>Workload Availability:</strong> Increasing workload availability through the addition of virtual machine instances may increase operational costs and thereby impact the business case for virtual machine migration to Microsoft Azure. One approach to managing this impact is to appropriately scale virtual machines to meet workload requirements whilst adding additional instances to enable a workload to survive the loss of one or more virtual machines. Load balancing across virtual machines can be accomplished either at the application level by workload-specific mechanisms, or through the addition of infrastructure-level load balancing resources such as Azure Traffic Manager, Azure Web Application Gateway or Azure Load Balancers. Other approaches to providing workload resilience include utilising replication capabilities or cluster capabilities within a workload. For example, Active Directory Domain Controllers replication can provide resilience for Active Directory Domain Services, whilst Microsoft SQL Server Log Shipping or Always-On Availability Groups may provide resilience for database services. Replication is unlikely to result in cost optimisation, but may address requirements for ongoing service availability.</li>
 	<li><strong>Planning for Growth:</strong> Even if a decision is made to implement a single virtual machine instance, Microsoft recommends that single virtual machine instances are deployed in their own Availability Sets. This approach facilitates the addition of additional virtual machine instances in future if required, through their addition to the same Availability Set. By including the initial virtual machine in an Availability Set from the outset, a service interruption to join the virtual machine to an Availability Set when subsequent virtual machine instances are deployed is avoided.</li>
 	<li><strong>Virtual Machines with Licenced Software:</strong> Some VM images include pre-installed software, such as Microsoft SQL Server. The usage costs for VMs using these images will be higher than the cost of a VM deployed with an image including only the operating system, as a component of the usage cost is attributed to the licence for the included software. When deploying virtual machines it is important to consider whether to utilise images with pre-installed software, or whether to install application software after VM deployment and leverage other licencing models for the application.</li>
</ul>
The cost optimisations outlined above represent the "low hanging" fruits when planning a migration of an on-premises solution to Microsoft Azure. Additional complexities arise during migration planning when current platform capabilities are mapped to resources available in Microsoft Azure. These complexities are not address in post, but are instead discussed in some detail in Microsoft Azure online documentation and corresponding blogs.
<h1>Planning For Coexistence</h1>
Migrating managed services into Microsoft Azure is often unlikely to be accomplished overnight or over a weekend due to the size of the environment being migrated or the number and duration of verification steps used in the migration process.

To accommodate a phased migration it is necessary to plan for a period of coexistence in which some services continue to run on-premises whilst others are running in Microsoft Azure.

When planning for coexistence the following topics should be considered:
<ul>
 	<li><strong>On-Premises Bandwidth Requirements.</strong> During a period of coexistence the bandwidth needs of the on-premises environment will fluctuate. Initially, additional bandwidth may be required to accommodate communication between services hosted on-premises and those running in Microsoft Azure. Over time, the bandwidth requirements for on-premises systems will decrease as they are progressively migrated to Microsoft Azure and client applications access these through endpoints published in Microsoft Azure. Estimating bandwidth requirements and how these will change over the period of coexistence is important but can be a challenging task, particularly when the on-premises network is not well segregated or network components do no provide sufficient information for analysis.</li>
 	<li><strong>Deployment Sequence.</strong> When planning for coexistence, Microsoft recommends deploying core services in Microsoft Azure prior to migrating services that are dependent on these. For example, consider deploying (or migrating, when appropriate) the following services in Microsoft Azure early in the period of coexistence:
<ul>
 	<li>Active Directory Domain Controllers to provide authentication and authorisation services for subsequent application workloads.</li>
 	<li>Distributed File Services (DFS) nodes to provide file services with a local replica of content.</li>
 	<li>Remote Desktop Services (RDS) services to minimise the impact to end users.</li>
 	<li>SQL Server Always-On Availability Group nodes to provide a local replica of databases that may be used by applications.</li>
</ul>
</li>
</ul>
During the period of coexistence after core services are deployed in Microsoft Azure, consumption charges will accrue for these resources that are not yet in use. For this reason Microsoft recommends that the duration of this period is minimised.

During the period of coexistence, core services will be running both on-premises and in Microsoft Azure. Once workload migration is complete, core services that are running on-premises and that are required only for workloads that have been migrated to Azure may be decommissioned.
<ul>
 	<li><strong>DNS Switch or Platform Activation.</strong> Once a hybrid scenario is established and core services are deployed and extended into Microsoft Azure, platform activation is the next step. Although there are several approaches that may be used, two of these approaches are described below. Reconfiguration of endpoints or clients should be avoided due to the effort, timeframes and costs involved in making these changes. Two possible approaches include:
<ul>
 	<li><strong>Traffic Manager.</strong> Introducing Azure Traffic Manager to provide global load balancing services will enable load balancing of traffic across services running on-premises and in Microsoft Azure. Azure Traffic Manager operates as a mediation layer between the end points consuming services and the platform publishing the services. If running two environments concurrently is not an option, Traffic Manager may also be used to switch between environments without requiring a change to public DNS records. Using Azure Traffic Manager in this manner to support migration is typically temporary and provides a controlled approach to direct traffic to migrated workloads.</li>
 	<li><strong>DNS Switch. </strong>When performing a DNS Switch, the public DNS records for the workload are updated. Initially, these DNS records resolved to the IP address of the workload on-premises, however after migration the DNS records are updated to reflect the addresses of the Microsoft Azure endpoints for the migrated workload. When updating DNS records the time-to-live (TTL) of the records must be considered as it may take some time for systems to cease using cached IP addresses and query DNS servers for updated addresses. As this approach may result in a delay until all clients utilise the new IP address, performing a DNS switch is seen as the least controlled approach to connecting to migrated workloads. From the time the DNS record is updated, traffic may be directed to both the prior on-premises address and the address of the workload in Microsoft Azure for some time.</li>
</ul>
</li>
</ul>
<h1>Building the Inventory</h1>
Platforms operated by Managed Services Providers are often large and complex, composed of shared services and dedicated or multitenant customer environments. As discussed earlier, these platforms are not typically migrated overnight or even over a weekend into public cloud platforms such as Microsoft Azure. These transformations typically include a coexistence period during which workloads are migrated from on-premises systems into Microsoft Azure.

To make efficient use of cloud economics and to be able to migrate a workload from on-premises to Microsoft Azure without affecting the services availability requires a comprehensive understanding of the workload and source environment.

In smaller environments, a manual approach to compiling an inventory may be used, in which details such as server names, their current resource definitions and dependencies may be documented. In more complex or larger environments an automated approach to data collection is most often required. In these circumstances additional information including such as intra-application communication patterns and networking protocols and port information is also captured as this can be critical to planning a migration of workloads to Microsoft Azure.

The Microsoft Assessment and Planning Toolkit (MAP) is an agentless, automated, multi-product planning and assessment tool that can facilitate information gathering for desktop, server and cloud migrations. MAP provides detailed readiness assessment reports with extensive hardware and software information and actionable recommendations to help organisations accelerate their IT infrastructure planning process, and gather more details on assets that reside within their current environment. MAP also provides server utilisation data for Hyper-V server virtualization planning; identifying server placements, and performing virtualisation candidate assessments.

The Microsoft Assessment and Planning Toolkit (MAP) is free and may be downloaded.

Products that can provide similar or more comprehensive assessments than MAP are also available from third parties. For example, <em>HealthCheck for Azure</em> from BitTitan, <em>Cloudamize</em> and <em>SurPaaS MaaS</em> from Corent may be leveraged in migration scenarios .

Based on the output of these tools a platform diagram such as that shown in the next figure can be constructed that will support technical or planning activities related to the migration.

<img width="1132" height="787" class="aligncenter size-full wp-image-6895" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-2-Sample-Architecture.png" />
<h1>Designing the Target Environment</h1>
Although migrations from on-premise environments into public cloud platforms such as Microsoft Azure are often referred to as <em>lift and shift </em>migration<em>s</em>, the simplicity implied by this term does not mean that that planning is unnecessary. Even in lift and shift migrations it is still necessary to design and define the target environment hosted within Microsoft Azure. This chapter addresses the most essential aspects when designing the target environment.
<h2>Naming Conventions</h2>
When planning for deployment of resources within Microsoft Azure, it will quickly become evident that there are many more named objects to plan for than with on premises deployments. The use of consistent and intuitive naming conventions for managed objects (VMs, network interfaces, public IP addresses, storage accounts etc.) will make management and troubleshooting of operational issues easier and less error-prone. It is therefore important to establish and enforce a structured and robust naming convention. A naming convention should make it easy for administrators to create new objects and for everyone to identify and understand the role and purpose of the object.
<h2>Logical Design</h2>
Given the complexity of the Managed Service Provider environments, the infrequency of major migrations and the need for engagement of multiple disciplines in migration projects, a common best practice is to approach the target environment design and structure from a high level with a logical design. This approach will support conversations with the different stakeholders in the migration. The logical design organises the target platform in different layers, providing improved oversight and understanding of the target architecture. This can be applied to core or shared services as well as to customer environments within an Azure subscription provisioned under the CSP framework.

The next figure represents a sample logical design where the platform is composed of different layers and where the virtual networks and subnets are mapped to these different layers.

<img width="773" height="526" class="aligncenter size-full wp-image-6905" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-3-Logical-Architecture.png" />
<h2>Physical Design</h2>
Traditionally designing a platform often results in written documents describing the platform and providing configuration details as well as the trade-offs and decisions made during the process. This production of these documents is often a lengthy process, requiring a significant investment of effort and discipline to maintain. The migration to Microsoft Azure does not necessarily impact workloads but does impact the underlying infrastructure that is consumed as a service by the workload. Instead of producing lengthy descriptive documents, a more agile approach may be considered. For example, the following figures  provide examples of such an approach, wherein the different layers within the logical architecture are represented by a physical design based on purely on diagrams.

<img width="1028" height="635" class="aligncenter size-full wp-image-6915" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-4-Sample-Diagram-1.png" />

<img width="1563" height="563" class="aligncenter size-full wp-image-6916" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-5-Sample-Diagram-2.png" />

The diagrams are for illustrative purposes only.
<h2><a></a> Subscriptions and Delegated Administration</h2>
As mentioned earlier in this post, there are trade-offs to be made when determining whether a customer environment should be hosted within a MSP subscription or within a CSP provisioned Azure Subscription. Factors to consider when making this decision include:
<ul>
 	<li>The size of the customer environment.</li>
 	<li>The type of access a customer would require within that environment.</li>
 	<li>The ability to isolate customers from other customers.</li>
 	<li>The cost and operational considerations in operating one environment or several.</li>
 	<li>Licensing constraints that may limit the ability to deploy services or workloads shared by multiple customers within a given subscription type.</li>
</ul>
When customers' Azure subscriptions are provisioned through CSP, customers initially have no access to their subscriptions. Customer access to their subscriptions must be explicitly granted by the Microsoft partner through configuration of role-based access control settings on the subscription, a resource group or resource. Microsoft Partner accounts within the partner tenancy that have been assigned the Admin Agent role are able to administer customers' Azure subscriptions on their behalf by virtue of their owner role for customers' CSP Azure subscriptions.

To implement a consistent administrative structure across all CSP provisioned Azure subscriptions, Microsoft recommended that MSPs  create Azure Active Directory groups within customer Azure Active Directory tenancies, assign customer accounts to these groups as appropriate, then grant the groups the appropriate roles within customer Azure subscription(s). Depending on the scale of this exercise, this configuration may either be automated or performed manually.
<h2><a></a> Storage Accounts</h2>
At the time of writing, Microsoft Azure subscription has a limit of 200 storage accounts with limits on the maximum request rate per storage account. Storage accounts also include limits on the number of Input/Output Operations (IOPS) per share when utilising Azure Files. When planning a migration to Microsoft Azure, the approach to the use of storage accounts must be well thought out in order to ensure requirements for scalability, performance and availability are addressed.

A typical approach to storage account planning is to use storage accounts on a per logical architecture layer basis, where separate storage accounts are used for virtual machine operating systems and for data. To obtain cost efficiency and scale, the operating systems are installed on Local Replicated Storage while the data is stored on Geo Replicated Storage. Only when absolutely required, premium storage is used.

Where Microsoft SQL Server has been deployed on virtual machines and Azure Files is used to store SQL Server data and log files, one approach may include using one storage account per SQL Server instance for the operating system and a dedicated storage account for the data and log files. Data and log files should be located on separate shares to ensure the maximum IOPS are available.

This concept can be applied either within the core or shared services as well as within the CSP provisioned customer Azure subscriptions.
<h2><img width="1010" height="257" class="aligncenter size-full wp-image-6925" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-6-Sample-Storage-Account.png" /></h2>
<h2>Virtual Networks and Network Security Groups</h2>
Managed Service Providers will typically host network traffic from multiple customers within their environment. It is therefore necessary to isolate traffic for these customers through the appropriate applications of controls.

When planning an Azure network solution one common consideration is whether to use multiple VNETs for network isolation within an Azure subscription, or to use multiple subnets within a VNET. The approach selected will impact operational effort as well as solution complexity.

To minimise complexity, one approach is to use single VNETs consisting of multiple subnets, where the traffic is regulated within the environment using Network Security Groups. This approach can be applied to shared services environments as well as to customer-specific environments. Once again, different security zones or workload layers may be assigned to each subnet as represented within the logical design. The next figure illustrates  a sample application of this approach.
<h1><img width="884" height="314" class="aligncenter size-full wp-image-6927" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-7-Sample-VNET.png" />Migration</h1>
There are different approaches available to migration of workloads into the target Microsoft Azure environment. Before any migration commences, connectivity is typically required between the current on-premises datacenter and the target subscription in Microsoft Azure to enable migrated workloads to communicate with the workloads that still reside within the originating environment.

The following approaches to migration are common:
<ul>
 	<li><strong>Lift and Shift</strong>. This approach involves shutting down the VM in the source location, copying the VM data to an Azure storage account then recreating the VM in Azure. The data transfer will originate from the system where the copy action is started but the actual data to transfer comes from the location where the virtual Hyper-V disks are located. Where Microsoft Hyper-V virtual hard disks (VHD) are migrated no further conversion is Where other virtualisation platforms are used and virtual hard disks are not in the VHD format, conversion of virtual disks to a format supported by Microsoft Azure is required. Disk format conversion may take some time and the down time for the workload starts when the conversion starts. Once the virtual disk is in the VHD format, the virtual disk must be copied to the storage account in the Microsoft Azure subscription. This data transfer will occur over the Internet, and the throughput available will determine the duration of the transfer. Once the virtual disks for a VM are transferred, the virtual machine can be created in Microsoft Azure. The newly created virtual machine will come online in the new environment with new IP addresses however as the operating system disk has been retained the same hostname will be used. Although this process can be automated, the amount of data to transfer, the level of concurrency, downtime required for testing and the required overall downtime of the workload must be taken in consideration when selecting this approach.</li>
</ul>
<ul>
 	<li><strong>Azure Site Recovery.</strong> Azure Site Recovery (ASR) provides the capability to replicate a workload from a source environment to the target Microsoft Azure subscription. This replication is either performed by an agent installed on the Hyper-V host server (when no conversion is required) or it is performance by installing an agent in the guest operating system in case the Hyper-V hypervisor is an older version not supporting replication, or the workload either is located on physical servers or VMWare hosts. When using ASR there is no downtime during replication of disk content to Azure. Although the new virtual machine within the target environment can retain existing IP addresses or obtain new IP addresses, the virtual machine network name will stay the same which could introduce challenges when bringing up this virtual machine in the target environment while the source system is still active in the current environment. This approach minimises workload disruption as there is a short switch over time whilst the VM is brought online in Microsoft Azure. Where hard dependencies on the IP address of the migrated server exist, these must be identified and modified where necessary when using this migration approach.</li>
</ul>
<ul>
 	<li><strong>Rebuild or Build out.</strong> This approach is based on either the redeployment of the workload in Microsoft Azure, or the application-dependent capability to extend the workload through the addition of additional nodes. In the latter case, the ability to add additional nodes may also require application-level support for data replication. This approach also provides an opportunity to eliminate legacy applications, either known or unknown. Although this approach might be labour intensive, it provides an opportunity to run two environments concurrently, create a "clean sheet" situation and do a better and easier non-disruptive testing as well. Workload will get new names and new IP addressing within the target environment.</li>
</ul>
The three approaches described above are not mutually exclusive and a combination of these approaches may be applied based on the workload characteristics.
<h2><a></a> Migration Planning Template</h2>
The process of planning to migrate a customer environment to Microsoft Azure takes into consideration many factors, including dependencies between systems to be migrated. Specific migration activities are frequently assigned to different individuals or teams for execution. To facilitate coordination of tasks across the broader migration team, a structured approach to migration and sequencing of activities is required. The following section provides a guide to support this process.
<h3><a></a> Migration Plan - &lt;Customer Name&gt;</h3>
<table width="799">
<tbody>
<tr>
<td width="204"><strong> </strong></td>
<td width="420"><strong>Value</strong></td>
</tr>
<tr>
<td width="204"><strong>Migration owner</strong></td>
<td width="420"></td>
</tr>
<tr>
<td width="204"><strong>Migration date</strong></td>
<td width="420"></td>
</tr>
<tr>
<td width="204"><strong> </strong></td>
<td width="420"></td>
</tr>
</tbody>
</table>
<h3>Essential Customer Details</h3>
<table width="800">
<tbody>
<tr>
<td width="204"><strong>Name</strong></td>
<td width="132"><strong>Role</strong></td>
<td width="162"><strong>Email</strong></td>
<td width="126"><strong>Phone</strong></td>
</tr>
<tr>
<td width="204"><strong> </strong></td>
<td width="132"></td>
<td width="162"></td>
<td width="126"></td>
</tr>
<tr>
<td width="204"><strong> </strong></td>
<td width="132"></td>
<td width="162"></td>
<td width="126"></td>
</tr>
<tr>
<td width="204"><strong> </strong></td>
<td width="132"></td>
<td width="162"></td>
<td width="126"></td>
</tr>
</tbody>
</table>
<h3>Technical Details</h3>
<table width="800">
<tbody>
<tr>
<td width="102"><strong>Area</strong></td>
<td width="214"><strong>Object</strong></td>
<td width="308"><strong>Value</strong></td>
</tr>
<tr>
<td width="102"><strong>Azure</strong></td>
<td width="214"></td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">CSP Customer ID</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">Azure Subscription ID</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong>Locations</strong></td>
<td width="214"></td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">AD OU</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">Number of users</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">Location of user profiles</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
<td width="214">Number of user profiles</td>
<td width="308"></td>
</tr>
<tr>
<td width="102"><strong>Public URLs</strong></td>
<td width="522" rowspan="2" colspan="2">
<table>
<tbody>
<tr>
<td width="26"><strong> </strong></td>
<td width="207"><strong>URI</strong></td>
<td width="132"><strong>Certificate</strong></td>
<td width="78"><strong>Private Key</strong></td>
<td width="64"><strong>Port</strong></td>
</tr>
<tr>
<td width="26"><strong>[ ]</strong></td>
<td width="207"></td>
<td width="132"></td>
<td width="78"></td>
<td width="64"></td>
</tr>
<tr>
<td width="26"><strong> </strong></td>
<td width="207"></td>
<td width="132"></td>
<td width="78"></td>
<td width="64"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
</tr>
<tr>
<td width="102"><strong>Databases</strong></td>
<td width="522" rowspan="2" colspan="2">
<table>
<tbody>
<tr>
<td width="29"><strong> </strong></td>
<td width="121"><strong>DB Server</strong></td>
<td width="84"><strong>SQL Instance</strong></td>
<td width="109"><strong>DB Name</strong></td>
<td width="115"><strong>Collocation</strong></td>
<td width="55"><strong>DB Size</strong></td>
</tr>
<tr>
<td width="29"><strong>[ ]</strong></td>
<td width="121"></td>
<td width="84"></td>
<td width="109"></td>
<td width="115"></td>
<td width="55"></td>
</tr>
<tr>
<td width="29"><strong>[ ]</strong></td>
<td width="121"></td>
<td width="84"></td>
<td width="109"></td>
<td width="115"></td>
<td width="55"></td>
</tr>
<tr>
<td width="29"><strong>[ ]</strong></td>
<td width="121"></td>
<td width="84"></td>
<td width="109"></td>
<td width="115"></td>
<td width="55"></td>
</tr>
<tr>
<td width="29"><strong>[ ]</strong></td>
<td width="121"></td>
<td width="84"></td>
<td width="109"></td>
<td width="115"></td>
<td width="55"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
</tr>
<tr>
<td width="102"><strong>Reporting Server</strong></td>
<td width="522" rowspan="2" colspan="2">
<table>
<tbody>
<tr>
<td width="29"><strong> </strong></td>
<td width="204"><strong>DB Server</strong></td>
<td width="274"><strong>SQL Instance</strong></td>
</tr>
<tr>
<td width="29"><strong>[ ]</strong></td>
<td width="204"></td>
<td width="274"></td>
</tr>
<tr>
<td width="29"><strong> </strong></td>
<td width="204"></td>
<td width="274"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td width="102"><strong> </strong></td>
</tr>
</tbody>
</table>
<h3>Dependent Resources</h3>
<table width="800">
<tbody>
<tr>
<td width="36"><strong>Idx</strong></td>
<td width="204"><strong>Resource Name</strong></td>
<td width="384"><strong>Source Location</strong></td>
</tr>
<tr>
<td width="36"><strong>1</strong></td>
<td width="204">Special Library</td>
<td width="384">\\SERVERABC\Sources\ABS</td>
</tr>
<tr>
<td width="36"><strong>2</strong></td>
<td width="204"></td>
<td width="384"></td>
</tr>
<tr>
<td width="36"><strong>3</strong></td>
<td width="204"></td>
<td width="384"></td>
</tr>
</tbody>
</table>
<h3>Server Dependencies</h3>
<table width="800">
<tbody>
<tr>
<td width="37"><strong>Idx</strong></td>
<td width="113"><strong>Server Name</strong></td>
<td width="228"><strong>Depends on (before migration)</strong></td>
<td width="246"><strong>Depends on (after migration)</strong></td>
</tr>
<tr>
<td width="37"><strong>1</strong></td>
<td width="113">All Servers</td>
<td width="228">Active Directory</td>
<td width="246">Active Directory</td>
</tr>
<tr>
<td width="37"><strong>2</strong></td>
<td width="113">ABASDSSDS01</td>
<td width="228">OLDDSDASDS01 (RDS Server)</td>
<td width="246">NEWDSDASDS01 (RDS Server)</td>
</tr>
<tr>
<td width="37"><strong>3</strong></td>
<td width="113">ABASDSSDS01</td>
<td width="228">OLDDSESDES01 (File Server)</td>
<td width="246">OLDDSESDES01 (File Server)</td>
</tr>
</tbody>
</table>
<h3>Server Mapping</h3>
<table width="801">
<tbody>
<tr>
<td width="42" colspan="2"><strong>Idx</strong></td>
<td width="288"><strong>Server Name Current</strong></td>
<td width="294"><strong>Server Name New</strong></td>
</tr>
<tr>
<td width="36"><strong>1</strong></td>
<td width="294" colspan="2">XXXABCD01</td>
<td width="294">YYYRFGPAS01</td>
</tr>
<tr>
<td width="36"><strong>2</strong></td>
<td width="294" colspan="2">XXXSQLABC001</td>
<td width="294">YYYSQLWDER01</td>
</tr>
<tr>
<td width="36"><strong>3</strong></td>
<td width="294" colspan="2">...</td>
<td width="294">...</td>
</tr>
<tr>
<td width="36"></td>
<td width="6"></td>
<td width="288"></td>
<td width="294"></td>
</tr>
</tbody>
</table>
<h3>Migration Description</h3>
<em>The customer X environment is composed of a single application server and a single database server. Database services are obtained from SERVERABC through SQL Server instance SQLINSTANCEABC. The customer's clients are accessing the platform based on a remote desktop session through the following dedicated URL abc. </em>

<em>The migration approach is based on building the server system and performing a backup and restore of the current databases at the time of migration. The customer environment is built within a customer dedicated CSP provisioned Azure subscription. The CSP provisioned Azure subscription is provisioned prior to the build activities.</em>

<em>During the cut-over from the current to the new environment client access will be disabled; the data will be transferred through a backup and restore within the new environment. The DNS records will be updated and configured to refer to the new environment. Once the migrated workload is working and has been verified, and the DNS changes propagated, client access will be enabled.</em>

<em>As application server names and database server names will change the application configuration will be updated during the build of the environment.</em>
<h3><a></a> Migration Timelines and Milestones</h3>
<table width="800">
<thead>
<tr>
<td width="0"><strong>Milestone</strong></td>
<td width="0"><strong>Description</strong></td>
<td width="0"><strong>Duration</strong></td>
<td width="0"><strong>Start date</strong></td>
<td width="0"><strong>End date</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td width="42"><strong>M1</strong></td>
<td width="291">Migration plan approved</td>
<td width="82"></td>
<td width="91"></td>
<td width="116"></td>
</tr>
<tr>
<td width="42"><strong>M2</strong></td>
<td width="291">Built plan approved</td>
<td width="82"></td>
<td width="91"></td>
<td width="116"></td>
</tr>
<tr>
<td width="42"><strong>M3</strong></td>
<td width="291">Customer provisioned within CSP</td>
<td width="82"></td>
<td width="91"></td>
<td width="116"></td>
</tr>
<tr>
<td width="42"><strong>M4</strong></td>
<td width="291">Customer environment built within Azure</td>
<td width="82"></td>
<td width="91"></td>
<td width="116"></td>
</tr>
<tr>
<td width="42"><strong>M5</strong></td>
<td width="291">Environment test plan completed</td>
<td width="82"></td>
<td width="91"></td>
<td width="116">T - 1 week</td>
</tr>
<tr>
<td width="42"><strong>M6</strong></td>
<td width="291">Start Migration</td>
<td width="82"></td>
<td width="91"></td>
<td width="116">T</td>
</tr>
<tr>
<td width="42"><strong>M7</strong></td>
<td width="291">End Migration</td>
<td width="82"></td>
<td width="91"></td>
<td width="116">T + 4 hours</td>
</tr>
<tr>
<td width="42"><strong>M8</strong></td>
<td width="291">Customer environment shut down</td>
<td width="82"></td>
<td width="91"></td>
<td width="116">T + 1 week</td>
</tr>
<tr>
<td width="42"><strong>M9</strong></td>
<td width="291">Customer environment decommissioned</td>
<td width="82"></td>
<td width="91"></td>
<td width="116">T + 2 weeks</td>
</tr>
<tr>
<td width="42"><strong>M10</strong></td>
<td width="291">Completion migration plan</td>
<td width="82"></td>
<td width="91"></td>
<td width="116"></td>
</tr>
</tbody>
</table>
<h3><a></a> Migration Script</h3>
<table width="801">
<thead>
<tr>
<td width="0"><strong>Id</strong></td>
<td width="0"><strong>Action</strong></td>
<td width="0"><strong>Who</strong></td>
<td width="0"><strong>When</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td width="42"><strong>1</strong></td>
<td width="270"><strong>Planning</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>1.1</strong></td>
<td width="270">Migration Plan Approved</td>
<td width="156"></td>
<td width="156">M1</td>
</tr>
<tr>
<td width="42"><strong>1.2</strong></td>
<td width="270">Built plan approved</td>
<td width="156"></td>
<td width="156">M2</td>
</tr>
<tr>
<td width="42"><strong>2</strong></td>
<td width="270"><strong>Preparation</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>2.1</strong></td>
<td width="270">Onboard customer within CSP</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>2.2</strong></td>
<td width="270">...</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>3</strong></td>
<td width="270"><strong>Build</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>3.1</strong></td>
<td width="270">Deployment server A</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>3.2</strong></td>
<td width="270">Configure endpoint B</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>3.3</strong></td>
<td width="270">Deployment database instance B</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>4</strong></td>
<td width="270"><strong>Migration Readiness</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>4.1</strong></td>
<td width="270">Test plan A</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>4.2</strong></td>
<td width="270"></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>5</strong></td>
<td width="270"><strong>Migration</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>5.1</strong></td>
<td width="270">Disable access to current environment</td>
<td width="156"></td>
<td width="156">M5</td>
</tr>
<tr>
<td width="42"><strong>5.2</strong></td>
<td width="270">...</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>6</strong></td>
<td width="270"><strong>After care</strong></td>
<td width="156"></td>
<td width="156">M6</td>
</tr>
<tr>
<td width="42"><strong>6.1</strong></td>
<td width="270">Monitor performance</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>6.2</strong></td>
<td width="270">...</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>6</strong></td>
<td width="270"><strong>Decommissioning</strong></td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>7.1</strong></td>
<td width="270">Shutdown server A</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>7.2</strong></td>
<td width="270">Backup database Y</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>7.3</strong></td>
<td width="270">Remove VPN connection B</td>
<td width="156"></td>
<td width="156"></td>
</tr>
<tr>
<td width="42"><strong>7.4</strong></td>
<td width="270"></td>
<td width="156"></td>
<td width="156"></td>
</tr>
</tbody>
</table>
<h3>Risks</h3>
<table width="800">
<tbody>
<tr>
<td width="33"><strong>Idx</strong></td>
<td width="201"><strong>Risk</strong></td>
<td width="172"><strong>Additional Description</strong></td>
<td width="218"><strong>Mitigation</strong></td>
</tr>
<tr>
<td width="33"><strong>1</strong></td>
<td width="201">Communication XXX - YYY</td>
<td width="172">...</td>
<td width="218">...</td>
</tr>
<tr>
<td width="33"><strong>2</strong></td>
<td width="201">...</td>
<td width="172"></td>
<td width="218"></td>
</tr>
<tr>
<td width="33"><strong>3</strong></td>
<td width="201">...</td>
<td width="172"></td>
<td width="218"></td>
</tr>
</tbody>
</table>
<h3>Rollback Plan</h3>
<table width="800">
<tbody>
<tr>
<td width="33"><strong>Idx</strong></td>
<td width="590"><strong>Action</strong></td>
</tr>
<tr>
<td width="33"><strong>1</strong></td>
<td width="590">Stop ftp entrance in the new environment</td>
</tr>
<tr>
<td width="33"><strong>2</strong></td>
<td width="590">Activate ftp entrance in the old environment</td>
</tr>
<tr>
<td width="33"><strong>3</strong></td>
<td width="590">...</td>
</tr>
</tbody>
</table>
<h1>Project Management</h1>
The success of migration projects is dependent on thorough planning to ensure the timely and effective completion of required activities in all work streams.

The project management activities and responsibilities summarised in the following table
<table width="801">
<thead>
<tr>
<td width="180"><strong>Category</strong></td>
<td width="437"><strong>Description</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td width="180">Communications plan</td>
<td width="437">
<ul>
 	<li>Host weekly project operational status meetings with core team members</li>
 	<li>Host bi-weekly status calls between key stakeholders, partners and team to establish reporting cadence</li>
</ul>
</td>
</tr>
<tr>
<td width="180">Issue and risk management</td>
<td width="437">
<ul>
 	<li>Maintain all-up issues list and review them on bi-weekly status calls</li>
 	<li>Review issues, risks, and solution defect lists on a bi-weekly cadence.</li>
 	<li>Track and own follow-up tasks required to drive resolution where applicable. This may include coordination of support and expertise from third-party vendors</li>
</ul>
</td>
</tr>
<tr>
<td width="180">Project management</td>
<td width="437">
<ul>
 	<li>Develop schedules and task dependencies</li>
 	<li>Develop and maintain detailed project plan</li>
 	<li>Track deliverable reviews and acceptance</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2>Project Approach</h2>
Migration projects are typically run by multiple work streams that execute concurrently to optimise timelines. The following figure provides an example of such an approach.

<img width="1029" height="334" class="aligncenter size-full wp-image-6937" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Figure-8-Project-Plan.png" />

The schedule illustrated is typical when managed services are constructed around a shared services platform. During the initial phases, the shared services platform is either extended or moved into Microsoft Azure followed by the migration of tenant environments. The latter could possibly run in batches or collections of tenant environments depending on capacity and dependencies.

As illustrated, the project has been divided into different phases. The next section will provide further details on activities typically executed during each phase. The assumption has been made that the platform  is composed  of shared services and dedicated customer environment.
<h3><a></a> Planning Phase</h3>
During the Planning phase, the team prepares the functional specification, works through the design and prepares design documents. Following the completion of this phase, the team moves forward to begin construction of the solution in the Build phase.

The following are typical activities during this phase:
<ul>
 	<li>Build initial Architectural blueprint for shared services as well as dedicated customer environments within Microsoft Azure.</li>
 	<li>Build initial migration blueprints and planning for shared services as well as dedicated customer environments for migration from the current datacenters to Microsoft Azure</li>
 	<li>Setup initial project planning, team structure, tracking, and risk management</li>
 	<li>Validate and finalise Architectural blueprint</li>
 	<li>Validate and finalise migration blueprints</li>
 	<li>Finalise collection of customers to be migrated in this project</li>
 	<li>Establish project organisation and allocate resources</li>
 	<li>Identify 3rd party dependencies and engage these 3rd parties.</li>
 	<li>Define migration procedure verification criteria</li>
 	<li>Define platform acceptance tests on core components to support coexistence</li>
</ul>
Typically, this phase has the following output:
<table width="799">
<tbody>
<tr>
<td width="126"><strong>Name</strong></td>
<td width="504"><strong>Description</strong></td>
</tr>
<tr>
<td width="126">Initial Architectural Blueprint</td>
<td width="504">Initial platform architecture blueprint for shared services and dedicated customer environments within Azure</td>
</tr>
<tr>
<td width="126">Initial Migration Strategy</td>
<td width="504">Initial migration blueprint detailing the migration strategy, the plan for the shared services and dedicated customer environments</td>
</tr>
<tr>
<td width="126">Migration Readiness Definition</td>
<td width="504">Definition of platform acceptance test on core components to support coexistence</td>
</tr>
<tr>
<td width="126">Initial Project Management Framework</td>
<td width="504">Initial project management framework containing project planning, action log, decision log and risk register</td>
</tr>
</tbody>
</table>
<h3>Build Phase</h3>
During the Build phase, the team builds the core infrastructure and prepares the procedures and tools required for deployment (migration). Completion of this phase marks the transition to the Deployment phase.

The following are typical activities during this phase:
<ul>
 	<li>Preparation of procedures to build core platform building blocks</li>
 	<li>Preparation of procedures for platform migration</li>
 	<li>Execution of functional tests as defined in migration procedure verification criteria</li>
 	<li>Execution of functional tests as determined in the definition of platform acceptance test on core components to support coexistence</li>
 	<li>Validation and finalisation of procedures to build core platform building blocks</li>
 	<li>Validation and finalisation of procedures for platform migration</li>
 	<li>Build platform core components within Azure</li>
</ul>
Typically, this phase has the following output:
<table width="800">
<tbody>
<tr>
<td width="246"><strong>Name</strong></td>
<td width="384"><strong>Description</strong></td>
</tr>
<tr>
<td width="246">Initial Platform Build Procedures</td>
<td width="384">Initial build of procedures towards build core platform infrastructure building blocks</td>
</tr>
<tr>
<td width="246">Initial Platform Migration Procedures</td>
<td width="384">Initial build of procedures towards platform migration</td>
</tr>
<tr>
<td width="246">Azure Shared Services Platform</td>
<td width="384">Platform core within Azure, ready for coexistence</td>
</tr>
<tr>
<td width="246">Core platform functional verification report</td>
<td width="384">Report out on core platform functional verification</td>
</tr>
<tr>
<td width="246">Migration functional verification report</td>
<td width="384">Report out on migration procedures verification</td>
</tr>
</tbody>
</table>
<h3><a></a> Deploy Phase</h3>
During the Deploy phase the actual migration will take place, commencing with the shared services environment followed by the various dedicated customer environments.

The following typical activities could be identified:
<ul>
 	<li>Migrate shared services and dedicated customer environments from the source platform into Microsoft Azure.</li>
</ul>
<h3><a></a> Stabilize Phase</h3>
During the Stabilise phase, the team focuses on resolving issues and bugs.

The following typical activities could be identified:
<ul>
 	<li>Stabilise the environment and identify any issues. These issues will be triaged, prioritised and resolved.</li>
</ul>
<h3><a></a> Roles and Responsibilities</h3>
Table 2 outlines the typical roles and responsibilities of the team that will migrate the MSP environment into Microsoft Azure.

Table 2: Migration Project Team Roles and Responsibilities
<table width="801">
<tbody>
<tr>
<td width="0"><strong>Role</strong></td>
<td width="0"><strong>Responsibilities</strong></td>
</tr>
<tr>
<td width="0">Program Manager</td>
<td width="0">Makes key project decisions, assists in escalating unresolved issues to the Executive Steering Committee, and clears project roadblocks from a customer perspective</td>
</tr>
<tr>
<td width="0">Project Manager</td>
<td width="0">Primary point of contact for team

Responsible for managing and coordinating the overall project

Responsible for resource allocation, risk management, project priorities, and communication to executive management

Manages day-to-day activities of the project

Coordinates the activities of the team to deliver deliverables according to the project schedule</td>
</tr>
<tr>
<td width="0">Technical Leader</td>
<td width="0">Keeps technical oversight and responsible for long term technical alignment

Advises program manager on technical decisions

Advises program manager on deliverables sign off

Primary technical point of contact for the team that is responsible for technical architecture and code deliverables

Responsible for overall architecture and technical decisions as well as technical success.

First level of quality control

Coordinates technical status meetings

Oversees all technical delivery streams from a technical perspective</td>
</tr>
<tr>
<td width="0">Migration Lead(s)</td>
<td width="0">Responsible for end to end planning tenant migration.

Responsible for identification of dependencies

Tenant/customer contact

Performs and lead actual migration, if needed supported by SMEs</td>
</tr>
<tr>
<td width="0">Subject Matter Expert(s)</td>
<td width="0">Specific component related technical expertise

Responsible for implementation of any infrastructure and application aspects required to support the transformation within the current local environment.

Responsible for the build of target environment(s)

Responsible for implementation of migration scripts and procedures</td>
</tr>
</tbody>
</table>
&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>"Helping ARM" - Azure Resource Manager step-by-step training</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/helping-arm-azure-resource-manager-step-by-step-training</link>
      <pubDate>Tue, 13 Jun 2017 17:32:29 GMT</pubDate>
      <dc:creator><![CDATA[attila.macskasy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=6856</guid>
      <description><![CDATA[Talking to service providers in CEE it seems that Azure Resource Manager - ARM - the JSON based...]]></description>
      <content:encoded><![CDATA[<img width="300" height="185" class="alignnone size-medium wp-image-6865" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Helping_ARM_logo1s-300x185.jpg" />

Talking to service providers in CEE it seems that <strong>Azure Resource Manager - ARM - the JSON based template language</strong> is something everybody interested. Why? There are several reasons for that. ARM is the <strong>bridge between awaited Azure Stack and Azure</strong>, ARM helps you to create <strong>modern templates</strong>. Templates = <strong>your content to offer and ultimately sell to end users.</strong> Remember the Windows Azure Pack and VM Roles? ...that's hard. <strong>ARM is easy and efficient</strong>. When it comes to modern service provider offerings, templates and deployment automation is something <strong>very important for the future</strong>. Whenever we talk about <strong>value add or differentiators</strong>, I am sure, that the service provider knows ARM will have lots of benefits on the market (faster time to market, error less operations, deployment in hybrid environments, leverage quick start templates or Azure Marketplace items). My plan is to give you a <strong>step by step introduction to Azure Resource Manager </strong>- focusing on service provider needs in multi-tenant environments. Stay tuned!]]></content:encoded>
    </item>
    <item>
      <title>Migrating Datacenter to Azure - Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/hybridcloudbp/migrating-datacenter-to-azure-part-1</link>
      <pubDate>Mon, 05 Jun 2017 23:24:22 GMT</pubDate>
      <dc:creator><![CDATA[Robert van der Ent]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hybridcloudbp/?p=6835</guid>
      <description><![CDATA[Background
Quite  a while back a Managed Service Provider partner (hereafter referred to as "the...]]></description>
      <content:encoded><![CDATA[<h1>Background</h1>
Quite  a while back a Managed Service Provider partner (hereafter referred to as "the MSP") approached Microsoft regarding migrating one of their datacenter facilities to Azure. The MSP is an experienced managed service provider providing Dynamics ERP, ISV solutions focused on a few industries like automotive, retail and finance. Longer term they are looking to transform as a highly differentiated LOB cloud and managed services provider and they feel operating datacenters offers limited value, differentiation and profitability in this transformation. They are already providing managed services to Dynamics ERP customers on Azure, based on customer's Microsoft Enterprise Agreements and had significant expertise in managing Azure based solutions. Their colocation contract for own datacenter came up for renewal and they saw it as an opportune moment to evaluate using Azure as their primary datacenter for delivering Dynamics ERP + ISV solutions to their customers. However, the MSP had limited experience in migrating services from on-premise facilities into Azure, particularly at this scale. The MSP engaged with Microsoft for both technical guidance and business support for the migration. The MSP had initially attempted to proceed with the migration on their own but had not succeeded in making the business case for migration to Azure and in particular making the financial model viable.

At the time we used the MAP tool to gain insights into the actual resource consumption of the platform components, these days more advanced tools are available to accomplish this.

Part-1 of this post has been written with my colleague Chris Brown from the Applied Incubation Team.
<h1>Core Objectives</h1>
The following were the MSP's core objectives:
<ul>
 	<li>Transform into a cloud based managed services provider with deep expertise in Microsoft Dynamics ERP, CRM and Azure platforms.</li>
 	<li>Leverage Microsoft Azure as their primary DC for customer expansion and growth.</li>
 	<li>Migrate the existing customer managed services from their co-location datacenter facility to Azure.</li>
 	<li>Minimize down-time with any service outages to be managed out-of-hours of the Production service.</li>
 	<li>Run the current services in Azure for the same cost or less than in the co-lo facility.</li>
</ul>
<h1>Business Focus</h1>
Most guides for migrating to the cloud focus predominantly on the technology and barely consider the business aspects. However, large data center migrations are typically managed as business transformation initiatives and as such are signed-off by the company's senior business executives, which includes the CFO.Therefore, we approach data migrations as we would any other business transformation by considering the business and technical aspects as two sides of the same coin. In doing this we understand the fundamental business case and economics of the potential solution options, so that decisions on which is the most suitable migration option can be made by weighing up both the business and technical implications.

The following are key steps in our approach:

<img width="1021" height="390" class="aligncenter size-full wp-image-6845" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/06/Migration-Business-Focus.png" />
<h2>Understand the current business environment and economics</h2>
In order to make the datacenter migration to Azure successful you need to understand the business environment and the business drivers for the MSP wanting to migrate their datacenter to Azure in the first place.

For the MSP, they already had a significant portion of their infrastructure running in Azure and their long term vision was to be fully Azure-hosted. The colo contract for the datacenter in question was nearing the end of the contract period, and hence they had the opportunity to minimize exit fees by migrating this datacenter to Azure at this time, or alternatively renew the colo contract. The key factor for the MSP was understanding the cost of migrating to Azure (including migration, colo contract obligations, etc.) compared to the alternative of simply renewing their colo contract.
<h3>Symbiosis between business and technical solutions</h3>
Datacenter change programs often seem to be driven by the technical solution, whether intentionally or otherwise. In other words, the technical migration solution is designed and then the resulting business impact is determined from it. A better approach is to adopt a business-driven paradigm, where the goal is to derive certain desired business outcomes, and the technical solution is then engineered accordingly. However, the business solution and the technical solution are inherently connected; changes in the technical solution impact the business solution/outcomes and vice versa. Therefore, at a micro level it is important to understand the key connection points and trade-offs between the business and technical realms and then determine the optimal holistic solution. In practice, this starts by identifying the fixed and variable parameters across the business and technical areas. Fixed parameters constitute constraints which will bound the potential solution, see the next section. Variable parameters can be flexed, but may have dependencies on other parameters, so that changes in some parameters affect others. It can be tempting to try to design a unified equation that represents the entire ecosystem, but this can take a long time and ultimately prove to be inaccurate. The most expeditious approach is to model a variety of options - see the final section of this post which describes how to approach this.
<h3>Inflection points</h3>
The most common inflection point is when the existing datacenter infrastructure is out of capacity or end of life. It is crucially important to target these inflection points because trying to convince a company to undertake a transformation project (to migrate to Azure) when their existing datacenter solution is perceived to be fit for purpose is much harder.

Therefore, key aspects to consider are:
<ul>
 	<li>What are strategic objectives for the partner - e.g.: business model transformation, customer and revenue growth, moving away from additional capital investment?</li>
 	<li>What are the business drivers for migration to Azure?</li>
 	<li>What is the budgeting cycle in the company and who approves projects?</li>
 	<li>When are the inflection points? This could include expiring colo/maintenance contracts, hardware depreciation/refresh cycle, end of support, existing hardware reaching capacity, customer expansion/growth in newer geographies</li>
 	<li>Existing contractual arrangements? Who owns the existing infrastructure and maintenance, timelines, break-points, dependencies.</li>
 	<li>What is the detailed financial breakdown for the as-is on-premise hosting versus the Azure migration?</li>
</ul>
<h2>Understand the as-is architecture and constraints</h2>
Core to an optimal migration to Azure is understanding the on-premise solution. This obviously includes the technology, but crucially you must understand the business outcomes currently being delivered by the on-premise solution, which often involves probing several levels underneath the surface, past the technical specifications to understand the design decisions taken and why the solution has been configured the way it has. Also important is to understand the business and technical constraints, both for the current on-premise solution and for the migrated solution in Azure if these are different. Even for a "lift-and-shift" migration to Azure don't necessarily assume that the existing constraints still apply to the migrated solution, as you could be leaving options and/or money on the table.
<h2>Gather detailed as-is usage data</h2>
These days most on-premise infrastructure is virtualized. The most common approach when companies are investigating migrating their data center or solution to Azure is to map their on-premise virtual machine sizes to the nearest Azure VM t-shirt size running 24x7, rounding capacity up to the next biggest Azure VM t-shirt when there isn't an exact match. <strong>This is fundamentally flawed approach and results in Azure appearing very expensive.</strong>

For solutions which need to run 24x7 at a constant capacity level, Azure may not be the most cost effective option compared to on-premise. However, very few real-world solutions fit this pattern. The reasons why a direct one-to-one mapping of on-premise provisioned capacity to Azure will over specify capacity are:
<ul>
 	<li><strong>Constant capacity, specified for peak load.</strong>Infrastructure has been designed to handle peak demand at all times rather than flexing capacity over time to meet demand. Most demand follows cycles (daily, monthly, quarterly or based upon predictable triggers) where median load is a small percentage of the peak.</li>
 	<li><strong>On-premise capacity is not quick to change. </strong>Adding additional capacity to an on-premise server farm at worst case can involve procuring additional hardware, racking/stacking, etc., which could take several weeks. Therefore, architects and System Administrators will add an on-premise capacity buffer to mitigate against this.</li>
 	<li><strong>On-premise solution capacity is typically specified for estimated demand years into the future. </strong>Traditional on-premise projects often have 3 to 5 year business cases and it is common for infrastructure capacity to provisioned on day 1 for the forecast capacity in 3+ years' time.</li>
 	<li><strong>Required capacity was forecast but not measured. </strong>On-premise capacity was set based on a forecast and not retuned for actual demand.</li>
 	<li><strong>On-premise solution capacity will always be over specified by design. </strong>When architects perform capacity planning they will naturally add a capacity safety net to their forecasts, it's human nature. This is because under-provisioning capacity can have visible implications (solution could fail) but over-provisioning has far less visible implications (infrastructure costs are higher than they should be) and companies rarely hold architects accountable for their capacity estimates.</li>
</ul>
<h3>Provisioning guidance</h3>
What does this mean in practice? Our experience shows that average on-premise infrastructure utilization is often less than 40%. This means that companies could be paying 2.5 times more than they need to for infrastructure capacity than is not being used. For the MSP the average on-premise CPU and RAM (95<sup>th</sup> percentile) was 9% and 57% respectively.

Therefore, the most efficient approach is to ensure that Azure infrastructure capacity tracks the actual demand as closely as possible. This can be achieved by:
<ol>
 	<li>Considering customer growth, but provisioning infrastructure capacity in Azure appropriate for the actual solution demand now.</li>
 	<li>Use smaller percentage capacity headroom values. Scaling for 90% utilization is recommended for most solutions.</li>
 	<li>Ensure that the Azure capacity will scale up and down in response to changes in demand.</li>
</ol>
<h3>Measuring demand</h3>
The actual demand across the data center can be measured using the Microsoft Assessment and Planning (MAP) Toolkit, which is available as a free download. This can collect infrastructure usage data such as CPU, RAM, network and storage utilization and much more besides.

<a href="http://social.technet.microsoft.com/wiki/contents/articles/1640.microsoft-assessment-and-planning-toolkit.aspx">http://social.technet.microsoft.com/wiki/contents/articles/1640.microsoft-assessment-and-planning-toolkit.aspx</a>

For the MSP we used the MAP Performance Metrics Wizard to measure basic infrastructure information about the CPU, memory, disk, and network utilization of all the virtual machines every 5 minutes. MAP uses an agentless approach which was very simple to setup and only required a machine to tool on from a place on the network with the required port access to the VMs. It is recommended the run the data collection over an extended period to cover all expected performance cycles, i.e. over a month end etc. as applicable. Usefully, MAP also records the provisioned VM infrastructure specification (number of CPU cores, RAM, etc.) plus details on the operating system version also.
<h2>Develop a detailed financial model for a selection of solution options</h2>
Often companies thinking of migrating to Azure simply model a single option, which is a one-to-one equivalent in Azure of their on-premise deployment. As described in the previous section, mapping one-to-one into Azure is a mistake, but also only considering a single option is not a good idea. At a bare minimum, two options should be considered; a migrate to Azure option and a "stay on-premise" option. <em>Note:</em> the "stay as-is" option is rarely the same as "do nothing" because the economics of the current on-premise solution will invariably change over time. However, it is recommended that multiple Azure target options are considered and modelled along with the stay on-premise option to determine which has the best business case over time.
<h3>Option variations</h3>
Baseline options:
<ul>
 	<li>Stay on-premise option (baseline 1)</li>
 	<li>Direct one-to-one port into Azure (baseline 2)</li>
</ul>
Capacity focused variations to consider in the Azure options (some can be combined as needed):
<ul>
 	<li>Pre-Production environments started on demand (different types of pre-Production environments will have different capacity requirements, e.g. Functional Test versus Performance Test)</li>
 	<li>Pre-Production environments started on schedule (e.g. Monday to Friday 8am to 6pm - i.e. switched-off out of hours)</li>
 	<li>Single geography Production environments scaled back during non-peak hours</li>
 	<li>Tracking available capacity to actual demand in pseudo real-time, with a small buffer.</li>
 	<li>Pre-loading capacity for known peak cycles (e.g. start of business day logins, end of month batch run, etc.)</li>
 	<li>Consolidation of SQL hosts</li>
</ul>
Solution focused variations in the Azure options (suitability depends on the applications used and will likely have architecture impact):
<ul>
 	<li>Moving VM hosted SQL to Azure SQL</li>
 	<li>Utilizing PaaS services to replace some IaaS components</li>
</ul>
<h3>Modeling utilization</h3>
We have found that running Azure 24x7 is typically more expensive on average across the entire datacenter than the equivalent on-premise deployment, but factoring in actual utilization makes it cheaper. This is because Azure is more agile and can scale much quicker to changes in demand, and therefore can be deployed more efficiently (i.e. lower capacity previsioned for the same output performance) than the equivalent on-premise deployment. In particular, peaky and unpredictable workloads are a sweet-spot for Azure. In fact, any workload with large variations between the average and peak performance plays to Azure's pay-per-use strengths as you only pay for the capacity provided at a point in time. However, scaling Azure capacity up or down is not instantaneous and can take a few minutes depending on the application running, and where capacity requirements increase substantially in a short period then pre-loading nodes is a good idea, all of which needs to be factored into the financial model.
<h3>Target utilization when capacity planning</h3>
What approach should we use for analyzing historical utilization? Measuring historical utilization will invariably be done by sampling the utilization in fixed intervals. The first decision to make is how often to retrieve the measured statistics from the infrastructure; every 5 minutes is a good starter, but for highly varying loads you may want to reduce this. The longer the sampling interval (that is, the less frequently the statistics are retrieved), the greater the possibility that significant variation in the traffic during the sampling interval may be hidden due to the effects of averaging, but conversely the higher the sampling frequency the more load on the system.

What is the optimal target utilization? This will vary depending on the type of applications. When modeling using 95<sup>th</sup> percentile figure you are essentially targeting the infrastructure to be fully utilized. Do not then add an additional utilization buffer on top, instead change the percentile figure to suit your workload - e.g. if 5% saturation is too high for your workload then model the 98<sup>th</sup> percentile and compare this. Note: this is different from the parameters you will set for Azure Autoscale and VM scale-sets.

<a href="https://azure.microsoft.com/en-gb/documentation/articles/best-practices-auto-scaling/">https://azure.microsoft.com/en-gb/documentation/articles/best-practices-auto-scaling/</a>

The next decision is which statistical method to apply to the data. Mean averages or peak capacity are common measures used but these approaches will underestimate or overestimate capacity needs respectively. Typical infrastructure usage is actually quite spiky, so a high percentile interval such as the 95<sup>th</sup> percentile is commonly used as it is more sensitive to outliers. Basically the 95<sup>th</sup> percentile says that 95% of the time the usage is below this amount. Conversely though this means your infrastructure will be saturated 5% of the time. The MAP tool described in the previous section will provide 95<sup>th</sup> percentile figures out of the box in its Performance Metrics Wizard report.
<h3>Cost drivers</h3>
Understanding your specific cost drivers is the first place to start from a variety of viewpoints (environments, function, location, etc.) as these can vary dramatically by company, although the remainder of this paragraph describes some generic truths.For the MSP, more than half of their on-premise costs were due to networking and storage due to over-engineered network architecture and expensive SAN storage, which is atypical. From an environment viewpoint, 40% of their costs were due to pre-Production environments which were running 24x7. Then from a functional viewpoint, 30% of their costs were driven by SQL. Therefore, analyzing the costs through different lenses helped to identify potential optimization solutions.

Azure costs are driven by the CPU/RAM needed, with storage and networking costs tending to be a much smaller component of the total costs. However, interestingly this is typically different with on-premise costs where networking and storage (if SAN based) can be a much bigger cost driver.
<h3>Things that are included in Azure but are usually missed in financial modeling comparisons</h3>
Azure includes a number of elements as part of the core service that are usually missed in financial modeling comparisons. To ensure an "apples for apples comparison" with the on-premise option ensure you include the following line-items in you on-premise financial model (non-exhaustive list):
<table>
<tbody>
<tr>
<td width="132"><strong>Financial Model</strong></td>
<td width="227"><strong>Azure model</strong></td>
<td width="242"><strong>On-premise model</strong></td>
</tr>
<tr>
<td width="132">Capital costs for hardware

&nbsp;</td>
<td width="227">
<ul>
 	<li>For Azure you will have zero hardware capex costs, which can be important factor for the companyâ€™s CFO.</li>
 	<li>Resulting cash flow position will be improved.</li>
 	<li>Hardware replacement due to failure already included.</li>
 	<li>Hardware refreshes already included.</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Capex for upfront hardware</li>
 	<li>Capex budget for replacement hardware due to failures (budget 2-5% annually)</li>
 	<li>Capex budget for hardware refresh (every 3-5 years depending on company strategy)</li>
 	<li>Cost of capital (interest incurred on upfront capex)</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Hardware support/ maintenance</td>
<td width="227">
<ul>
 	<li>Included</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Hardware support resource costs must be added</li>
 	<li>3rd-party infrastructure (e.g. SAN) maintenance contracts costs must be added</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Redundancy</td>
<td width="227">
<ul>
 	<li>PAYG means cold standby nodes are minimal cost (no compute costs)</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>For disaster recovery, need to account for duplicate reserved infrastructure.</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Utilities</td>
<td width="227">
<ul>
 	<li>Included within Azure datacenter network</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Power costs must be added</li>
 	<li>ISP bandwidth costs must be added (consider whether more or less internet bandwidth needed)</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Security</td>
<td width="227">
<ul>
 	<li>Baseline included</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Physical security costs must be added (upkeep of alarms, etc.)</li>
 	<li>Manpower costs (guards, caretakers, Network Architects, etc.) must be added</li>
 	<li>Costs for DDoS, intrusion protection, etc. must be added</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Real-estate</td>
<td width="227">Included</td>
<td width="242">
<ul>
 	<li>Cost of datacenter premise must be added (rent, upkeep, etc.)</li>
 	<li>Real-estate manpower costs must be added</li>
</ul>
</td>
</tr>
<tr>
<td width="601" colspan="3"><strong><em>Other factors (not necessarily to include in your financial model)</em></strong></td>
</tr>
<tr>
<td width="132">Financial risk (not directly bottom-line impacting)</td>
<td width="227">
<ul>
 	<li>More predictable costs.</li>
 	<li>Costs track revenue more closely.</li>
 	<li>Can scale-up/down incrementally if demand increases/decreases.</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Upfront commitment based on demand forecast means company is bearing the risk.</li>
 	<li>Costs are spikier.</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Environmental Sustainability</td>
<td width="227">
<ul>
 	<li>Committed to sustainability, reducing CO<sub>2</sub>, water usage.</li>
</ul>
</td>
<td width="242">
<ul>
 	<li>Required attribute for some consumers. Lack of sustainability can be a negative differentiator.</li>
</ul>
</td>
</tr>
<tr>
<td width="132">Opportunity cost</td>
<td width="227">
<ul>
 	<li>Reduced cost of pursuing opportunities.</li>
 	<li>Potential decreased cost of sale/higher opportunity win rate.</li>
</ul>
</td>
<td width="242"></td>
</tr>
</tbody>
</table>
&nbsp;
<h3>Include all existing contractual liabilities in the model</h3>
When financial modeling you must make sure all additional on-premise liabilities are included as costs in the to-be Azure model. There will be existing contractual liabilities for the on-premise datacenter such as hardware rental, hardware maintenance, software licensing, support, etc. which will probably not neatly finish at the same time, so there could be exit fees. These exit fees for example are part of the "cost to change" so should be included in the Azure financial model. There will also be costs for the migration itself in terms of manpower and potentially also license fees for migration software. In addition, the biggest factor is that you will have to account for the costs of both the on-premise costs and the Azure costs during the migration period, with the former ramping down and the latter ramping up.
<h3>Sunk costs and depreciated assets</h3>
One common sticking point with CIOs in particular are existing on-premise datacenter assets that have not yet fully depreciated. Companies often buy datacenter equipment upfront with the plan to straight-line depreciate them over say 5 years. If there is still a remaining book value for the assets (i.e. they haven't yet fully depreciated) then there can be hesitance to invest in migrating to Azure. However, in the case of upfront payments the datacenter equipment is a sunk cost. Therefore, the remaining book value of the equipment is irrelevant as the asset write-down for the remaining book value also represents a sunk cost because the cost of the equipment was incurred in the past. Therefore, what matters is how the financial model for migrating to Azure looks compared to the remain on-premise option.

An exception to this is where the company has not paid upfront for the datacenter equipment and is instead leasing it for example. However, even in this situation the important thing is to model and compare financials of the potential future options, irrespective of any sunk costs that occurred in the past.
<h3>Time horizon for financial modeling</h3>
When creating the financial model, the time horizon to model over depends on the business environment but 3 years is a typical average. However, you should ensure that the period is long enough to incorporate major cost events such hardware refreshes, support contract renewals, etc.
<h3>Azure licensing</h3>
<em>Note:</em> This paper is not intended to cover licensing in any depth, but rather highlight this as an important focus area.

There are several Azure licensing options available to MSPs across both direct and indirect models. Determining which vehicle to use for licensing Azure depends on the MSP's business model and whether or not they want to own the customer relationship and solutions end-to-end. Most MSPs want to do this as it allows them to demonstrate more value to their customers and hence build higher-margin and stickier customer engagements. As such, CSP should be seen as the primary Microsoft cloud channel program for Managed Service Providers. However, in some cases you may need to consider a hybrid model that combines both EA-based subscriptions and CSP-based subscriptions.

For the MSP, we used a combination of CSP for 75% of the workloads, with EA used to cover the remaining shared services.We also leveraged existing SQL licenses in Azure.
<h3>Scalability of the solution</h3>
Some of the key characteristics of cloud native applications include:
<ul>
 	<li>Runs as one or more stateless processes,</li>
 	<li>Supports concurrency and the ability to scale processes horizontally (elastic scaling),</li>
 	<li>Disposability, designed to fail gracefully so that nodes can be replaced easily.</li>
</ul>
The vast majority of applications that you will be migrating to Azure will not be cloud native.In fact, most will probably be traditionally design 3 tier applications running in virtualized form.For some initiatives you may have the luxury to re-architect some of the applications during the migration, but our experience is that most datacenter migrations are primarily a lift-and-shift port of the current applications to Azure, and any re-architecting comes as a stage 2 activity.

Therefore, the ability of the application to scale horizontally up and down in respond to changes in demand will vary depending on the application's design, as will your ability to track the provisioned capacity to the demand. In an ideal world your provisioned capacity curve will be a function of your demand curve plus your capacity buffer, but in reality you will need to factor in the ability of your application to scale into the equation.
<h3>When to consolidate resources</h3>
Companies will try to consolidate resources as part of their migration to Azure in order to reduce the costs. In some areas this is a good thing to do but more often than not this tactic can have negative implications if not done correctly. Decoupling your applications and enabling independently scalable micro-services is a good architectural pattern to follow, and therefore consolidation of VMs is a trade-off to reduce costs. Consolidating properly sized VMs does not reduce costs, because the consolidated "big VM" infrastructure resources will be the same as sum of the constituent VMs that were combined, and now you have coupled them together. However, for poorly sized VMs, consolidation can appear to allow you to "run more on less", but in reality all you have done is reduce the total (over-specified) capacity buffer you had before. Where consolidation can be beneficial to the overall solution economics is where it facilitates more efficient licensing, e.g. for SQL Server. A larger consolidated highly-available SQL cluster is typically more cost-effective than several smaller HA SQL clusters.
<h3>Options with SQL and using PaaS to reduce costs</h3>
For the MSP 30% of their costs were driven by SQL. The reason for this was that they had a large number of small SQL Servers so in the majority of cases each customer tenant was isolated. They had used the pattern of most customers having a single primary SQL node running SQL Server Standard Edition with a cold standby node. This provided basic fault-tolerance as in the event of a failure with the primary node, service was manually failed-over to the secondary cold standby node. This design was entirely driven by the need to minimize SQL licensing costs, and hence did not use SQL clusters with SQL Enterprise Edition for that reason.

There are two approaches that can be taken with this approach:
<ol>
 	<li>Azure now supports high-availability with SQL Standard edition, which can mitigate lack of scheduling ability for Azure maintenance windows.</li>
 	<li>Use Azure SQL PaaS service to provide HA service, either provisioned by database or by required performance.</li>
</ol>
For the MSP, we utilized approach #1 above as this had minimal architectural impact. Modelling the financials for both approaches showed that approach #2 would be more cost effective but requires that your application layer support Azure SQL, which for the MSP running a COTS product it didn't. However, over time as more applications support Azure SQL this will become less of an issue.
<h3>Existing SLAs and Contracts</h3>
Developing new options to drive financial improvements can make a big difference to the overall Azure business case, but some options may not fit with existing contractual obligations or SLAs. For example, one approach which has been mentioned already that can reduce costs significantly is to switch-off some pre-Production environments outside of office hours. However, for the MSP this was not possible due to customer contractual SLAs that stated that Test environments needed to be available 24x7.Â  Even in this situation though we were able to make to leverage Azure to make cost savings:
<ol>
 	<li>Reduce Test environment capacity out of office hours (based on usage data) while still keeping the environments available 24x7.</li>
 	<li>Plan for a future product update that gives the customer the choice of Test environments being available 24x7 or just during office hours, with different price points.</li>
</ol>
<h3>Migration approach - a business view</h3>
The duration of the migration period is a trade-off between cost and risk. Slow migration is lower risk, but the longer the migration the higher the double-counting costs where you are running the on-premise systems and Azure in parallel.

Another element to consider is big-bang cutover versus iterative migration. If an iterative migration is an option, this is preferable from both a cost and risk perspective. A big-bang cutover requires you run full capacity on-premise and Azure environments in parallel and keep them synchronized up to the cutover point. An iterative approach also allows you to learn from mistakes on a smaller scale and refine your migration as you go.

For the MSP we adopted an iterative migration over a 4 month period, striking a balance between parallel-run cost and risk.
<h3>Refine the model after initial Azure deployment</h3>
Modeling is just a forecast. It is recommended you use MAP to measure actual utilization in Azure where possible and tune your available capacity and autoscale rules accordingly.
<h3>Ensure contractual cover for all agreements</h3>
The resulting decisions from the financial modeling must be documented as a set of agreements in a contract between Microsoft and the MSP, spelling out clearly the expectations on both sides. Make sure you adhere to Microsoft policies and seek the required legal and contractual support. The contractual documentation should include but not be limited to the following elements:
<ul>
 	<li>The agreed migration approach and high-level solution</li>
 	<li>Agreed goals and KPIs for the partnership</li>
 	<li>The financial model headlines, e.g. MSP consumption/revenue expectations over time</li>
 	<li>Financial gives and gets across Microsoft and the MSP (including resource commitments)</li>
 	<li>Technical gives and gets across Microsoft and the MSP</li>
 	<li>High-level timeline for the change program, showing work-streams</li>
 	<li>Protection of Microsoft and/or Partner IP used during the program</li>
 	<li>Ownership of any new IP resulting from the program</li>
 	<li>Specific roles and responsibilities between Microsoft and the MSP</li>
 	<li>Governance approach including Steering Committee membership and communication cadence</li>
 	<li>Escalation path and agreed criteria for escalation</li>
 	<li>Agreement from the MSP to create a Case Study.</li>
</ul>
We'll cover the technical aspects in the second part of this article: <a href="https://blogs.technet.microsoft.com/hybridcloudbp/2017/06/15/migration-datacenter-to-azure-part-2/">Migration Datacenter to Azure – Part 2</a>.]]></content:encoded>
    </item>
  </channel>
</rss>