Friday, June 29, 2012

Applying the Factory Model to Bulk Cloud Migration

This post discusses moving applications to the public cloud in bulk, where dozens or hundreds of applications are in view. After reviewing the challenges and opportunities inherent in bulk migration, an efficient factory-based approach is outlined. Lastly, Neudesic’s bulk migration service for the Windows Azure platform is described, Azure Migration Factory. Here's what we'll cover:

The Nature of Cloud Migrations
Challenges and Opportunities Inherent in Bulk Migrations
A Factory Model Approach to Cloud Migration
Neudesic’s Azure Migration Factory
Summary

NOTE: Everything described here is equally applicable to both Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) cloud computing. The term “application” refers to the IT assets that make up a software solution. When targeting PaaS, “application” means one or more sets of software code, configuration, and data that work together. When targeting IaaS, “application” means one or more virtual machines containing software, configuration, and data that work together. In either case, the “software” could refer to existing custom-developed code and/or a commercial product.

The Nature of Cloud Migrations

Before we contrast individual migrations with bulk migrations, let’s briefly review the common ground intrinsic to any production cloud migration. There are application-level activities to perform as well as organizational readiness activities.

Application Activities: Assessment, Planning, Technical Work, Support

Whether one is migrating a single application to the cloud or a dozen, certain things always need to be done. An assessment provides the business and technical analysis needed to make a sound go/no-go decision on moving to the cloud. A migration plan identifies the activities and sequence needed for an orderly and non-disruptive migration. The migration itself is technical work that entails a variety of IT, development, and QA tasks. The people, processes, and systems responsible for monitoring and management need to support the application in its new setting.

Organizational Activities: Strategy, Compliance, Integration, Adaptation

There are also organizational activities that must accompany cloud migration. These include: defining a cloud strategy and setting policies and guidelines on appropriate uses; ensuring buy-in across the company from stakeholder departments who must be satisfied about security, risk management, compliance, management, and disaster recovery; integration projects to ensure cloud-hosted assets can interoperate with internal systems; and adaptation of existing application lifecycle processes (deployment, management) to accommodate cloud-hosted applications.
Typically these organizational activities are trigged by the first production migration to the cloud, and refined over time as experience and comfort level with the cloud increases. In some ways, the first migration is the most expensive migration.



Challenges & Opportunities Inherent in Bulk Migrations

Bulk migrations bring both challenges and opportunities:

Challenges
A bulk migration is a serious commitment. Whereas an individual application migration might be sponsored by a single department, a bulk migration implies broad buy-in by departments across the organization on a cloud strategy and supporting operational changes. A bulk migration isn’t likely to happen until there is a strong degree of confidence and consensus by stakeholder departments on cloud vision, platform/provider, and integration partner. A proof-of-concept often precedes a bulk migration to validate the platform and partners.

A bulk migration is challenging to estimate properly. In a single-application migration the candidate application can be deeply studied. In a bulk migration you rarely have that luxury and need to make high-level estimates based more on tribal knowledge about applications and less on direct examination of code.

A bulk migration represents a sizeable effort, one that needs to be carefully managed. Surprises can surface in the midst of any application migration; when performing a large number of migrations in parallel a mounting number of surprises could quickly put the budget and timeline at risk if not managed well.

A bulk migration may encounter product obstacles. Products your software is dependent on may or may not be compatible with the cloud. Even without technical hurdles, you may be unable to use some products in the cloud for licensing and support reasons. In these cases, development work may be needed to replace some parts of your technology platform with cloud-friendlier equivalents. This is not always bad news, as it may do away with licensing costs.

A bulk migration requires organizational cooperation. Even if a migration is being performed by an integration partner, the customer needs to participate. The migration teams will need a supply line by which they can receive, in a timely fashion, application assets (such as source code and database scripts), answers to technical questions (such as environmental information), and assistance integrating to internal systems. If the customer can’t serve in this supporting role and keep pace with the migration teams, the migration effort will be held back. The organization also needs to provide user acceptance testing to sign off on migrated applications.

