I have worked in a consultant company and we have customers who migrate their services to the cloud and to modern applications and services using Microsoft Azure.
Owner with 51-200 employees
Windows Azure Migration cheat-sheet
I was recently asked whether I do have some cheat-sheet for migrating applications to Windows Azure. The truth is that everything is in my head and I usually go with “it should work” – quickly build, pack and deploy. Then troubleshoot the issues. However there are certain rules that must be obeyed before making any attempt to port to Windows Azure. Here I will try to outline some.
Disclaimer
What I describe here is absolutely my sole opinion, based on my experience. You are free to follow these instructions at your own risk. I describe key points in migrating an application to the Windows Azure Platform-as-a-Service offering – the regular Cloud Services with Web and/or Worker Roles. This article is not intended for migrations to Infrastructure Services (or Windows Azure Virtual Machines).
Database
If you work with Microsoft SQL Server it shall be relatively easy to go. Just download, install and run against your local database the SQL Azure Migration Wizard. It is The tool that will migrate your database or will point you to features you are using that are not compatible with SQL Azure. The tool is regularly updated (latest version is from a week before I write this blog entry!).
Migrating schema and data is one side of the things. The other side of Database migration is in your code – how you use the Database. For instance SQL Azure does not accept “USE [DATABASE_NAME]” statement. This means you cannot change database context on the fly. You can only establish connection to a specific database. And once the connection is established, you can work only in the context of that database. Another limitation, which comes as consequence of the first one is that 4-part names are not supported. Meaning that all your statements must refer to database objects omitting database name:
[schema_name].[table_name].[column_name],
instead of
[database_name].[schema_name].[table_name].[column_name].
Another issue you might face is the lack of support for SQLCLR. I once worked with a customer who has developed a .NET Assembly and installed it in their SQL Server to have some useful helpful functions. Well, this will not work on SQL Azure.
Last, but not least is that you (1) shall never expect SQL Azure to perform better, or even equal to your local Database installation and (2) you have to be prepared for so called transient errors in SQL Azure and handle them properly. You better get to know the Performance Guidelines and Limitations for Windows Azure SQL Database.
Codebase
Logging
When we target own server (that includes co-locate/virtual/shared/etc.) we usually use local file system (or local database?) to write logs. Owning a server makes diagnostics and tracing super easy. This is not really the case when you move to Windows Azure. There is a feature of Windows Azure Diagnostics Agent to transfer your logs to a blob storage, which will let you just move the code without changes. However I do challenge you to rethink your logging techniques. First of all I would encourage you to log almost everything, of course using different logging levels which you can adjust runtime. Pay special attention to the Windows Azure Diagnostics and don’t forget – you can still write your own logs, but why not throwing some useful log information to System.Diagnostics.Trace.
Local file system
This is though one and almost always requires code changes and even architecting some parts of the application. When going into the cloud, especially the Platform-as-a-Service one, do not use local file system for anything else, but a temporary storage and static content that is part of your deployment package. Everything else should go to a blob storage. And there are many great articles on how to use blob storage here.
Now you will probably say “Well, yeah, but when I put everything into a blob storage isn’t it vendor-lock-in?” And I will reply – depending on how you implement this! Yes, I already mentioned it will certainly require code change and, if you want to make it the best way and avoid vendor-lock-it, it will probably also require architecture change for how your code works with files. And by the way, file system is also “vendor-lock-in”, isn’t it?
Authentication / Authorization
It will not be me if I don’t plug-in here. Your application will typically use Forms Authentication. When you redesign your app anyway I highly encourage you rethink your auth/autz system and take a look into Claims! I have number of posts on Claims based authentication and Azure ACS(Introduction to Claims, Securing ASMX web services with SWT and claims, Identity Federation and Sign-out, Federated authentication – mobile login page for Microsoft Account (live ID), Online Identity Management via Azure ACS, Creating Custom Login page for federated authentication with Azure ACS, Unified identity for web apps – the easy way). And couple of blogs I would recommend you to follow in this direction:
- Dominic Baier: http://leastprivilege.com/
- Vittorio Bertocci: http://www.cloudidentity.com/blog/
Other considerations
To the moment I cant dive deeper in the Azure ocean of knowledge I have to pull out something really important that fits all types of applications. If it happens, I will update the content. Things like COM/COM+/GDI+/Server Components/Local Reports – everything should work in a regular WebRole/WorkerRole environment. Where you also have full control for manipulating the operating system! Windows Azure Web Sites is far more restrictive (to date) in terms of what you can execute there and to what part of the operating system you have access.
Here is something for you think on: I worked out with a customer who was building SPA Application to run in Windows Azure. They have designed a bottleneck for scaling in their core. The system manipulates some files. It is designed to keep object graphs of those files in-memory. It is also designed in a way that end-user may upload as many files as day want during the course of their interaction with the system. And the back-end keeps a single object graph for all the files user submitted in-memory. This object graph cannot be serialized. Here is the situation:
In Windows Azure we (usually, and to comply with SLA) have at least 2 instances of our server. These instances are load balanced using round-robin algorithm. The end user comes to our application, logs-in and uploads a file. Works, works, works – every request is routed to a different server. Now user uploads new file, and again, and again … each request still goes to a different server.
And here is the question:
What happens when the server side code wants to keep a single object graph of all files uploaded by the end user?
The solution: I leave it to your brains!
Conclusion
Having in mind the above mentioned key points in moving application to Windows Azure, I highly encourage you to play around and test. I might update that blog post if something rather important comes out from the deep ocean of Azure knowledge I have. But for the moment, these are the most important check-points for your app.
If you have questions – you are more than welcome to comment!
Disclosure: I am a real user, and this review is based on my own experience and opinions.

