In the introduction to this series, we identified that there are multiple parts of the cloud migration journey; namely: Discover, Assess, Migrate, Manage, and Operate.
We will cover various tools that either falls into one of or span multiple phases in the migration journey.
As a quick-link reference, here is the list of tools this series will cover:
- Part 1: Introduction
- Part 14: Manage and Optimize
- Part 15: Third-Party Tools
- Part 16: Summary
Shifting our focus to the tool(s) that fall within the third phase, Migrate, the first tool that we categorize under Migration is the Azure Websites Migration Assistant.
You may see this service also referred to/called “Azure App Service Migration Assistant” or the “Windows Site Migration Tool”.
There are 2 installation options available on the main page, an online version (labelled as “Install Tool”) and an offline version (labelled as “Download for Offline Install”).
The assessment scans for:
- Websites running on the IIS server
- Applications and virtual directories configured under each site
- Application pools used by the sites and applications and their settings
- HTTP and HTTPS bindings used by the sites
- Databases defined in web.config using the connectionString attribute
Although the tool is generically labelled as “Azure Websites Migration”, it is only compatible with Windows/IIS. However, although not apparent, there is also a Linux version of the tool called the Linux Site Migration Tool.
The Linux version supports Ubuntu, CentOS, and OpenSUSE, but the documentation does not indicate what version of these Operating Systems is supported (whereas for the Windows version, it clearly states Windows Server 2003 / IIS 6 and newer). The Linux version also supports the WordPress, Drupal, and Joomla PHP frameworks; but again, with no indication as to supported versions.
What Is It Used For?
This tool is specifically used for Websites, as the name implies. It works against Internet Information Service (IIS) and Apache and will identify which of your websites are able to be migrated into Azure Websites Platform-as-a-Service (PaaS). It will also identify any components that cannot be migrated or are unsupported in the PaaS platform.
Not only will the tool migrate the website, but also any associated databases it uses. The documentation does not indicate how it will migrate the associated databases, or to what platform (i.e. Azure SQL PaaS, MySQL PaaS, MySQL In-App, etc.).
Pro’s vs Con’s
Here is a quick list of what we deem as Pro’s/Con’s of this tool.
- Supports Windows Server 2003 and Internet Information Service (IIS) 6 or newer
- Support for Ubuntu, CentOS, OpenSUSE, along with WordPress, Drupal, and Joomla
- Remote migration (no software or agents required on the Web Server)
- Multiple tools required, dependent if using Windows or Linux
- No indication of supported Linux OS versions
- Installation files/process seems to be incomplete and broken
- It is unclear if this tool is deprecated or still being supported (assuming deprecated/abandoned since latest information is from 2014)
- Lack of documentation, broken links on the information page
When I tried running this tool on a brand-new Web Server (running Windows Server 2016), I encountered the following error. Note that this was while using the “offline” version of the install.
When I attempted to re-install the tool using the “online” version, a further prompt to install Web Deploy was presented. This may have been what was missing from the “offline” version of the installer.
But alas, I still encountered the same error.
With the label of “Azure Websites Migration Assistant” I would expect the tool to support both Windows and Linux and both Internet Information Services (IIS) and Apache. It’s a little disappointing that you must use 2 different tools to support a heterogeneous environment. If that is the case, I would have thought that the Windows-only version of the tool would be labeled as “Windows Site Migration Tool” to follow the same naming pattern as the Linux version. Or better yet, both tools would be combined to provide more flexibility.