Opportunities
Although a bulk migration does bring its challenges, it also brings opportunities. There are financial and technical reasons to favor a bulk migration over a one-app-at-a-time approach. 

A bulk migration can reduce average application migration time by taking advantage of repeatable tasks, especially when there are multiple applications that share the same architecture and technology platform. Repeat work is an opportunity to increase velocity.

A bulk migration can save money. Operational costs in the cloud can be reduced by consolidating applications and data in shared cloud resources where it makes sense rather than provisioning each application individually. Analysis, development, IT, and QA activities are more efficient and less costly across a series of applications as opposed to ramping up for applications individually. “Cookie cutter work” can be codified as step-by-step procedures and handled by less expensive resources. Licensing costs could be reduced by moving to application or database platforms that don’t require licensing (for example, from IBM WebSphere in the enterprise to Tomcat in the cloud).

A bulk migration provides better insights. When applications are migrated individually, decisions about strategy and adapting existing processes and systems are based on a partial view that gets refined over time. In a bulk migration, there’s a large body of evidence to consider all at once: analysis, financial modeling, strategy, and organizational impact are all based on a fuller picture. This makes for better initial decisions.

A bulk migration is an opportunity for uniformity. As applications are migrated, they can also be retrofitted. For example, all web sites being migrated could be retrofitted to use a common analytics system. If instrumented for monitoring, applications can be configured for auto-scaling, where deployment size is dynamically altered to match changes in load.



A Factory Model Approach to Bulk Cloud Migration

Cloud assessment and migration of multiple applications can be handled well using a factory approach. The majority of personnel are allocated to migration teams that make up the factory. QA teams validate the correctness of what the factory produces. An Advance Team analyzes applications first and keeps the factory equipped for the types of work it needs to do. An Exceptions Team supports factory members, helping with problems and sometimes taking over difficult migrations directly.

Factory Model Cloud Migration


Let’s review the teams that make up this model, their responsibilities, and how they interact.

The Factory: Migration Teams Performing Repeatable Technical Work
The “factory” is one or more technical teams who are able to rapidly perform migration tasks. The high velocity is due to repeatable work of the same nature (“cookie cutter” jobs), steered by concrete guidance. This type of work favors a heavy offshore component to keep costs down. Migration tasks could be complete migrations (e.g. “migrate a PHP web site”) or assembly-line style partial tasks (e.g. “update this application to use a cloud-based caching service“).

Like a physical factory, one or more supervisors are needed to oversee how things are going and ensure the factory is humming along as it should be. Problems that stop the assembly line need to be dealt with swiftly.

The Advance Team: Equips the Factory for New Kinds of Work
The factory only knows how to manufacture what is has been configured to make. Someone needs to teach it new tricks to handle new kinds of applications or variations on past patterns. The Advance Team consists of architects and technology subject matter experts who analyze applications before they are handed off to the factory, categorizing them as previously-encountered types or something new. New kinds of applications are studied, and updated migration guidance for the factory is created. If the new tasks are significantly novel, factory members may need to be formally trained on the new pattern. The advance team also sizes the migration effort required.

The Advance Team receives feedback from the Exceptions Team on how migration work is going. This feedback loop drives continual improvements into the guidance based on experiences using it.

The Exceptions Team: Supports the Factory and Takes Over Difficult Migrations
The factory model is all well and good, but occasional surprises and difficulties are inevitable. The Exceptions Team supports the migration teams and helps them through problems with support. If necessary, the Exceptions Team will take over a difficult migration directly. Unusual, one-of-a-kind, or highly complex migrations will be handled by the Exceptions Team.

The QA Teams: Validation of Completed Migrations
The quality assurance teams test migrations produced by the factory to confirm quality requirements are met and the migrated apps have fidelity to the original apps. Often this will consist of a cursory check (performed by the integration partner) followed by user acceptance testing (performed by the owner organization). In the case of simple web site migrations, the first-level quality check might consist of side-by-side comparisons of the original and migrated web site, walking through the site by following its navigation and ensuring pages display and interact identically.


