Owner with 51-200 employees
Windows Azure basics (part 1 of n)
We live in dynamic times. Buzzwords such as cloud computing, elastic scale, reliability and their synonyms are taking more and more space in our daily life. People (developers) want to move to the cloud. They are often confused by all the new terms. In this part 1 of [we-will-see-at-the-end-how-many] articles I will try to explain with non-geeky words the Windows Azure terms.
First of all, what is Cloud Computing before all? This is when Computing power (namely CPU, RAM, Storage, Networking) is delivered as a service via a network (usually internet), and not as a product (a server that we buy).
Cloud computing is a marketing term for technologies that provide computation, software, data access, and storage services that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. A parallel to this concept can be drawn with the electricity grid, wherein end-users consume power without needing to understand the component devices or infrastructure required to provide the service.
So what is Windows Azure? Is it the new server operating system from Microsoft? Is it the new hosting solution? Is it the new workstation OS? Well, Windows Azure is the Microsoft’s Cloud Computing platform. It delivers various cloud services. Compute, Database, Storage, CDN, Caching, Access Control to name few.
Next part of the article will be focusing on Windows Azure Compute services.
Windows Azure Guest OS? When we talk about cloud computing, inevitably we talk about virtualization. Virtualization at very big degree. And when we talk about virtualization, we have a Host OS and Guest OS. When we talk about Windows Azure OS, we talk about Windows Azure Guest OS. This is the operating system that is installed on the Virtual Machines that run in the cloud. Windows Azure Guest OS has 2 families – OS Family 1 and OS Family 2. Windows Azure Guest OS Family 1 is based on Windows Server 2008 SP 1 x64, and Family 2 is based on Windows Server 2008 R2. All and any guest OS is 64 bits. You can get the full list of Windows Azure Guest OS here.
Windows Azure Cloud Service, or Hosted Service. The Hosted Service is the essence of your Cloud application:
A hosted service in Windows Azure consists of an application that is designed to run in the hosted service and XML configuration files that define how the hosted service should run
A hosted service can have one or more Roles.
Now it comes to the Roles. Our cloud application can be a Web Based application, or a background processing application, or some legacy application which is hard to migrate. Or mix of the three. In order to make things easy for developers, Microsoft has defined 3 distinguished types of “Roles” – Web Role, Worker Role and VM Role. You can read a bit more for the “Role”s here. But the main idea is that a Role defines an application living environment. The Role contains all the code that our application consists of. It defines the environment where our application will live – how many CPUs will be installed; the amount of RAM installed; volume of local storages; will it be a full IIS or a background worker; will it be Windows Azure Guest OS 1.x or 2.x; will it has open ports for communication with outer world (i.e. tcp port 80 for Web Role); will it has some internal TCP ports open for internal communication between roles; what certificates will the environment has; environment variables; etc.
The Role is like a template for our cloud application. When we configure our Cloud Service (or Azure Hosted Service), we set the number of instances involved for each Role.
Instance is a single Virtual Machine (VM), which has all the properties defined by the Role and has our application code deployed. When I mentioned that the Role defines the number of CPUs, RAM, local storage, I was referring the configuration for each VM where our code will be deployed. There are couple (5) of predefined VM configuration which we can use:
| Virtual Machine Size | CPU Cores | Memory | Cost Per Hour |
|---|---|---|---|
| Extra Small | Shared | 768 MB | $0.04 |
| Small | 1 | 1.75 GB | $0.12 |
| Medium | 2 | 3.5 GB | $0.24 |
| Large | 4 | 7 GB | $0.48 |
| Extra Large | 8 | 14 GB | $0.96 |
More information on Virtual Machine sizes can be found here.
And here comes the beauty of the Cloud. We code once. We set the overall parameters once. And we deploy once! If it comes that we need more servers – we just set the number of instances for our role. We do it live. There is no downtime. Windows Azure automatically will launch as many VMs as we requested. Will configure them for our application and will deploy our code in each and every one of them and will finally join them to the cluster of our highly available and reliable cloud application. When we don’t need (let’s say) 10 servers anymore, then we can easily instruct Windows Azure that we only need 2 from now on and that’s it. The cloud will automatically shutdown 8 servers and remove them, so we won’t be paying any more extra money.
It is important to note, though, that the Role defines the size of the VM for all the Instances of it. We cannot have instances of same Role but different VM size. This is by design. If we defined our Role to use Extra Large VM, then all the instances we have will be running on that size of VM.
Key takeaways
I hope that this article helped you understand couple of basic terms about Windows Azure. You shall be able to confidently answer the following questions:
- What is Windows Azure ?
- What is Windows Azure Hosted Service (or just Hosted Service)?
- What is a Role?
- What is a Role Instance (or just Instance)?
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Owner with 51-200 employees
Windows Azure Basics–Compute Emulator
Following the first two posts of the series “Windows Azure Basics” (general terms, networking) here comes another one. Interestingly enough, I find that a lot of people are confused what exactly is the compute emulator and what are these strange IP Addresses and port numbers that we see in the browser when launching a local deployment.
If you haven’t read the Windows Azure Basics – part 2 Networking, I strongly advise you to do so, as rest of current post assumes you are well familiar with real Azure deployment networking components.
A real world Windows Azure deployment has following important components:
- Public facing IP Address (VIP)
- Load Balancer (LB) with Round Robin routing algorithm
- Number of Virtual Machines (VM) representing each instance of each role, each with its own internal IP address (DIP – Direct IP Address)
- Open ports on the VIP
- Open ports on each VM
In order to provide developers with as close to real world as possible, a compute emulator needs to simulate all of these components. So let's take a look what happens when we launch locally a Cloud Service (a.k.a. Hosted Service).
VIP Address
The VIP address for our cloud service will be 127.0.0.1. That is the public IP Address (VIP) of the service, via which all requests to the service shall be routed.
Load Balancer
Next thing to simulate is the Azure Load Balancer. There is a small software emulated Load Balancer, part of the Compute Emulator. You will not see it, you are not able to configure it, but you must be aware of its presence. It binds to the VIP (127.0.0.1). Now the trickiest thing is to find the appropriate ports to bind. You can configure different Endpoint for each of your roles. Only the Input Endpoints are exposed to the world, so only these will be bound to the local VIP (127.0.0.1). If you have a web role, the default web port is 80. However, very often this socket (127.0.0.1:80) is already occupied on a typical web development machine. So, the compute emulator tries to bind to the next available port, which is 81. In most of the cases port 81 will be free, so the "public" address for viewing/debugging will be https://127.0.0.1:81/. If port 81 is also occupied, compute emulator will try the next one – 82, and so on, until it successfully binds to the socket (127.0.0.1:XX). So when we launch a cloud service project with a web role we will very often see browser opening this wired address (https://127.0.0.1:81). The process is same for all Input Endpoints of the cloud service. Remember, the Input endpoints are unique per service, so an Input Endpoint cannot be shared by more than one Role within the same cloud service.
Now that we have the load balancer launched and bound to the correct sockets, let's see how the Compute Emulator emulated multiple instances of a Role.
Web Role
Web Roles are web applications that run within IIS. For the web roles, compute emulator uses IIS Express (and can be configured to use full IIS if it is installed on the developer machine). Compute Emulator will create a dedicated virtual IP Address on the local machine for each instance of a role. These are the DIPs of the web role. A local DIP looks something like 127.255.0.0. Each local "instance" then gets the next IP address (i.e. 127.255.0.0, 127.255.0.1, 127.255.0.2 and so on). It is interesting that the IP Addresses begin at 0 (127.255.0.0). Then it will create a separate web site in IIS Express (local IIS) binding it to the created Virtual IP Address and port 82. The emulated load balancer will then use round robin to route all requests coming to 127.0.0.1:81 to these virtual IP Addresses.
Note: You will not see the DIP virtual address when you run ipconfig command.
Here is how does my IIS Express look like when I have my cloud service launched locally:

