Migrating from VPS to Windows Azure Virtual Machines

“Virtual Machines deliver on-demand, salable compute infrastructure when you need to quickly provision resources to meet your growing business needs.  With Virtual Machines, you get choice of Windows Server and Linux operating systems in multiple configurations on top of the trustworthy Windows Azure foundation. “

image
Microsoft Cloud Solution, Windows Azure, is open to many languages, frameworks and tools which enables you to build applications using literally whatever you want!
image

In this post we will use Windows Azure Virtual Machines to move your web application from your current Linux VPS to the Microsoft Cloud, Windows Azure!

Hmm, sounds great, but why would I want to do that if I’m happy with my VPS? Let me start by listing the reasons why.
-Windows Azure Dashboard. Using the dashboard you can monitor the performance of your server; CPU usage, Disk usage, Network status. You can also configure your virtual machine, scale it up or down and add Endpoints. All that can be done using the beautiful GUI.
image

- Availability. Windows Azure delivers 99.95% monthly SLA, which means you guarantee your web application availability.
-Performance. Most of the feedbacks I get from my users say that they are getting better performance (download/upload time) when I moved to Azure. Thanks to the powerful data centers Microsoft runs!
You can check the case studies page to learn more
- Maintenance. Microsoft takes care of that for you! It provides automatic OS and service patching, built in network load balancing. Also it supports a deployment model that enables you to upgrade your application anytime without downtime!
- Scalability. You can scale up or down your server any time you want. For example, Lets say we have a web store application, and from monitoring the traffic we know that this web store gets heavy traffic in Christmas season. Using Azure dashboard we can easily scale up my server for this period of time, and once my web site returns to the normal traffic, I can return it back to normal size.
image

- Pricing, this point related to the previous one. You pay for whatever you use per hour. You can read about the Pricing from here. (In this post, we will use the 90 days trial, so you can try it first, and see if it suites your needs)

To use Windows Azure, you will need to sign up for a free 90 days trial. You can follow this tutorial to create the account.

 

Creating the Virtual Machine
1- Once you create your account and get to your dashboard, click on the Virtual Machines Icon, and then the New button
image

2- From the popup menu, click on “Compute”, “Virtual Machine” and the “From Gallery”

image

3- Windows Azure Dashboard provides a large collection of operating systems (Windows Server, SQL Server, Biztalk, Sharepoint, & different flavors of Linux). Select the Linux image that you use right now on your Linux VPS and click in the next arrow button.
image

4- In the next step, we need to name the Virtual Machine, and select its size. Fill the Virtual Machine Name field. Then select the “Extra Small” size. Notice you can change this size anytime you want, Scalability, remember? :). Enter a User Name. Uncheck the upload SSH key option, check the Provide password and enter a password. Notice that we will use this User Name and Password later to access the server using SFTP.   Finally Click on the next arrow.
image

5- In the next page, you will need to provide a DNS name for your Virtual Machine. Windows Azure will reserve the domain name for you. Enter a DNS name and click on the next arrow.
image

6- Now we’re done, Click on the Complete button.
image

7- Now you will have to wait for couple of minutes (for me it took two minutes) while Windows Azure is creating and starting your Virtual Machine.

Getting the Host name and Port number
1- Once your Virtual Machine is ready, the Status will change to “Running”, Click on the small arrow next to your virtual machine’s name.
image

2- From the next page, we will take some values to access our server later using SFTP. Copy the DNS and the port number
image

Field Value Example
Host <YourServerName>.cloudapp.net tareqvm.cloudapp.net
SFTP Host sftp://<YourServerName>.cloudapp.net sftp://tareqvm.cloudapp.net
Username Your Username azureuser
Password Your Password ***********
Port The port number you got form Azure dashboard 54665

 

Installing modules using SSH Client
1- We will start by installing some modules. We will need an SSH Client (Like Putty) to access the server. Start Putty Client, and enter the Host name and the Port number
image

2- Once the session starts, it will ask you to enter the user name and password. Enter the values and press enter. Based on the Linux flavor you installed, you can use the right commands (sudo chmod, yum … etc) to install the modules you want.
image

Uploading your files using FTP Client
Now that we have the server ready, we can start uploading the files to the server, start your FTP client (like FileZilla), and use the following to access the server:

Press Enter to access your server
image

Now you can easily drag and drop your VPS files to deploy them to the new server! Enjoy your powerful Virtual Machine!

You can read more about Azure & other MS techs from my blog