How We Do It: Neudesic’s Azure Migration Factory

Azure Migration Factory is Neudesic’s bulk cloud migration service offering for Microsoft’s Windows Azure cloud computing platform. It implements the factory model approach as described earlier and supports both Platform-as-a-Service and Infrastructure-as-a-Service migration.

In Neudesic’s adoption of the process, a project management office is staffed by Neudesic and client managers; migration teams are primarily staffed with offshore resources; the advance team is staffed with architects, Windows Azure experts, and technology subject matter experts; and the QA/UAT teams are staffed by a mix of Neudesic and customer quality engineers.

Azure Migration Factory




The PMO
Proactive, ongoing management is a cornerstone of Azure Migration Factory. A project management office consisting of Neudesic and client personnel oversee the ongoing migration effort. There are regular meetings to review how the teams are doing against projections; and to determine whether any changes are needed to the size or composition of teams. Work typically proceeds in waves, where forecasts of upcoming work are used to ramp up teams or decommission teams smoothly as the workload changes.

The Advance Team: Architects and Subject Matter Experts

The Advance Team consists of architects, Windows Azure experts, and subject matter experts on application technologies such as .NET, Java, or PHP.

During the assessment process, the advance team evaluates migration candidates and performs a sizing to small, medium, or large which equates to a 1-, 2-, or 4-week migration effort. Early in the process, customers are provided with sizing guidelines so that a preliminary scoping of the effort can be roughed out; some of these findings may be revised once the applications are analyzed directly by the advance team.

Applications are categorized using an application patterns catalog for which step-by-step migration guidance has been prepared. The catalog is updated when new application architectures or technology platforms are encountered, or when a variation of an existing pattern needs to be accounted for. At the customer’s option, the assessment process can run in parallel and slightly ahead of the migration effort; alternatively, all apps can be assessed before the migration effort gets underway.

The Factory: Offshore Teams in a Scalable Pod Structure

Migration teams are made up of “pods” of consultants with a set size, primarily consisting of offshore consultants. Pods can vary in their skill set and platform knowledge, for example a .NET pod or a PHP pod. The customer can balance migration speed vs. spend rate through the number of pods approved to work in parallel.


Neudesic is able to migrate many kinds of applications to the cloud by leveraging its technology practices, which include Business Intelligence, Connected Systems, CRM/Dynamics, Custom Application Development, Mobility, Portals & Collaboration.

The Exceptions Team: Experienced Consultants with Relevant Experience
The Exceptions Team consists of experienced consultants who keep the migration effort on track by quickly unblocking migration teams when they run into problems. They do this through support and, if necessary taking over migration of especially difficult or unusual migrations.

Neudesic QA Teams paired with Customer UAT Teams

Neudesic Quality Assurance teams verify migration success, reporting issues back to the appropriate migration team if results do not match expected appearance and behavior. Customer User Acceptance Teams then confirm whether migrated applications meet their expectations.

Windows Azure Expertise

The breadth of the Windows Azure platform allows migration to target the most appropriate mode for an application: Platform-as-a-Service, Infrastructure-as-a-Service, or managed web sites. Neudesic’s Windows Azure experts are experienced across the entire platform and include Microsoft-recognized MVPs.


Accelerators: Unique Intellectual Property
Neudesic has unique intellectual property in the form of libraries and tools that accelerate the analysis and migration of applications to Windows Azure. This includes tools that partially automated the analysis of applications.

Management and Support Services

Customers who migrate to the cloud in bulk are often also in need of a partner for support and management. Neudesic offers support and management services for cloud applications through the Neudesic Managed Services group.

Training Services

Neudesic provides Windows Azure training services for customers who wish to bring cloud skills in-house to their development and IT groups.