Worker role
This one is easier. The DIP Addressing is the same, however the compute emulator does not need IIS (neither IIS Express). It just launches the worker role code in separate processes, one for each instance of the worker role.
The emulator UI
When you launch a local deployment, Compute Emulator and Storage Emulator are launched. You can bring the Compute Emulator UI by right clicking on the small azure colored windows icon in the tray area:

For purpose of this post I've created a sample Cloud Service with a Web Role (2 instances) and a Worker Role (3 instances). Here is the Compute Emulator UI for my service. And if I click on "Service Details" I will see the "public" addresses for my service:

Known issues
One very common issue is the so-called port walking. As I already described, the compute emulator tries to bind to the requested port. If that port isn't available, it tries next one and so on. This behavior is known as "port walking". Under certain conditions we may see port walking even between consequent runs of same service – i.e. the first run compute emulator binds to 127.0.0.1:81, the next run it binds to 127.0.0.1:82. The reasons vary, but the obvious one is "port is busy by another process". Sometimes the Windows OS does not free up the port fast enough, so port 81 seems busy to the compute emulator. It then goes for the next port. So, don't be surprised, if you see different ports when debugging your cloud service. It is normal.
Another issue is that sometimes browser launches the DIP Address (https://127.255.0.X:82/) instead the VIP one (https://127.0.0.1:81/). I haven't been able to find a pattern for that behavior, but if you see a DIP when you debug your web roles, switch manually to the VIP. It is important to always use our service via the VIP address, because this way we also test out application cloud readiness (distributing calls amongst all instances, instead of just one). If the problem persists, try restarting Visual Studio, Compute Emulator or the computer itself. If issue still persists, open a question at StackOverflow or the MSDN Forum describing the exact configuration you have, ideally providing a Visual Studio solution that constantly reproduces the problem. I will also be interested to see the constant repeatable issue.
Tip for the post: If you want to change the development VIP address ranges (so that it does not use 127.0.0.1) you can check out the following file:
%ProgramFiles%\Microsoft SDKs\Windows Azure\Emulator\devfabric\DevFC.exe.config
DevFC stands for "Development Fabric Controller". But, please be careful with what you do with this file. Always make a backup of the original configuration before you change any setting!
Happy Azure coding!
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Buyer's Guide
Microsoft Azure
January 2026
Learn what your peers think about Microsoft Azure. Get advice and tips from experienced pros sharing their opinions. Updated: January 2026.
881,733 professionals have used our research since 2012.
Owner at a tech consulting company with 51-200 employees
Easy to connect to on-premise infrastructure, but deprovisioning services is complicated and SLA is not competitive
Valuable Features:
SSO access
Easy connect to On-Prem infrastructure
GA of new features, such as Azure Backup and Mobile services, free websites and easy to manage pay-as-you-go model.
Room for Improvement:
Deprovisioning services is complicated. SLA is not competitive. While some prices have been lowered, some increased after GA. Options from beta moved to different categories.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Sr System Engineer at a outsourcing company with 501-1,000 employees
We moved our accounting database from an in-house SQL Server to MS Azure cloud and saw a significant increase in performance.
Valuable Features:
High availability rate anywherem, anytime.
Periodic workloads options let me pay only for the time I have used it.
It is easy to backup database via BCP program or tools available on codeplex site.
It supports multiple languages such as Java, .NET, Ruby and PHP.
Room for Improvement:
Needs fast Internet connectivity.
Fear of being data being hacked or captured.
Other Advice:
We moved our accounting database from an in-house SQL Server to MS Azure cloud and saw a significant increase in performance.
We can now connect to the database even while roaming and back it up anywhere, anytime.
Data replication services make it highly reliable and always available.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Head of Infrastructure at a tech company with 51-200 employees
Good for running Microsoft Enterprise Applications, although a pricey alternative to other IaaS/Paas service providers in the market.
Valuable Features:
1) Windows Azure supports ASP.NET and Node.js, among other platforms.
2) Due to the Node.js supported library, Azure is capable of supporting the Map Reduce Infrastructure, Hadoop, for distributed data processing and number processing.
3) With the help of AppFabric Internet services, it can support Java, Ruby, etc.
4) Since the underlying Azure OS runs on Windows Server 2008 edition, it supports running all Microsoft Enterprise Applications, hosting services like IIS and many more.
5) Using Windows Azure Connect, various Virtual Machines can be easily connected with each other
6) Has support for multiple users & roles for management purposes.
Room for Improvement:
1) It is a well known fact that Microsoft has yet to upgrade its IaaS technologies for providing a near zero interruption triggered by Load balancers.
2) Physical security of data is a major concern for various IaaS service providers, and Azure is no different.
3) Though having data served from multiple data centers improves performance, it has increased the risk of data security.
4) Compared to other IaaS service providers out there in the market, Azure is a bit expensive.
Other Advice:
It's true that to run various Microsoft Enterprise Solutions, Azure is the best option, keeping aside minor caveats. Unless your requirement makes it mandatory to use IIS, you should consider other IaaS service providers available in the market, which are comparatively cheaper as well. It has good support for various platforms like Java, Ruby, and PHP for websites. Windows Azure provides API's built on popular and robust technology like HTML, REST, and XML.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Is it possible to use Azure with other non-Microsoft enterprise solutions or are there compatibility issues? In case it is not possible, which other alternative can you recommend to SME businesses that are looking for a cheaper alternative with almost similar capabilities of Azure if not completely the same or even better?
Senior Manager of Data Center at a integrator with 51-200 employees
Microsoft's cloud computing platform Windows Azure is a combination of both PaaS and IaaS
Valuable Features:
The pros of using Windows Azure are-
1) Windows Azure Virtual Network which enables virtual private network creation for enterprise usage
2) Support for Python, PHP, JAVA, .NET
3) More focus on application deployment, rather than infrastructure
4) Provides an application interface built on REST, HTTP, and XML
5) Content Delivery Network
Room for Improvement:
Few cons on Azure are-
1) Poor debugging and logging management for applications
2) Increased competition for development resources
3) Pricing
4) load balancing causes interruption in many of the stateful applications
Other Advice:
Windows Azure is a cloud computing platform from Microsoft for running windows applications and working with data on the cloud. It is based on the architecture of HyperV and windows fail over clustering to support redundant instances of application with zero downtime. It's built to quickly deploy application with .NET, JAVA, SQL, Python, and other cloud services. It works on the combination of SQL, azure, and AppFabric, along with other cloud services.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Director of IT at a tech company with 51-200 employees
Windows Azure is classified as platform, as a service, and forms part of Microsoft's cloud computing strategy, along with its software as a service offering Microsoft Online Services
Valuable Features:
-Windows Azure is available in multiple data centers around the world, enabling you to deploy your applications close to your customers.
- Its enables you to use any language, framework, or tool to build applications. Features and services are exposed using open REST protocols.
-Windows Azure’s distributed caching and CDN services, allow you to reduce latency and deliver great application performance anywhere in the world.
-Giving power back to the users to concentrate on the application and take away all their worries from the hosting and provisioning point of view.
Room for Improvement:
-Systems mirroring is currently not available within Azure, unlike Amazon Web Services.
-Lose account control to MS.
-MS has calibrations to compute how much you used them, and how you plan to validate it.
Other Advice:
The Windows Azure platform, which provides a range of functionality to build applications that span from consumer web to enterprise scenarios, includes a cloud service operating system and a set of developer services. With Windows Azure there are at least two instances of each role that the application needs and therefore, the Fabric controller load balances users’ requests between them. What this means is that there is no guarantee two requests from the same user will go to the same instance. This may be a problem with some applications that need a stateful connection with the user. A stateful connection is one in which some information about a connection between two systems is retained for future use.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
I agree with your pros, and as other pro I would add that the only need is to deploy the application, because all the rest is Microsoft managed, the user has no worry about the windows patching and updates, server running out of space, technical troubleshooting and maintenance cost, and time saved in building up the servers.
As a con, I would say that only windows centric applications are supported by Microsoft for technical assistance, so if there is an error it could be difficult to determine where is from.
Engineer at a manufacturing company with 51-200 employees
Microsoft Azure is best cloud computing platform available in the market.
Valuable Features:
Yet another powerful and reliable product from Microsoft. Windows Azure is a very reliable cloud computing platform, coupled with Microsoft data centers. More positives are that it can be used with non-Microsoft based data centers. It is fast and secure.
It stands first among all other cloud platform providers.
Room for Improvement:
Microsoft is not an innovator for this cloud computing platform. Still some of its products, like Dynamics GP 2013 online, are not compatible with iPad, iPhone, and some Android based devices.
Other Advice:
I love Microsoft's products because they are simple yet powerful and secure.
Disclosure: My company does not have a business relationship with this vendor other than being a customer.
Buyer's Guide
Download our free Microsoft Azure Report and get advice and tips from experienced pros
sharing their opinions.
Updated: January 2026
Popular Comparisons
Amazon AWS
Red Hat OpenShift
Akamai Connected Cloud (Linode)
VMware Tanzu Platform
Oracle Cloud Infrastructure (OCI)
Google Cloud
Salesforce Platform
Alibaba Cloud
SAP Cloud Platform
Pivotal Cloud Foundry
VMware Cloud Foundation
Google Firebase
Nutanix Cloud Clusters (NC2)
IBM Public Cloud
SAP S4HANA on AWS
Buyer's Guide
Download our free Microsoft Azure Report and get advice and tips from experienced pros
sharing their opinions.
Quick Links
Learn More: Questions:
- Gartner's Magic Quadrant for IaaS maintains Amazon Web Service at the top of the Leaders quadrant. Do you agree?
- PaaS solutions: Areas for improvement?
- Rackspace, Dimension Data, and others that were in last year's Challenger quadrant became Niche Players: Agree/ Disagree
- What Is The Biggest Difference Between Microsoft Azure and Oracle Cloud Platform?
- Which backup and recovery solution can backup Azure machines to its own (dedicated) cloud?
- Which is better - SAP Cloud Platform or Microsoft Azure?
- Which solution do you prefer: Alibaba Cloud or Microsoft Azure?
- How does Microsoft MDS (vs Informatica MDM) fit with Azure architecture?
- SAP HANA Enterprise Cloud (HEC): how to migrate to Microsoft Azure?
- Does F5 Advanced WAF work with Azure App Service?















SQL Azure is a service, and even it is pretty much the same as a SQL 2012/2014 server, you have to take in mind some considerations that can affect your application or your intentions on what use you will give to the SQL Engine. You can find links on the web that show the basic differences between SQL Server and SQL azure. The principal caveats is the way you can interact with the SQL Azure service and the SQL Transact commands that you can work with at an administrator level. You are limited on this commands and the things that you can accomplish. Also, there are some functionality (like temporary tables) or field types that do not work or exist on SQL Azure.
Also there is a limit on the number of transactions per second that you can realize, it is called throttling, you have to keep in mind that if you expect to do a great amount of transactions per second, SQL Azure could not be the service that you need.
There is also limits on the DB size that SQL Azure can handle. I think that right know this limit is set on 150GB. You can work around this limitation with DB federation, but requires some additional work on your queries side.
For a regular database operations and maintenance, it will fit well. It is a perfect integration for PAAS solutions.