Owner with 51-200 employees
Windows Azure Basics (part 2 of n)–networking
In my previous post on Windows Azure Basics, I tried to introduce you the cloud computing concept and explain the Windows Azure Platform with not so technical terms. It is time now to get over the networking. What is happening behind the scenes? What we can or cannot (currently) use?
Lets first take a look at the following picture, which tries to show almost complete Windows Azure hosted service:

Here are the terms/abbreviations you see on the illustration:
Couple of words on protocols. Currently the Windows Azure hosted service only supports the TCP/IP stack of protocols. Meaning that you can only have TCP traffic to/from/within your instances. UDP is not currently supported (thus excluding IPSec also). What about web roles? Well, web roles are using HTTP protocol, which essentially lives over TCP. HTPS is also supported, because it also relies on TCP/IP. I very often see questions on whether sending/receiving mails is supported in Windows Azure, and the answer is yes. Before all, SMTP, POP(3), IMAP protocol families are all stacked over TCP. So we can have everything within the TCP stack, and (yet) nothing on the UDP stack (no SMB, no IPSec, no RTMP, etc).
Now, how can we route the Internet traffic to our instances in Windows Azure. The platform introduces an entity called Endpoint.
Endpoint is a combination of protocol type + port number, which effectively expose your instance to the internet at the given port number. What about protocol types? Well, currently you can only choose from “tcp” and “http/https”. There are two kind of endpoints: Input Endpoint and Internal Endpoint. While the Input Endpoint will expose your instance to the Internet, by routing all Internet traffic on selected port to your instance, the Internal Endpoint will only open communication between instances in a single deployment.

Something more on Windows Azure networking – the LB (Load Balancers) do not use sticky sessions. That means that every single request is routed on its own. So and end user can open a page on your website hitting Instance 0 of Web Role (check the illustration at the top), that page may create several AJAX requests and all AJAX request will go on their own route. Any of the requests may either hit Instance 0, but they may also Instance 1, and so on. That requires us to build a fully stateless applications. The application logic shall be fully operational and aware that some user’s requests may end up in one instance, other in other instances. So we have to always use a common storage (Azure Storage or SQL Azure or AppFabric Caching service) for all the data that needs to be persisted across user’s requests.
Remote Desktop? Yes, it is supported! Remote desktop operates on port 3389 over TCP protocol. Again the catch: Be aware that enabling a Remote Desktop for all your roles in your deployment (which just a checkbox), will automatically create an Input Endpoint for your service. This affects the total number of Endpoints per service (remember, it is 25)!.
What about sending mails, again? As I already wrote, the common mailing protocols are supported (SMTP, POP, IMAP), however Windows Azure does not provide a “Email-as-a-service” service. Luckily enough, a great collaboration was announced, and every Windows Azure subscription receives a complimentary free account on SendGrid with a limit of 10000 e-mails monthly (I think, this you can check
). So you can use the SendGrid service to send your application / service e-mails. You get it for free for the first 10k e-mails in the month. If your needs exceed this limit, you can upgrade your account for a very reasonable price!
Lets first take a look at the following picture, which tries to show almost complete Windows Azure hosted service:

Here are the terms/abbreviations you see on the illustration:
- LB – Load Balancer. It is the Windows Azure software Load Balancer, which routes the Internet traffic to and from your hosted service;
- VIP – virtual IP address. This is the internet facing public IPv4 (currently) network address for your hosted service. You have to pay attention to it, as you only have one single internet facing IP address per hosted service;
- DIP – direct IP address. This is an internal subnet IPv4 network address that each single instance of your roles has. You have one of these DIPs for every single instance, and there is only one per instance. This IP address in internal subnet and cannot be used to directly access a specific instance from outside the Windows Azure hosted service. You can, however use this address for internal communication between instances of your roles within the whole Windows Azure deployment (hosted service)t;
- The LB (Load Balancer) will not route any Internet traffic to the instances of your roles;
- The Windows Firewall of all your instances is set to default block everything (Effectively blocking even communication between different instances in a single deployment);
Couple of words on protocols. Currently the Windows Azure hosted service only supports the TCP/IP stack of protocols. Meaning that you can only have TCP traffic to/from/within your instances. UDP is not currently supported (thus excluding IPSec also). What about web roles? Well, web roles are using HTTP protocol, which essentially lives over TCP. HTPS is also supported, because it also relies on TCP/IP. I very often see questions on whether sending/receiving mails is supported in Windows Azure, and the answer is yes. Before all, SMTP, POP(3), IMAP protocol families are all stacked over TCP. So we can have everything within the TCP stack, and (yet) nothing on the UDP stack (no SMB, no IPSec, no RTMP, etc).
Now, how can we route the Internet traffic to our instances in Windows Azure. The platform introduces an entity called Endpoint.
Endpoint is a combination of protocol type + port number, which effectively expose your instance to the internet at the given port number. What about protocol types? Well, currently you can only choose from “tcp” and “http/https”. There are two kind of endpoints: Input Endpoint and Internal Endpoint. While the Input Endpoint will expose your instance to the Internet, by routing all Internet traffic on selected port to your instance, the Internal Endpoint will only open communication between instances in a single deployment.
Side note: you maybe already noticed that I am using “instances” more often then “roles”. I hope that you’ve read my first post and already know the difference. The key difference is that the instance is the actual VM (Virtual Machine) where your code lives, while the Role only defines the “footprint” for what to be instantiated on the Virtual Machine.The catch. There is always a catch, and the current one is on the constraints put on the Endpoints:
- You can have a maximum of 25 Endpoints per hosted service (Input + Internal);
- You define your endpoints by a Role! Meaning that two different roles cannot share a single Endpoint;
- All your Endpoints within a Hosted Service must be unique. Meaning that you cannot have an Input Endpoint (i.e. “EndpointWeb") serving HTTP protocol on port 80 for one Role and have another Input Endpoint (i.e. EndpointWebMVC) serving again HTTP protocol on port 80 for another Role. Here I stress that we define Endpoints at Role level, so every instance of this role will have the endpoints defined;

Something more on Windows Azure networking – the LB (Load Balancers) do not use sticky sessions. That means that every single request is routed on its own. So and end user can open a page on your website hitting Instance 0 of Web Role (check the illustration at the top), that page may create several AJAX requests and all AJAX request will go on their own route. Any of the requests may either hit Instance 0, but they may also Instance 1, and so on. That requires us to build a fully stateless applications. The application logic shall be fully operational and aware that some user’s requests may end up in one instance, other in other instances. So we have to always use a common storage (Azure Storage or SQL Azure or AppFabric Caching service) for all the data that needs to be persisted across user’s requests.
Remote Desktop? Yes, it is supported! Remote desktop operates on port 3389 over TCP protocol. Again the catch: Be aware that enabling a Remote Desktop for all your roles in your deployment (which just a checkbox), will automatically create an Input Endpoint for your service. This affects the total number of Endpoints per service (remember, it is 25)!.
What about sending mails, again? As I already wrote, the common mailing protocols are supported (SMTP, POP, IMAP), however Windows Azure does not provide a “Email-as-a-service” service. Luckily enough, a great collaboration was announced, and every Windows Azure subscription receives a complimentary free account on SendGrid with a limit of 10000 e-mails monthly (I think, this you can check

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Buyer's Guide
Microsoft Azure
December 2024

Learn what your peers think about Microsoft Azure. Get advice and tips from experienced pros sharing their opinions. Updated: December 2024.
838,713 professionals have used our research since 2012.
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: I am a real user, and this review is based on my own experience and opinions.
Consultant at SoftwareONE
Useful services, highly scalable, and easy to implement
Pros and Cons
- "Microsoft Azure has a lot of useful features. They have databases, application services, PaaS solutions, such as platform and infrastructure services. The virtual machines' functions and services are good."
- "Microsoft Azure can improve by adding more features for virtual machines, such as tier virtual machines."
What is our primary use case?
What is most valuable?
Microsoft Azure has a lot of useful features. They have databases, application services, PaaS solutions, such as platform and infrastructure services. The virtual machines' functions and services are good.
What needs improvement?
Microsoft Azure can improve by adding more features for virtual machines, such as tier virtual machines.
In an upcoming release, I would like to see more information, features, and warehouse information on data.
For how long have I used the solution?
I have been using Microsoft Azure for approximately five years.
What do I think about the stability of the solution?
Microsoft Azure is highly stable. However, Microsoft could improve the availability of the services by creating availability zones that are services working active-active in different positions around the globe. If any of these positions fall down, then another position will deliver the solution. This way there is no loss of service or loss to the business.
What do I think about the scalability of the solution?
Microsoft Azure has a lot of features for scalability. You could increase the scalability of any service, such as databases storage or virtual machines.
How are customer service and support?
Microsoft Azure technical support is not the best, they could improve the knowledge of their team and solve problems faster.
How was the initial setup?
The solution can be easy to implement. You could start easily, there are some services that have simple steps, and you could speed up the entire process. However, there are some more difficult deployments in more complicated architectures. You could start easily in the solution and then you can improve your skills.
What other advice do I have?
My advice to those thinking about using Microsoft Azure is to try it, it's a great service. It's a great opportunity to improve your career because there are a lot of challenges. I would recommend using the documentation and the information from the YouTube channels. There is a lot of documentation and data about Microsoft Azure available.
I rate Microsoft Azure a nine out of ten.
Disclosure: My company has a business relationship with this vendor other than being a customer: Partner
Systems Architect at a educational organization with 1,001-5,000 employees
Good for managing and configuring infrastructures
Pros and Cons
- "In terms of managing and configuring infrastructures, Azure is fairly good."
- "Azure could be improved with better security. The world is changing and their security could be better. Compared to five years ago, many of these cloud systems are a lot better, especially since you can set up a private cloud and configure your services to make it more secure."
What is our primary use case?
Our primary use cases are for GPU-centric computing and deploying web services infrastructure solutions.
What is most valuable?
In terms of managing and configuring infrastructures, Azure is fairly good.
What needs improvement?
Azure could be improved with better security. The world is changing and their security could be better. Compared to five years ago, many of these cloud systems are a lot better, especially since you can set up a private cloud and configure your services to make it more secure.
For how long have I used the solution?
I have been using Microsoft Azure for more than two years.
What do I think about the stability of the solution?
This solution is stable.
What do I think about the scalability of the solution?
I used Azure in a research-related context to see what features were possible, not a scalability context, so my impressions are limited.
How are customer service and support?
If you require a good amount of support, you may have an easier time with AWS.
How was the initial setup?
Installation may not be easy for novices, but for experienced folks, it's fairly straightforward. You can do it yourself.
What about the implementation team?
I implemented this solution myself.
What's my experience with pricing, setup cost, and licensing?
Licensing is available for Azure. We mainly use Azure in a research context and to showcase what's possible, not from a scalability context, so our usage is limited from that standpoint.
Which other solutions did I evaluate?
I have also worked with Amazon AWS. In general, AWS is fairly good too. I also know that many people also look at Google Cloud, which offers similar features and services.
What other advice do I have?
I rate Microsoft Azure an eight out of ten. There are some quirks, but in terms of managing and configuring infrastructures, it's fairly good. I recommend Azure because it's a top-class cloud solution provider, so there aren't many issues.
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Microsoft Azure
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Managing Director at D3
Easy to use administrator interface, stable, and straightforward installation
Pros and Cons
- "The user interface is very good for administrators."
- "Microsoft should have one package for all their solutions in one place to be found."
What is our primary use case?
We are using SharePoint through Azure.
How has it helped my organization?
The solution has helped our company by having zero maintenance.
What is most valuable?
The user interface is very good for administrators.
What needs improvement?
Microsoft should have one package for all their solutions in one place to be found.
For how long have I used the solution?
I have been using Microsoft Azure for one year.
What do I think about the stability of the solution?
Microsoft Azure is stable.
What do I think about the scalability of the solution?
I have found Microsoft Azure scalable.
How are customer service and support?
I have satisfied with the technical support from Microsoft.
How was the initial setup?
The initial setup was easy.
What about the implementation team?
I did the implementation of the solution.
What's my experience with pricing, setup cost, and licensing?
The price of the solution could be less expensive and the pricing model could be less confusing.
What other advice do I have?
My advice to those wanting to implement the solution is to have training. It is important to train the internal employees.
I rate Microsoft Azure a nine out of ten.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.
IT Systems Administrator at a transportation company with 51-200 employees
Stable, knowledgeable support, but the support subscription model needs improvement
Pros and Cons
- "Being cloud-based saves the provisioning aspect of an on-premises solution."
- "The support subscription models need improvement."
What is our primary use case?
We use Microsoft Azure for our IDB. That is our primary use, but we also have a certain degree of MDM through Microsoft.
What is most valuable?
It does what it is supposed to do, and what we expected of it. That's the key benefit. Being cloud-based saves the provisioning aspect of an on-premises solution.
What needs improvement?
The support subscription models need improvement.
For how long have I used the solution?
I have been using Microsoft Azure for a couple of years.
We are using the latest version.
What do I think about the stability of the solution?
Microsoft Azure is a stable solution.
What do I think about the scalability of the solution?
As far as we have expanded it, it is scalable. It's a startup company, we haven't scaled it to a significant number of people yet.
We have between 100 and 150 people in our organization who use Microsoft Azure.
I don't think that we will expand our usage at the moment.
How are customer service and technical support?
I have contacted technical support on one occasion. My biggest issue with the technical support of Microsoft is when we had an issue that was product-related and it was difficult to get support on the subscription level we were on. In order to try to get support, we were told that we needed to upgrade. It was quite frustrating that an issue with their product required an upgrade to get serviced when it was a failure that they were responsible for.
It's not a question of knowledge, the knowledge was there. Access to that knowledge and the subscription model they were trying to put in place was the issue.
Which solution did I use previously and why did I switch?
I used to work for Oracle. My previous experience was with Oracle Enterprise Manager.
How was the initial setup?
I wasn't present or involved at the time of installation. I came along later. I started with the company after that.
What's my experience with pricing, setup cost, and licensing?
Licensing fees are paid monthly.
What other advice do I have?
We are currently in the process of deploying Zabbix to cover our monitoring needs. We have used other monitoring products which come with certain components.
From my point of view, it would depend on the type of solution and everything they were trying to encompass. In our case, it made sense to go with Azure. I think that for other companies, I would recommend that it's a good solution, but that depends on what problem you are trying to solve. It also depends on what infrastructure is already in place, and whether you want to have a lot of disparate systems communicating, or whether you want to consolidate that to a specific vendor. But for the purposes of what we needed Azure to do, it does the job. However, we don't use all of the MS Apps functionality.
It does the job, but it doesn't wow me. I am pretty happy with it. I don't get overly excited about it, but I am not disappointed with it. I would rate Microsoft Azure a six out of ten.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Highly stable, scalable, and good technical support
Pros and Cons
- "The technical support has been good."
What is our primary use case?
In my country, many organizations want to migrate their operations to the cloud. This is why we are using Microsoft Azure.
For how long have I used the solution?
I have been using this solution for approximately one year.
What do I think about the stability of the solution?
The solution is stable.
What do I think about the scalability of the solution?
Microsoft Azure is scalable in my experience.
Approximately 1,000 use this solution.
How are customer service and technical support?
The technical support has been good.
Which solution did I use previously and why did I switch?
We also have customers using AWS.
How was the initial setup?
The installation is easy.
What about the implementation team?
We did the implementation of the solution.
What's my experience with pricing, setup cost, and licensing?
The pricing of the solution could be reduced. We are not able to create a free account in my country.
What other advice do I have?
I recommend this solution to others.
I rate Microsoft Azure a ten out of ten.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.

Buyer's Guide
Download our free Microsoft Azure Report and get advice and tips from experienced pros
sharing their opinions.
Updated: December 2024
Popular Comparisons
Amazon AWS
Oracle Cloud Infrastructure (OCI)
Akamai Connected Cloud (Linode)
Google Cloud
Alibaba Cloud
Google Firebase
SAP S4HANA on AWS
VMware Cloud Foundation
Nutanix Cloud Clusters (NC2)
DigitalOcean
SAP HANA Enterprise Cloud
Equinix Metal
Google Compute Engine
NTT Cloud
Skytap Cloud
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?