Summary

Once an organization has completed evaluating a cloud platform and is ready for production migration, they have the option of individual migrations or bulk migration. For companies with large numbers of applications, bulk migrations—if planned and executed properly—offer great economy of scale. The cost of migrating applications can be drastically lowered when they are part of a group effort. Operational costs in the cloud may also be lowered by finding opportunities to co-locate applications and data on shared resources.

Bulk cloud migrations are best served by a factory approach, in which similar applications and migration tasks can be made cookie-cutter and easily repeatable. In this model the “factory” are lower-rate migration teams who make up the majority of the work force. The factory is supported by an advance team, an exceptions team, and QA teams.

Applications migrated together can be retrofitted for uniform methods of monitoring and analytics; and configured for auto-scaling.

Neudesic has implemented the factory approach for the Windows Azure platform in its Azure Migration Factory service offering.

Large-scale migrations require large-scale thinking. The factory approach described here provides a scalable pool of affordable migration resources, coupled with the support of senior resources necessary to ensure success.

Neudesic - The Trusted Technology Partner in Business Innovation
http://www.neudesic.com
http://cloud-assessment.com

Monday, June 25, 2012

Presentation: Make Your Boring Business Software Compelling with Gamification

Here's my presentation on "Making Your Boring Business Software Compelling with Gamification", first given at SoCal Code Camp San Diego. We had a good turnout and some great discussions about the exciting, emerging discipline of gamification in user experience.

For too long we have had software that was either fun or useful, but not both: we call software that is fun but not useful 'games', and most business software can certainly be described as useful but not fun. It's time to change all that! Gamification applies gaming techniques to non-game software to make them more compelling. This increases user loyalty and productivity.
Gamification
View more presentations from David Pallmann.

Friday, June 22, 2012

SoCal Code Camp Talks on Gamification, and Easy Windows Azure Migration

This weekend I'll be at SoCal Code Camp in San Diego. I'm giving two presentations on Sunday 6/24. Hope to see you there!

Make Your Boring Business Software Compelling with Gamification (6/24/12, 10:15a, Rm 107)

Gamification is the practice of adding fun, competitive, and social elements to software applications. It makes the experience more compelling which leads to increased user loyalty and higher productivity.

In this session, we'll look at several different kinds of gamification including badges, points, achievements, rewards, contests, leaderboards, auctions, entertaining UI, and "games" that actually solve real-world problems.

We'll see examples of gamification in action in HTML5 web/mobile applications running on the Microsoft web/cloud platform.


Ridiculously Fast & Easy Migration to the Cloud with Windows Azure (6/24/12, 3:00p, Rm 126)

Some applications are easier than others to migrate to the cloud. In this session, Windows Azure MVP David Pallmann will show you the low-hanging fruit: recipies for application and data migration that are ridiculously fast and easy with a high ROI. We'll perform a number of actual migrations live in the session. If you're looking for no-brainer use of the cloud that doesn't involve a lot of rocket science, this session is for you.

Sunday, June 17, 2012

Azure Storage Explorer 5 Preview 1 Now Available with Logging & Monitoring Support

Preview 1 of Azure Storage Explorer 5 is now available on CodePlex. This preview reveals the new look of version 5 and contains some new functionality, with more to come in successive updates. Today we'll review the new logging and monitoring support which is included in Preview 1.


If you're not familiar with Azure Storage Explorer, it's a community donation from Neudesic that lets you view and manage Windows Azure storage data. As far as I know, Azure Storage Explorer was the first such tool for Windows Azure: I wrote the first version in January 2009, and we've gone all the way up to version 4 which has been out for about a year and a half now. It's high time we came out with another version, especially given the major update to the platform that took place earlier this month.

Azure Storage Explorer isn't the most sophisticated tool in it's class--there are some good robust commercial offerings such as Cloud Storage Studio from Cerebrata, part of Red Gate Software. However, it does an adequate job for most users and it is free, which makes it useful in classroom settings. We also include the source code which makes it a useful example of a storage application for learning. There have been over 50,000 downloads to date.


Goals for Version 5

For version 5, we wanted to first of all match the look of the new HTML-based Windows Azure portal. Secondly, we wanted to support some the new features in Windows Azure storage, including  the ability to configure and view both logging and monitoring. Third we wanted to resolve reported issues and adopt good suggestions that users have submitted on CodePlex. We've got some of that done in Preview 1 with more to follow.


Logging Support

Windows Azure Storage accounts can now be configured to track logging information. Azure Storage Explorer lets you can configure logging of reads, writes, and deletes for blobs, queues, and tables as you prefer, along with a retention policy for the data.


When you view your storage account blob containers, you'll notice a container named $logs if loggig is enabled for the account.


The blobs contain records showing storage access requests, in the form of textual data, separated by semicolons.


Monitoring Support

Windows Azure Storage accounts can also be configured to track metrics. Azure Storage Explorer lets you can configure the level of metrics for blobs, queues, and tables (off, minimal, or verbose) as you prefer, along with a retention policy for the data.


When you view your storage account tables, you'll notice four tables named $MetricsCapacityBlob, $MetricsTransactionsBlob, $MetricsTransactionsTable, $MetricsTransactionsQueue.


The amount of data in the tables depends on whether you've enabled minimal or verbose metrics collection.



New User Interface

Like the new Windows Azure portal, Azure Storage Explorer 5 has a look inspired by the styling of Windows 8 Metro apps. In Preview 1, we've made some of the more fundamental changes including fonts, layout, and colors in the main window---but there's more work to be done, including reworking dialogs and how we show the item detail view of blobs, messages, and entities.


I hope you enjoy this first preview of Azure Storage Explorer 5: and stay tuned for more.

Thursday, June 14, 2012

Ridiculously Fast and Easy Migration to the Cloud with Windows Azure

Many kinds of software can run in the cloud, but when it comes to migrating existing applications the cost and ease of migration can vary quite a bit: some applications are simply an easier fit than others. In this post we’re going to look at the "low-hanging fruit": easy app migrations to Windows Azure.

Find the Low-Hanging Fruit in Your Cloud Migrations

We’ll consider 7 kinds of applications that are more often than not a "piece of cake" to migrate. If you’re looking for some quick wins in moving to the cloud, consider starting with these categories of apps.

1. Static Web Sites
2. SQL Server Databases
3. Two-Tier Web Sites with SQL Server Databases
4. Two-Tier Web Sites with MySQL Databases
5. Flash Web Sites
6. Two-Tier MVC Web Sites
7. Windows Services
You'll notice many of the choices on this list are web sites: web sites are the most common kind of app hosted in the cloud, and Windows Azure now has an attractive managed service for web sites called Windows Azure Web Sites that really makes it easy to move most web sites up to the cloud.


1. Static Web Sites
Static web sites have no server-side logic or storage, and are commonly used for online access to read-only information such as catalogs, brochures, documentation, or downloads. Although static sites are becoming less common, you may have one or more of them in your existing IT assets that you want to move over to the cloud.

You can typically move a static web site to the cloud in just 30-60 minutes, perhaps a bit longer if your files are numerous or extremely large.
To move a static web site to Windows Azure:

1.       Create a Windows Azure Web Site in the management portal, which provisions in just a few seconds.

2.       Set up FTP credentials in the portal, and note the FTP upload address.

3.       Use your preferred FTP program to upload your static files to the cloud.

Create a Windows Azure Web Site

Define FTP Credentials


Note FTP Address

Connect by FTP
Upload Files by FTP

2. SQL Server Databases
SQL Server databases are generally easy to move to Windows Azure’s very similar SQL Database, except in the occasional case where a SQL Server feature you need is not yet available in Windows Azure SQL Database, or the database size exceeds the cloud size limit (currently 150GB). If you are migrating your database along with a web site, see the next item to do both at the same time.

To migrate a SQL Server database to a Windows Azure SQL Database:
1.       In the Windows Azure management portal, navigate to SQL Databases and create a new database, providing prompted information such as administrator credentials.

2.       View connection strings and make a note of your connection information and credentials.

3.       Click Manage and add a firewall rule to allow access by your local machine.

4.       Download and run the SQL Azure Migration Wizard. It will provide a guided experience through the migration, pointing out any issues and addressing as many of them as it can automatically.

Create a New SQL Database

Specify Administrator Credentials

View Connection Strings

Add a Firewall Rule
SQL Azure Migration Wizard

3. Two-Tier Web Sites with SQL Server Database
2-tier web sites are the most common kind of web site: a web layer backed by a database. Windows Azure Web Sites support web sites that use SQL Server databases.

To move a 2-tier web site with a SQL Server database to Windows Azure:
1.       Create a Windows Azure Web Site with Database in the management portal and specify a Microsoft SQL Database. It will provision in under a minute.

2.       Set up FTP credentials in the portal, and note the FTP upload address.

3.       The database will appear as a linked resource for the web site in the management portal. Navigate to the database details page and note the generated database server name, generated database name, and connection string.

4.       Add a firewall rule to allow access to the database from your machine, by navigating to the database details in the portal, clicking Manage, and adding a firewall rule.

5.       If your database is small and simple, use your preferred database tools (for example, SQL Server Management Studio) to copy your database following the steps below (otherwise, use the SQL Azure Migration Wizard).

a.       Connect to your existing database

b.      Script your existing database schema and data.

c.       Connect to your cloud database using the credentials shown in the management portal.

d.      Execute your database script to populate your database in the cloud.

6.       Update your web site configuration to use the cloud database connection details.

7.       Test your web site code locally to ensure it functions properly with the cloud database.

8.       Use your preferred FTP program to upload your web site files to the cloud.

 
Create Web Site with Database

Create SQL Database with Web Site

Database Settings

Database Credentials

SQL Database, Linked to Web Site

Note Generated Database Server Name / Database Name & Connection String

Add Firewall Rule for Your Local Machine


Connect to SQL Database in Cloud with SQL Server Management Studio


4. Two-Tier Web Sites with MySQL Database
2-tier web sites using MySQL databases are also supported by Windows Azure Web Sites. The migration process is similar to that for 2-tier SQL Server web sites.

To move a 2-tier web site with a MySQL database to Windows Azure:
1.       Create a Windows Azure Web Site with Database in the management portal and specify a MySQL database. It will provision in under a minute.

2.       Set up FTP credentials in the portal, and note the FTP upload address.

3.       The database will appear as a linked resource for the web site in the management portal. Click on Connection Strings and note the database connection details.

4.       Use your preferred database tools (for example, MySQL Workbench) to copy your database:

a.       Connect to your existing database

b.      Script your existing database schema and data.

c.       Connect to your cloud database using the credentials shown in the management portal.

d.      Execute your database script to populate your database in the cloud.

5.       Update your web site configuration to use the cloud database connection details.

6.       Test your web site code locally to ensure it functions properly with the cloud database.

7.       Use your preferred FTP program to upload your web site files to the cloud.

Create Web Site with Database
Create MySQL Database with Web Site

Database Settings


MySQL Database, Linked to Web Site

Note Generated Connection String

Connect to MySQL Database in Cloud with MySQL Workbench


5. Flash Marketing Sites

Many marketing sites are built in Adobe Flash (or similar technologies like Microsoft Silverlight). These sites provide marvelous interactive experiences, but technically they are almost always implemented as static web sites or 2-tier web sites, both of which we’ve just covered. Use the same techniques for your Flash sites.
To move a static Flash web site to Windows Azure:

1.       Create a Windows Azure Web Site in the management portal, which provisions in just a few seconds.

2.       Set up FTP credentials in the portal, and note the FTP upload address.

3.       Use your preferred FTP program to upload your static files to the cloud.
To move a 2-tier Flash web site to Windows Azure:

8.       Create a Windows Azure Web Site with Database in the management portal and specify a Microsoft SQL Database or a MySQL database. It will provision in under a minute.

9.       Set up FTP credentials in the portal, and note the FTP upload address.

10.   Use your preferred FTP program to upload your static files to the cloud.

11.   Use your preferred database tools to script your existing database schema and data (for example, SQL Server Management Studio).

12.   Use your preferred database tools to connect to your database in the cloud using the credentials shown in the management portal.

13.   Execute your database script to populate your database in the cloud.

Static Flash Site hosted in a Windows Azure Web Site


6. 2-Tier MVC Web Sites

Ever since Model-View-Controller (MVC) support became available for ASP.NET it has been very popular in the Microsoft web development world. MVC sites tend to use SQL Server databases, allowing them to be migrated just as described earlier for 2-tier web sites with SQL Server databases. However, some web sites also need web services, do they fit this model? They do, if they use ASP.NET Web API which hosts the web services in the same tier as the web site.
To move a 2-tier MVC web site with a SQL Server database to Windows Azure:

1.       Create a Windows Azure Web Site with Database in the management portal and specify a Microsoft SQL Database. It will provision in under a minute.

2.       Set up FTP credentials in the portal, and note the FTP upload address.

3.       The database will appear as a linked resource for the web site in the management portal. Navigate to the database details page and note the generated database server name, generated database name, and connection string.

4.       Add a firewall rule to allow access to the database from your machine, by navigating to the database details in the portal, clicking Manage, and adding a firewall rule.

5.       Use your preferred database tools (for example, SQL Server Management Studio) to copy your database:

a.       Connect to your existing database

b.      Script your existing database schema and data.

c.       Connect to your cloud database using the credentials shown in the management portal.

d.      Execute your database script to populate your database in the cloud.

6.       Update your web site configuration to use the cloud database connection details.

7.       Test your web site code locally to ensure if functions properly with the cloud database.

8.       Use your preferred FTP program to upload your web site files to the cloud.

MVC Web Site hosted in a Windows Azure Web Site
Web sites aren't always this easy--SSL, security provider integrations, special IIS configuration, additional solution tiers, software dependencies can all complicate the work. At times the Windows Azure Web Sites feature isn't adequate and you need to move to Cloud Services, a more capable model but one that also requires you to more migration work.


7. Windows Services
A Windows Service is a background process for Windows that you install, set for manual or automated operation, and control through the Windows control panel Services applet. You can easily install a Windows Server on a Windows Azure Virtual Machine and let it run.

To migrate a Windows Service:
1.       In the Windows Azure management portal, create a new Virtual Machine with a Windows Server operating system and wait for it to be provisioned—this may take 10-15 minutes, so this is a good time to get a cup of coffee.

2.       Connect to the VM with a remote desktop connection. So that you can transfer your service files, configure Remote Desktop to map a local drive. Once connected, do the following:

a.       Use server manager to install any server roles or dependences (such as a particular version of the .NET framework) needed by your service.

b.      Copy locally the files that make up your Windows Service.

c.       If applicable, update your service’s configuration file for its new environment.

d.      Install your Windows Service using the usual installutil command for the service.

e.      Launch Control Panel > Services to configure and manage your service.

Create a Virtual Machine

Connect to Virtual Machine

Installing Service Dependencies on the VM

Copying Service Files

Installing Service on VM

Windows Service running on Windows Azure VM


There you are, some of the easier things you can migrate to Windows Azure. That’s not to suggest that other kinds of applications are necessarily an ordeal—this is merely the low-hanging fruit: a good place to start. With some easy cloud migrations under your belt, you’ll be on your way to experiencing the joys of cloud computing on Windows Azure in no time; and you'll have the experience and confidence to start taking on more complex migrations.