We just raised a $30M Series A: Read our story

Microsoft Azure OverviewUNIXBusinessApplication

Microsoft Azure is the #1 ranked solution in our list of top Infrastructure as a Service Clouds. It is most often compared to Oracle Cloud Platform: Microsoft Azure vs Oracle Cloud Platform

What is Microsoft Azure?

Windows Azure is Microsoft's cloud platform where developers can create, deploy, and maintain their apps. This cloud application platform allows developers to concentrate on the actual applications, while it takes care of all the elements behind the apps.

Windows Azure offers open across multiple frameworks,languages, and tools. It is fully scalable, localized in that it is hosted globally in many datacenters, and has widespread capabilities are, catering for all elements of application development, deployment, and management.

Azure is comprised of several different service modules,including Infrastructure; Web; Mobile; Dev & Test; Big Data; Media;Storage, Backup & Recovery; and Identity & Access Management.

Microsoft Azure is also known as Windows Azure, Azure, MS Azure.

Microsoft Azure Buyer's Guide

Download the Microsoft Azure Buyer's Guide including reviews and more. Updated: October 2021

Microsoft Azure Customers

BMW, Toyota, easyJet, NBC Sports, HarperCollins, Aviva, TalkTalk Business, Avanade, and Telenor.

Microsoft Azure Video

Archived Microsoft Azure Reviews (more than two years old)

Filter by:
Filter Reviews
Industry
Loading...
Filter Unavailable
Company Size
Loading...
Filter Unavailable
Job Level
Loading...
Filter Unavailable
Rating
Loading...
Filter Unavailable
Considered
Loading...
Filter Unavailable
Order by:
Loading...
  • Date
  • Highest Rating
  • Lowest Rating
  • Review Length
Search:
Showingreviews based on the current filters. Reset all filters
Jesus Carroll
Data Engineer at Prodxia
Real User
Top 20
An easy interface that is helpful for creating minimal environments to develop POCs

Pros and Cons

  • "The incorporation of several kinds of storage, such as SSD Premium, enhanced the performance of machines."
  • "Virtual networks might be improved by adding more rules for the validation of protocols and peripheral elements in security assurance."

What is our primary use case?

Our first deployment was CRM Dynamics, and it was done in the same way that we launched the previous version. However, it was easier than the last migration because the ease of preparing new machines with the wizard contributed to the quick implementation. It also includes great hardware specifications such as SSD Premium, which wasn't there until last year.

How has it helped my organization?

Azure has helped in the setup of operations with minimal environments for developing a proof of concept. The POC is the most useful and charming feature to get a minimal valuable product for all deployments. Customer satisfaction did increase the performance of sales, meanwhile, customer requirements were optimized.

What is most valuable?

This solution has an easy and (almost) intuitive administration interface to set up and deploy elements.

The incorporation of several kinds of storage, such as SSD Premium, enhanced the performance of machines.

The Machine Learning library for remote calls using REST and SOAP, as well as the legacy integrations of hybrid clouds are useful.

What needs improvement?

Virtual services might be improved by adding more rules for the validation of protocols and peripheral elements in security assurance. This feature could help to gain more visibility in compliance validation using cross-referencing between firewalls and legacy systems. By example, only mobile devices with Windows at phone, laptops, or tablets running either Windows 10 or Windows Mobile can print using Windows Server Hybrid Cloud Print, and this possibility cannot apply to another devices due to the feature uses an UNC path. UNC means for Universal Naming Convention, a standard for identifying servers, printers and other resources in a network. The UNC uses double slashes or backslashes to precede the name of the computer.

For how long have I used the solution?

Four years.

Which solution did I use previously and why did I switch?

I was using hybrid solutions with several web hosting services, but several customers could not be accommodated. They needed to solve the problem of migrating huge data centers with confidential information, and the initial costs of proof of concepts were complicated if the isolation of every component relied on legacy systems.

Which other solutions did I evaluate?

We evaluated HostGator VPS before choosing this solution.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Roberto Rubio
Country Manager at Orion Consultores C.A
Real User
The pricing Calculator feature is valuable and easy to use

Pros and Cons

  • "Azure has improved my organization because it is a new technology and so the customers who don't have enough knowledge about the cloud delegate the administration of their cloud infrastructure to us. We incorporate and add a new service to our product lineup about how to manage their Azure. It impacts our business because we're able to incorporate this new service."
  • "The interface is not easy to use. I'd like to see them develop a better interface, more graphical information about the resource and the consumer."

What is our primary use case?

We use Azure as an infrastructure service. Most of our customers have web servers but we also manage Azure for SAP R/3. It works fine. They do have a lot of options for SAP All-In-One, but we don't have as many options for SAP Business One. What Azure offers for Business One customers is too short to have enough servers certified. It works fine but it's not a complete solution for customers that use SAP Business One.

How has it helped my organization?

Azure has improved my organization because it is a new technology and so the customers who don't have enough knowledge about the cloud delegate the administration of their cloud infrastructure to us. We incorporate and add a new service to our product lineup about how to manage their Azure. It impacts our business because we're able to incorporate this new service.

What is most valuable?

The Pricing Calculator would be the most valuable feature. It's easy to use. 

What needs improvement?

I would like to have more certified servers for SAP. Our customers need an easier interface to manage Azure. They don't have people who have cloud knowledge. The knowledge group is taking time and they use our services to manage the cloud data. Azure is built for auto services but it's not easy. The interface is not easy to use. I'd like to see them develop a better interface and more graphical information about the resource and the consumer.

There's a machine, the server. The smallest machine that they have has 112 GB of RAM. It is big for a customer. It has around 16 cores and a 112 GB of RAM. Amazon has a server with around 8 cores and 60 GB of RAM. The smallest certified machine for SAP Business One HANA in Amazon Web Services is 8 cores and 60 GB of RAM and Microsoft it's 16 and 112 GB of RAM. It's too big for a small customer. Because this machine is able to manage 50 concurrent users it's too big for a customer with 22 or 30 users. 

For how long have I used the solution?

More than five years.

What do I think about the stability of the solution?

Until now I have only had a few problems with stability. There was a problem with Azure Active Directory in the US central region that affected almost all of the data centers around two or three months ago but otherwise, it's good stability. The stability is good enough.

What do I think about the scalability of the solution?

Scalability is fine. We tried to create services in the data center in Brazil and there was not enough space. There were not enough cores and RAM so we were not able to create it. We opened a ticket with technical service and they told to use another region.

We chose Azure because of its scalability. With Azure, we are able to use the size of a machine that we need.

How is customer service and technical support?

I haven't opened any tickets with technical support. The technical team opened most tickets but from what I hear, technical support has been fine. It could be better. They could improve the time it takes to respond but I have never heard about any issues from the technical guys about their support. They would prefer to get a faster response back because when you have a problem, you have your boss asking for updates so you need a fast answer.

What's my experience with pricing, setup cost, and licensing?

It's a very expensive machine and I would like for them to improve the price. There are smaller sized competitors who offer cheaper prices. 

Which other solutions did I evaluate?

We didn't look at any other options because we are not business partners with other cloud solutions or providers. We only have Azure so we try to solve everything with Azure. If a customer asks us for a proposal to move or create some interesting tool in the cloud, we all use Azure. We never compared it to other cloud providers.

What other advice do I have?

I would rate this solution a nine because they are always incorporating new alerts and new features. I wouldn't give it a ten because it's sometimes not easy to use and the price is not a fair price for the solution.

I don't know why customers think that Amazon is the best. I think that the customer thinks that the best option for cloud is an Amazon service and the second one is Microsoft. My advice to someone considering this or a similar solution is to be careful with Amazon because the customers think that they are always on the list.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Learn what your peers think about Microsoft Azure. Get advice and tips from experienced pros sharing their opinions. Updated: October 2021.
541,708 professionals have used our research since 2012.
Ramesh Karanam
Microsoft and Dev-ops Architect at Mphasis
Vendor
Top 10
Very easy to create a Kubernetes cluster

What is our primary use case?

Working Azure Kubernetes Service (AKS) to create a Kubernetes cluster. 

We are maintaining two environments of Kubernetes cluster on Azure using Azure Kubernetes Service (AKS).

We have used other managed PaaS services like ACS, Database, and monitoring, integrated with Jenkins for continuous integration and continuous deployment. 

How has it helped my organization?

We are running our product which is deployed on Azure AKS cluster. This really helps us to drive more business from customers.

What is most valuable?

  • It's very easy to create a Kubernetes cluster with the Azure Console 
  • Able to connect to the cluster using Azure PowerShell
  • Able to connect to the cluster using kubectl
  • Very good help from Microsoft Knowledge Base and also from the community
  • Very good support from the Microsoft team
  • Easy to manage as the core part is handled by Microsoft
  • Easy to add/scale up the cluster with more nodes by using the Azure console window or through scripting
  • Can integrate plugins with Jenkins for auto deployment
  • Integrated with a lot of open source tools for easy deployments and other functionalities like logging, monitoring, etc.

What needs improvement?

Better logging part when deployments are crashed, even when the entire cluster is crashed.

For how long have I used the solution?

One to three years.

What do I think about the stability of the solution?

Should always go with recommendations provided by Microsoft during the creation of new clusters. Otherwise, stability is an issue.

What do I think about the scalability of the solution?

Scalability is very good.

How are customer service and technical support?

Technical support is excellent. Recently, we have encountered a few issues however, the customer support team helped us very quickly to come out of it.

Which solution did I use previously and why did I switch?

We did not previously use a different solution. Kubernetes is the one we are using for container orchestration through Azure-managed Kubernetes service.

How was the initial setup?

The initial setup is very easy; straightforward.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Michelle Sollicito
Software Architect at a security firm with 51-200 employees
Real User
Much easier than AWS to set up, change, and configure VMs.

Pros and Cons

  • "Much more intuitive and more visual than AWS. More obvious where things are and how to change their configurations, etc."
  • "Being able to set up, change and configure VMs is easy - a lot easier than in AWS."
  • "Feedback and error messages make much more sense in Azure than in AWS."
  • "There are a number of services offered by AWS that are not yet available on Azure."

What is our primary use case?

  • IoT with C# and .NET Core 2.1. 
  • Raspberry Pi with Raspbian OS.
  • Docker containers
  • For use in security applications in the retail sector
  • Using RabbitMQ for message queueing between the internet of things and the cloud.

How has it helped my organization?

I compare it to AWS that I used prior to this. I find it much more intuitive, more visual, more obvious where things are and how to change their configurations, etc.  

What is most valuable?

  • Being able to set up, change and configure VMs is easy - a lot easier than in AWS
  • Feedback and error messages make much more sense in Azure than in AWS.

What needs improvement?

I get the impression there are a number of services offered by AWS that are not yet available on Azure, but it seems to be catching up pretty fast.

For how long have I used the solution?

Less than one year.

What do I think about the stability of the solution?

It seems to me that Azure is a little less stable than AWS but not so that it makes a difference, given how much time you save doing other stuff like configuring, etc.

What do I think about the scalability of the solution?

Very easy to scale in and out but has unpredictable costing as a result. However, AWS is the same.

How are customer service and technical support?

I do not use tech support. I use online forums, etc.

Which solution did I use previously and why did I switch?

AWS. I started a new job.

How was the initial setup?

No, it is simpler in Azure than in AWS.

What about the implementation team?

In-house.

What's my experience with pricing, setup cost, and licensing?

Pricing is the worst aspect of both AWS and Azure. It is very difficult to predict costs in my experience. There is often a base price (for running a VM for example), but then you have to pay for data storage costs plus data transmission costs, etc. I would prefer to have a predictable monthly cost for unlimited storage within a bandwidth for example, but there isn't an easy way to predict costs.

Which other solutions did I evaluate?

I evaluated Google Cloud too and compared AWS with Azure. Azure is definitely the best for me; I am more productive because I understand the tech architecture better.

What other advice do I have?

If you are a C#, .NET or SQL server person, do not even think about using AWS, use Azure instead. If you are more of a Linux/PHP/Java type of person, you may consider AWS as it works much better from the command line and much more like a Linux or Java environment.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
AS
Digital Ad-Operations at a tech services company with 10,001+ employees
Real User
It was easy to deploy our applications on it. However, we are looking for better compatibility and scalability.

Pros and Cons

  • "It was easy to deploy our applications on it."
  • "We have faced some challenges trying to deploy a new ESP application."

What is our primary use case?

We wanted to deploy applications and have them interact with services on the back-end, so we deployed Azure for this. The performance has been quite good.

What is most valuable?

It was easy to deploy our applications on Azure. It provides more compatibility and scalability than the .NET application. This is why we chose to use Azure.

What needs improvement?

We are looking for the Azure to get involved in the case of other applications, like the Java application. Because it is predefined and has been set by Microsoft, who is providing better compatibility to the .NET application, so we are looking for the same from Azure for the Android app. Therefore, we are looking for better compatibility and scalability.

What do I think about the stability of the solution?

It is stable. I have not seen it have any downtime.

What do I think about the scalability of the solution?

We have faced some challenges trying to deploy a new ESP application.

How is customer service and technical support?

The technical support was good. I would give them an eight out of 10 rating.

How was the initial setup?

The initial setup was straightforward.

What's my experience with pricing, setup cost, and licensing?

The pricing is very competitive.

Which other solutions did I evaluate?

We evaluated AWS. 

If I were advising a colleague in my organization who is looking for a solution and is comparing AWS and Azure, I would prefer that they go for Azure, or any software using Microsoft technologies because we have had good experiences with them. If I were advising on Java, I wouldn't advise him to specifically use another tool rather he should do research and use my comparison history on IT Central Station.

What other advice do I have?

I would rate this solution a seven out of 10. 

Most important criteria for selecting a vendor: The client will choose the license and buy it. We can try to convince them, but we can not compel them to use a specific vendor's license. Ultimately, the decision-maker is the client.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Michael Grove
Web Developer at Indiana
Real User
This solution has the best website amongst all cloud computing platforms. It is simple to utilize, and one can release nearly anything, from app services to host sites

Pros and Cons

  • "Azure has the best website amongst all cloud computing platforms. It is simple to utilize, and one can release nearly anything, from app services to host sites."
  • "Establishing the account in the beginning was very difficult."

What is our primary use case?

We host various sites and utilize this solution for purchasing domains as well. It's simple to host small sites and back-end software applications on Azure instead of on regional servers

How has it helped my organization?

It has great deals of APIs for automation that we can utilize for managing our services. We implemented some custom tools that were developed in house and are extremely happy with the time that we now spend monitoring the websites.

What is most valuable?

Azure has the best website amongst all cloud computing platforms. It is simple to utilize, and one can release nearly anything, from app services to host sites.

What needs improvement?

Being a big item, it has it's own share of bugs. I had a great deal of difficulty establishing the account at first.

For how long have I used the solution?

One to three years.

What do I think about the stability of the solution?

No

What do I think about the scalability of the solution?

No

What was our ROI?

We are at 150% at this time, not considering the time that we concentrated on something else.

Which other solutions did I evaluate?

Yes, we searched Google and Amazon.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user809565
DBA
Real User
As a DBA, the easy maintenance and backups are key

Pros and Cons

  • "I come from the DBA side so for me it's the easy maintenance; backups are very easy as well."
  • "I would like to see more databases on the cloud, what they call today Big Data should be there."

What is our primary use case?

Installation of SQL Server, Cloudera Hadoop, and MySQL. The performance has been great.

How has it helped my organization?

The benefit is the time to generate all these machines. It's in the cloud so I don't feel it.

What is most valuable?

I come from the DBA side so for me it's the easy maintenance; backups are very easy as well.

What needs improvement?

I would like to see more databases on the cloud, what they call today Big Data should be there. I think it's going in the right direction.

What do I think about the stability of the solution?

Stability is great.

What do I think about the scalability of the solution?

Scalability is also great.

How is customer service and technical support?

Personally, I have not used support, but the guys who do are happy with it.

Which other solutions did I evaluate?

Cloudera.

What other advice do I have?

When choosing a vendor what's important to me are stability, a lot of features, variety, and good support.

My advice would be, try it using the free trial and I am sure you will be satisfied and take it.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Rodrigo Ramele
Mobile Lead Engineer at a tech services company with 201-500 employees
Real User
Puts the "scaffolding" in place and allows you to focus on the business solution

Pros and Cons

    • "Scalability is definitely in need of improvement. Azure is a very good solution but it still lacks the performance of other cloud platforms."
    • "Azure does not handle scalability as well as its competitors. Sometimes a 10 percent increase in a server with 20 percent of CPU usage pushes the server up to 100 percent load, and you start having performance issues."
    • "We had issues with the Mobile Service ORM and the Azure SQL Database (cloud version of SQL Server). At times, the queries that are created automatically from the ORM mapping are not very well optimized for this database and that can lead to performance and stability issues. On occasion, the connection manager from the ORM does not handle the database connections very well."

    What is our primary use case?

    Azure Cloud App Services can be classified as a MEAP, Mobile Enterprise Application Platform. It is also a Platform As A Service solution. These Cloud PaaS services are the backbone and the back-end structure that you can use to build omnichannel applications (mobile + web SPA + Kiosk). Azure App Service eases the creation of flexible Express Node.js or .NET WCF microservices. It has an API based on OData and integrated security with OpenID Connect with federated or corporate login. If you need a quick mobile solution, particularly an enterprise mobile solution, this is a wonderful choice.

    We use this solution as a template to build mobile, back-end-of-corporate-omnichannel apps. 

    How has it helped my organization?

    When mobile is a necessity for an already-running corporate system, you do not want to lose time setting up a whole new environment and platform. You need something that can help you easily put in place all the scaffolding you need, and concentrate on the business solution that you are providing. Azure does this.

    What is most valuable?

    The time-to-market. Once you master the technology, you can create running, mobile back-ends in a few weeks. Additionally, it easily enables integration with legacy environments (like connecting to existing servers).

    What needs improvement?

    Scalability is definitely in need of improvement. Azure is a very good solution but it still lacks the performance of other cloud platforms.

    For how long have I used the solution?

    One to three years.

    What do I think about the stability of the solution?

    We had issues with the Mobile Service ORM and the Azure SQL Database (cloud version of SQL Server). At times, the queries that are created automatically from the ORM mapping are not very well optimized for this database and that can lead to performance and stability issues. On occasion, the connection manager from the ORM does not handle the database connections very well.

    What do I think about the scalability of the solution?

    Azure does not handle scalability as well as its competitors. Sometimes a 10 percent increase in a server with 20 percent of CPU usage pushes the server up to 100 percent load, and you start having performance issues.

    How are customer service and technical support?

    Microsoft allows you a certain number of tickets, depending on the cloud plan that you are paying for. If you have an available ticket, technical support is great, but if you happen to have none, it will be more difficult to find good support. 

    Once you gain a certain level of expertise on the platform, you will be able to handle most of the problems. Also, now that the platform is very open (Node.js + Express) it is easier to access good documentation and an excellent community.

    Which solution did I use previously and why did I switch?

    We tried many solutions. We tried Kinvey and Kony but prices were absolutely prohibitive for our customers. We also tried BAASBOX which is now a (mostly) defunct open-source MBaaS solution.

    We move forward with a .NET customized solution that we created ourselves but maintenance of a general platform requires a lot of work and we couldn’t afford to charge our customers for the required amount of work.

    We tried AWS Mobile Services once but our customers preferred Microsoft Azure (their existing back-end was mainly implemented in .NET, and they preferred to stay in the Microsoft world).

    We also built a solution with SAP Mobile gateway which is the safest choice for companies that have huge legacy systems already running on SAP.

    How was the initial setup?

    The initial setup is very straightforward. You can very easily have an application up-and-running almost out-of-the-box. The learning curve is steeper once you need to start building more services or when you need to take care of performance issues.

    What's my experience with pricing, setup cost, and licensing?

    The cost-benefit equation for Azure is very good, particularly for small applications. However, Microsoft should do much, much more to improve how costs are communicated and how to forecast them. The Azure Pricing Calculator is not useful.

    Which other solutions did I evaluate?

    We checked the big players in MBaaS, particularly Kony and Kinvey. Kony was extraordinary (circa 2013) but the price was prohibitive. Kinvey was also very good and prices were slightly better but not affordable at all for our customers. We started using WAMS, Windows Azure Mobile Services, the previous version of Azure App Service, which was one of the first MBaaS solutions. Microsoft improved a lot the platform with App Service.

    What other advice do I have?

    I would rate Azure at nine out of 10. The previous version of Microsoft's mobile cloud platform, Mobile Service, had some security and scalability problems but the new version, App Service, has many improvements in these areas. It also uses open-source tools and allows developers to work in isolated environments, in their own workstations (without all the hassles and costs of putting the cloud into the developer’s cycle).

    If the mobile application is not that big (up to 15 services) and time-to-market is very important, Azure App Service is a great solution. If you need heavy integration with an existing .NET legacy system, this solution will also work very nicely and will reduce costs. If you need to implement a much bigger system, my advice is that you should think about gathering a specialized team that has a very good grasp of the platform.

    Disclosure: My company has a business relationship with this vendor other than being a customer: Gold Certified Microsoft Partner.
    ITCS user
    Network Manager / Senior Network Engineer at Warnock, Tanner & Associates
    Real User
    Azure has become a one stop shop for cloud computing and continuing to grow.

    Pros and Cons

    • "Storage has made remote access to files much more painless and easy."

      What is our primary use case?

      Currently we are hosting custom web applications, boxed applications, Azure VMs, Azure files for shared company files, Azure blob storage, Azure Active Directory with Active Directory sync, Single Sign On, and development and testing purposes.

      How has it helped my organization?

      Creating VMs for development has been huge since we ran out of resources locally. Creating Hybrid solutions provides us with greater confidence in higher availability. Storage has made remote access to files much more painless and easy. Using SSO has also been great reducing the number of passwords and locations required to use them.

      What is most valuable?

      Customized Dashboard, Site-to-site and point-to-Site VPN, Virtual Machines, Web Apps, SQL, SharePoint, Storage, Test/Dev environments.

      What needs improvement?

      Pricing is very difficult to guesstimate. With so many a la carte options and individual pricing it can be a hassle to understand. I constantly need to go over the report to find out where I can save money and what is eating up the monthly costs.

      For how long have I used the solution?

      One to three years.

      What do I think about the stability of the solution?

      No issues with stability. Has been rock solid.

      What do I think about the scalability of the solution?

      Scalability is Microsofts big advantage. At anytime you can scale up or down your servers or services growing them or shrinking them to your needs. You can even automate this process. I personally do not get into Enterprise solutions but they continue to add larger solutions frequently.  

      How are customer service and technical support?

      Customer Service:

      First response is 2-4 hours. Staff is knowledgeable but can often be difficult to understand and slow. Although I do not call about routine issues and bring very complex problems there way. With that said I will say every issue does get resolved.

      Technical Support:

      I rate technical support 7/10. First response is 2-4 hours. Staff is knowledgeable but can often be difficult to understand. I have also found that a few of them try to e-mail you despite your request for a call. This causes much miscommunication and additional time your problem is not getting resolved.

      I only give them an 7 because I have struggled a time or two with understanding their English or getting the ball rolling resolving my issue. This all really depends on the department you need.

      I will say that they always get the issue resolved regardless of the complexity of the problem.

      Which solution did I use previously and why did I switch?

      No I have not, but we chose Azure simply simply because we are Microsoft partners and get free Azure credits to work with.  Microsoft is also a power player in cloud solution and a trusted name.  

      How was the initial setup?

      Huge learning curve for me. I found just diving in was incredibly difficult. Much lab time required to understand how things work together. Once you get going however it all makes sense.

      I also find the GUI to be more intuitive then AWS and feels better.

      They are constantly changing the GUI while they continue migrating the ASM model to the ARM model. Since this is a living platform it can change from one day to the next adding features. 

      What about the implementation team?

      I implemented all the solutions myself with a little research.

      What was our ROI?

      Microsoft does have special pricing for Development purposes. This does help reduce the monthly costs for our team.

      As our local resources reach their end of life, we have moved servers and services to Azure.  It becomes more of an operation expense as apposed to a capitol expense. 

      What's my experience with pricing, setup cost, and licensing?

      We are MS partners. Depending on your partnership you may or may not get Visual Studio Enterprises licenses. Each license allows you to get a $150 Azure credit per month.

      This has been great for our developers and I to put in to practice some Azure solutions.

      There are many other free credits available as well.  Do some searching.

      If you need to purchase Azure they do have a pricing calculator that may help you determine costs.  https://azure.microsoft.com/en...


      Which other solutions did I evaluate?

      I know AWS is another great solution, but have not tackled it yet. I do have plans to experiment with Amazons solution to determine for my own the differences. 

      What other advice do I have?

      The biggest advantage to using Azure over any other cloud solution is the ability to move your domain into the cloud and be completely server free and still have domain services.

      I have also found that site-to-site vpn with domain services rack up a good percentage of our monthly costs. These are the fundamentals to move your network into Azure.

      Disclosure: My company has a business relationship with this vendor other than being a customer: Partners
      Edgar Parra
      Senior Technical Consultant at The Instillery
      Real User
      Quickly provisions servers, infrastructure, and apps on the fly

      Pros and Cons

      • "It very quickly provisions servers, infrastructure, and apps on the fly and complies with security requirements and data safety."
      • "Azure ARM​ console can be a bit overwhelming at the beginning."

      What is our primary use case?

      We have been using Azure for DevOps and non-production environments. It is great when you want to deploy apps in your staging environment first using deployment slots. This allows you to flick the switch very quickly between your current prod app and the newly developed in staging to see how it behaves in the real world. If something goes wrong, you can easily switch it back.

      How has it helped my organization?

      Azure is a platform which allows our organization to be agile. It very quickly provisions servers, infrastructure, and apps on the fly and complies with security requirements and data safety.

      What is most valuable?

      Azure Active Directory, Azure VMs, Azure network security groups (NSG), and  monitoring endpoints across different regions to check how your platform operates from different geographic locations. Azure backups are another feature which are quite useful, especially since they allow us to backup our Azure VMs and our on-premise servers. Data can be backed up to Azure, saving time, space, and using clunky tapes to restore data, when needed.

      What needs improvement?

      Azure ARM console can be a bit overwhelming at the beginning. 

      If you are not aware of costs, pricing, etc., you can end up with a hefty bill. However, I found that the Azure price calculator is a valuable tool to use before starting to deploy VMs in Azure. This tool will give you an overview of the costs you should expect on a monthly, quarterly or yearly basis.

      For how long have I used the solution?

      One to three years.

      What do I think about the stability of the solution?

      I have had no stability issues. It is a very stable platform and very resilient. It comes down how you set up your geo-redundant options for backups, SQL replication. and VMs which run your services/apps.

      What do I think about the scalability of the solution?

      I have had no scalability issues. It is an elastic platform. It all depends how you set up your scale up options to address heavy loads, but the options are there for you to use.

      How are customer service and technical support?

      Microsoft Premier support is great to deal with. They understand very quickly the scenarios and how critical a scenario can be. They provide info, support, and knowledge to address issues. 

      We did not have a particular issue when implementing. It was mostly understanding all the options Azure had. We used Premier support to generate inquiries with Microsoft seeking clarification about what option was best suited for what we wanted to do.

      Which solution did I use previously and why did I switch?

      I used AWS (Amazon Web Services), but mostly because I was involved in a project. AWS is also a great solution, but I found Azure was easier to use and it had a native integration with my current platform (Windows).

      How was the initial setup?

      The key here is design. You need to design and orchestrate how you want your VMs (geo-redundant, in an availability set, size of VMs, etc.). It is the key to understanding the costs of each set of VMs available to you in terms of size and computing resources. Also, understand what type of storage will be required for you to deploy your virtual infrastructure SSD storage and larger disks. Plan to use this (Standard, Basic, or Premium) and it needs to be taken into consideration depending of what you want to use Azure for.

      What about the implementation team?

      In-house deployment, as there were Azure skills on the team.

      What was our ROI?

      Not applicable.

      What's my experience with pricing, setup cost, and licensing?

      Use Azure price calculator before embarking on an Azure deployment. This will help you understand straight away what your cost expectations are on a regular basis. You can always run Azure on a 30 day trial, see how you feel about it, then make the decision to switch to the full Azure usage.

      Which other solutions did I evaluate?

      In addition to AWS, I also trialed Oracle Cloud (on a smaller scale) and it is great if you are running Oracle Databases. You can also stand up your VMs and build your environment. A cool feature of Oracle Cloud is you can run a private cloud version in your data center, exactly the same experience if you are running it on a private or public cloud. The private cloud solution comes in the form of an Oracle appliance which gets configured, deployed and installed by Oracle directly in your data center.

      What other advice do I have?

      Run Azure on a 30 day trial and see how you feel about it, then make the decision to switch to the full Azure usage. You see the reason when you view the benefits of using its cloud solution, especially one that integrates so seamlessly with your environment, collaboration tools, and apps.

      Disclosure: I am a real user, and this review is based on my own experience and opinions.
      John ONeill
      Principle consultant at Active Data Consulting Services Pty Ltd
      Real User
      We have the ability to quickly create and manage resources is critical to getting things done, Azure just makes getting things done a lot simpler.

      Pros and Cons

      • "The ability to quickly create and manage resources is critical to getting things done, Azure just makes getting things done a lot simpler."
      • "You eventually end up with a large collection of 'bits' all working together, I find it hard to be able to create a logical 'box' and put all the 'bits' that need to be in that box / application into the one place."

      What is our primary use case?

      Building development and production environments to support business acrivity.

      How has it helped my organization?

      Getting resources up and running quickly and providing secure access to those resources makes life easier. Also, Microsoft Azure really does offer a great deal which allows one to completely think about software development in new ways. I love the WebApps feature and am currently learning everything I can about Logic apps.

      I am really into the Everything as a Service model that Azure seems to be heading towards. Less fussing over VM's and Operating Systems.

      What is most valuable?

      The ability to quickly create and manage resources is critical to getting things done, Azure just makes getting things done a lot simpler.

      What needs improvement?

      You eventually end up with a large collection of 'bits' all working together, I find it hard to be able to create a logical 'box' and put all the 'bits' that need to be in that box / application into the one place.

      We're still learning though, so odds are there's something that will help us with this already in Azure.

      What do I think about the stability of the solution?

      No, so far we've had no problems with anything we've deployed onto Microsoft Azure, rock solid.

      What do I think about the scalability of the solution?

      At our early stage we've not encountered any scalability issues at all, and we're not likely to either, Azure will easily handle whatever workload we plan to throw at it.

      How are customer service and technical support?

      Customer Service:

      Excellent! I raised a support ticket on a question I had and got a prompt, clearly articulated and knowledgeable reply from the Microsoft Technical support person which addressed our question in a very short time-frame.

      Technical Support:

      Excellent! Was very impressed with the person I liaised with.

      Which solution did I use previously and why did I switch?

      I was using an on-premises solution with servers running a HyperVisor, we were due to replace old hardware and needed to make resources available everywhere the team is, Microsoft Azure 'just made sense'.

      How was the initial setup?

      Setting up was quite simple, before jumping in though make sure you watch some of the video's on the MVA site about virtual networking and so forth, the Azure user interface makes deploying these resources relatively straight-forward.

      What about the implementation team?

      We went in-house, learning as we go. We're still very new to Azure and learning all the time, we'd be beginner to intermediate at most. We're not deploying to production for some time and will work with a Certified Microsoft Partner when we get to that stage.

      What was our ROI?

      Several thousand dollars and counting, we haven't needed to upgrade on premises hardware (In fact we eliminated all of the old on-premises hardware and run 100% on Azure) or pay for it's maintenance, power etc.

      What's my experience with pricing, setup cost, and licensing?

      Understand and use the pricing calculator!


      Learn PowerShell, a quick tip is that you can shut down and de-allocate your VM's when you are not using them, this way the VM's are not incurring charges. We absolutely love this feature, as it means that when the environment is not in use, it isn't costing much (if anything), so it lends itself to making the I.T environment more efficient.

      Which other solutions did I evaluate?

      We looked at AWS, but we chose Azure because we use a lot of Microsoft Products and it just felt more integrated.

      What other advice do I have?

      Start with the simple things first, design your environment before deploying anything, even a simple development environment. Understand the charging model used and get to grips with the basics of PowerShell, as nice as the web based front end is, PowerShell is very handy.

      Disclosure: I am a real user, and this review is based on my own experience and opinions.
      ITCS user
      Pre-Sales/System Architect at a tech services company with 5,001-10,000 employees
      MSP
      Top 10
      It has a great front-end management interface

      What is most valuable?

      • Windows and Linux compatibility
      • Great front-end management interface
      • Pricing based on use time

      How has it helped my organization?

      One time I needed to build an environment, but it did not exist at the time to buy the hardware and all logistics inside it. To deploy it was essential, we got a great success on the project using MS Azure.

      What needs improvement?

      It could be a useful process to make the marketing of MS Publisher a little area of improvement for IT professionals learn about this tool.

      For how long have I used the solution?

      Two years.

      What was my experience with deployment of the solution?

      No. We did not have any problem deploying it.

      What do I think about the stability of the solution?

      No. We do not have problems with stability.

      What do I think about the scalability of the solution?

      No. We do not have problems with scalability.

      How are customer service and technical support?

      Customer Service:

      I do not use customer service.

      Technical Support:

      We have had great experiences using their technical support. They were very useful.

      Which solution did I use previously and why did I switch?

      No, just on-premise and testing Amazon.

      How was the initial setup?

      No, it is easy to configure and use.

      What about the implementation team?

      It was implemented in-house, using our own team. Some of the professionals had already worked with Azure.

      What was our ROI?

      It was not calculate

      What's my experience with pricing, setup cost, and licensing?

      The whole pricing list is published, so it is clear. When you choose the configuration, you can see the price.

      Which other solutions did I evaluate?

      Yes. On-Premise and other solutions inside the company.

      Disclosure: I am a real user, and this review is based on my own experience and opinions.
      it_user159600
      Director of Operations at a tech services company with 51-200 employees
      Real User
      It enables a breakdown of IT silos and speeds up micro-service architectures.

      Pros and Cons

      • "In general, the entire suite of PaaS is valuable. It enables a true breakdown of IT siloes and allows an organization to embrace DevOps."
      • "Predictability and quality. Make sure things work predictable, as expected, and documented."

      How has it helped my organization?

      We are faster to market with greater integration of the development and infrastructure teams.

      Develop solutions quickly using the normal toolset be it either as developer, IT, DevOps or BI. Expand into new world via AI and Machine Learning.

      What is most valuable?

      Update two years later.... Microsoft Azure continue to expand its Platform as a Service value and has set itself apart from other cloud providers that are focused on the IaaS world. If you are a Microsoft house e.g. Visual Studio, .Net, Xamarin, O365, Windows Server or Windows Users this is a clear winner. It is easy to expand you in-house, in-data center knowledge into the cloud and Microsoft's enablement of hybrid/spanning on-premise with Cloud makes transitions easy.

      In general, the entire suite of PaaS is valuable. It enables a true breakdown of IT siloes and allows an organization to embrace DevOps. It speeds up micro-service architectures and provides interesting and new opportunities to staff, generating morale boosts.

      What needs improvement?

      Two years later..... This has been resolved by Microsoft. There is now starting to be the challenge of figuring out which service you want to use and it is no always clear which PaaS is best for the job. This is Microsoft achilles heal across its services.

      Predictability and quality need improvement. Make sure things work predictably, as expected, and are documented.

      As my organization learned the new tooling that Azure provides we encountered topics where the behavior of the PaaS Resource was behaving slightly different than expected and outlined in the documentation. We usually would open a service request on the topic and be told that it is supposed to work as we expected but there is a problem and Microsoft provided a work around. An example of such a topic was IAM where a contributor on a resource group who were creating a Storage resource were told they were not authorized. The main reason was around the registration of the resource that had to be done by an administrator and manually as a one-time task. Talking to Microsoft they admitted this was an error. This was for us predominant for Storage Accounts but it did occur for some other resources as well.

      The second topic we encountered were related to VM’s that would suddenly and without warning would go offline. Response from Microsoft support request was that as long as the SLA is below 99.95% they cannot do anything. Obviously you can expand the resource and the cost using a availability set, fault domains etc. but my expectations was that VM’s would only be taken down for maintenance with prior notification. This one is less critical as I agree that you need to design your VM’s using the high availability features.

      What do I think about the stability of the solution?

      I have not seen any stability issues. High availability and reliability is good if you follow Microsoft development practices.

      What do I think about the scalability of the solution?

      Provides fast scalability, based on demand.

      How are customer service and technical support?

      Technical support is outstanding. They provide fast and high quality support, even with lower support contracts.

      Which solution did I use previously and why did I switch?

      I used traditional data center solutions.

      How was the initial setup?

      The setup was complex. There is a lot of training that needs to occur with both development teams and infrastructure teams. It is a different approach. In some ways, it is more structured.

      What's my experience with pricing, setup cost, and licensing?

      Keep to PaaS to gain the optimal benefits from an OPEX finance and resource perspective.

      Which other solutions did I evaluate?

      I also use AWS. While AWS is ahead in the IaaS technology, for a Microsoft shop, Azure is more aligned to skills.

      What other advice do I have?

      Learn and spend up-front time on training the organization.

      Disclosure: I am a real user, and this review is based on my own experience and opinions.
      ITCS user
      President and Founder with 51-200 employees
      Vendor
      Our Chinese clients can initiate international cloud launches of new IOT products, but pricing for outgoing data caps the ability for startups to justify its deployment.

      What is most valuable?

      Provisioning, info bus, video streaming, IOT templates, Web Services, SQL

      How has it helped my organization?

      Azure has allowed our burgeoning PRC SOE clients to initiate international cloud launches of new IOT products.

      What needs improvement?

      Pricing of outgoing data has capped the ablity for startup products to justify the ROI of Azure application deployment.

      For how long have I used the solution?

      3 years

      What was my experience with deployment of the solution?

      Just cost

      What do I think about the stability of the solution?

      Over the last 12 months we've seen 2 outages.

      What do I think about the scalability of the solution?

      No

      How are customer service and technical support?

      Customer Service: Poor, you can't get to people who know the…

      What is most valuable?

      Provisioning, info bus, video streaming, IOT templates, Web Services, SQL

      How has it helped my organization?

      Azure has allowed our burgeoning PRC SOE clients to initiate international cloud launches of new IOT products.

      What needs improvement?

      Pricing of outgoing data has capped the ablity for startup products to justify the ROI of Azure application deployment.

      For how long have I used the solution?

      3 years

      What was my experience with deployment of the solution?

      Just cost

      What do I think about the stability of the solution?

      Over the last 12 months we've seen 2 outages.

      What do I think about the scalability of the solution?

      No

      How are customer service and technical support?

      Customer Service:

      Poor, you can't get to people who know the products when you are ramping up.

      Technical Support:

      poor

      Which solution did I use previously and why did I switch?

      Used AWS and FireHost but switched to support our partnering efforts with MSFT.

      How was the initial setup?

      Straightforward

      What about the implementation team?

      In-house

      What was our ROI?

      Not good because of out going data costs.

      What's my experience with pricing, setup cost, and licensing?

      Push MSFT to change the outgoing data policy.

      Which other solutions did I evaluate?

      AWS, Huawei, FireHost

      Disclosure: My company has a business relationship with this vendor other than being a customer: Microsoft Partner
      ITCS user
      Diretor de Sistemas de Informação at a transportation company with 5,001-10,000 employees
      Real User
      Mobility of cloud-based directory reduced reporting and sped implementing new solutions

      What is most valuable?

      • Virtual Networking
      • Security
      • Feature packing
      • Virtual Machines
      • Ease of implementation
      • Azure AD
      • Azure AD Directory Domain Services
      • Database as a Service
      • Operations Management Suite
      • RBAC

      How has it helped my organization?

      Mobility, no more "metal" on-premise, cloud-based directory with SSO features, sped implementing new solutions, reduced skillset for management and reporting.

      We have a full Azure plus Office 365 implementation for servers and desktops, authenticating users on Azure AD over 802.1X switching and wireless. No on-premise servers, DC's, file-servers, etc.

      What needs improvement?

      Stability. Microsoft is implementing changes too fast and sometimes things break.

      For how long have I used the solution?

      Three years, but the full stack only since January 2017.

      What was my experience with deployment of the solution?

      None.

      What do I think about the stability of the solution?

      Yes. Beware of August. Microsoft makes some big changes during this month and they have an impact on customers.

      What do I think about the scalability of the solution?

      None.

      How are customer service and technical support?

      Customer Service:

      10 out of 10.

      Technical Support:

      10 out of 10.

      Which solution did I use previously and why did I switch?

      On-premise traditional solutions.

      How was the initial setup?

      Complex in the beginning, because the company I was migrating had some peculiarities.

      The latter move was totally stable as we did a cutoff migration and no garbage was imported. Some downtime was expected, but this was minimal.

      What about the implementation team?

      In-house, with support from a vendor team. Excellent support: 10 out of 10.

      What was our ROI?

      Not yet calculated since it was a major digital transformation and an ongoing project.

      What's my experience with pricing, setup cost, and licensing?

      Setup cost is low and Microsoft may help your project financially with services from a partner.

      Be sure to know your licensing or ask for advice. It's worth it. You may be led into something you don't need, if following Microsoft or a vendor.

      Which other solutions did I evaluate?

      No.

      What other advice do I have?

      Evaluate extensibly (the actual scenario), have a definitive vision of where you want to be in a near future, align the strategy with your management and expect that it may not be cheaper. A correct vision of a project of this kind cannot be focused on lowering costs but vision alignment, future scalability, speed on delivering services, and maintaining smaller IT crews focused on business needs.

      Please do some previous math regarding actual licensing versus a costs model. Extrapolate this to a five year plan to match current hardware lifespans.

      Disclosure: I am a real user, and this review is based on my own experience and opinions.
      it_user654165
      Director General with 11-50 employees
      Vendor
      Reduces Costs and Time To Market.

      What is most valuable?

      Web Apps and Functions. I had been able to reduce my costs a lot by using Functions, it allowed me to change the way we are developing solutions and reduce the time to market. Highly recommended.

      How has it helped my organization?

      Our development team uses Visual Studio to develop the solutions we work with. By using Functions, we can be more agile on the development and sometimes our developers just go online and update the code without even needing to have their computer with them.

      What needs improvement?

      Sometimes technical support is not fast as I needed on the first call, but once they are engaged, it is really easy to get an answer.

      For how long have I used the solution?

      Five years.

      What do I think about the stability of the solution?

      No.

      What do I think about the scalability of the solution?

      No, it works perfectly.

      How are customer service and technical support?

      Sometimes it is not fast as I needed on the first call, but once they are engaged, it is really easy to get an answer.

      Which solution did I use previously and why did I switch?

      No.

      How was the initial setup?

      Really straightforward. We didn’t need to learn anything different.

      What's my experience with pricing, setup cost, and licensing?

      Try to go for an Enterprise agreement if you have a contract with Microsoft. If you are running virtual machines, go for the CPP Microsoft Compute Pre-Purchase Plan.

      Which other solutions did I evaluate?

      Yes, AWS.

      What other advice do I have?

      Try to go for serverless solutions or Functions to increase availability and reduce costs.

      Disclosure: My company has a business relationship with this vendor other than being a customer: Development partner of solutions with Azure.
      it_user713808
      Azure Portfolio & Innovation Architect at a tech services company with 1,001-5,000 employees
      Consultant
      All classic storage configuration settings are now managed by the platform

      Pros and Cons

      • "Managed storage capabilities, which create a very simple way to create, copy, and replicate local or geo-replicate, it's very simple to assign workloads."

        How has it helped my organization?

        All development and pre-production scenarios are now under pay as you go, and are not open all the time, in that way we’re saving a lot of resources, money and we gain fast flexibility to grant new capabilities, computing power, and PoC scenarios.

        All of this without compromising production workloads and overall computing power, and any investment.

        What is most valuable?

        Software designed network capabilities, flexible computing, and managed storage. All of them together make a hybrid datacenter design more flexible for users and IT pros.

        SDN capabilities make anyone able to manage and organize a virtualized network in as many levels (VNets and subnets) as you want, securing aces as well. You can organize many VNets and easily interconnect them. You have several and easy ways to connect your virtual DC in Azure with your on-premise DC -- making it easy to have hybrid environments.

        Managed storage capabilities, which create a very simple way to create, copy, and replicate local or geo-replicate, it's very simple to assign workloads.

        All classic storage configuration settings are now managed by the platform. Huge granularity of compute availability makes it really easy to get appropriate sizing or to change the sizing of actual or future workloads.

        What needs improvement?

        One of the most important areas for improvement is the administrative part of management. It‘s difficult to manage, all aspects of Azure invoicing, and further pricing vs usage comparison and capacity to move under usage resources to a better positioned.

        In this matter, it’s necessary to use third party products or to use good self-management economic tools

        What do I think about the stability of the solution?

        Sometimes in the management portal, not in the workloads.

        What do I think about the scalability of the solution?

        Not at the current situation. Not all workloads are working in Azure.

        How are customer service and technical support?

        In our case, tech support was requested only two times, regarding Azure AD integration issues and special domain resolution issues. It was solved in a good way.

        I want to mention a special domain resolution case. It was not easy to solve and was difficult to find a escalation engineer in order to understand the “problem” to fix it.

        Which solution did I use previously and why did I switch?

        Because of better integration with AD and Azure AD, Office 365, and IaaS and PaaS Services.

        How was the initial setup?

        In general, it was straightforward, but was really well analyzed and planned in order to minimize possible problems and complexity.

        What's my experience with pricing, setup cost, and licensing?

        It’s a good idea to use BYOL if you have an EA. It’s a really noticeable cost reduction.

        It’s also interesting to analyze carefully all invoicing costs and workload usages -- to better fit costing scenarios.

        Which other solutions did I evaluate?

        Yes, we analyzed Amazon AWS and Oracle Cloud.

        What other advice do I have?

        Be careful, not all workloads are interesting or cost viability to move to Azure as is. In most cases, it will be necessary an important transformation to better fit the Azure ecosystem.

        Focus on a first project in order to test all aspects related with platform, providers, own tech capabilities, costs -- that will give you all the tools to decide future plans.

        Disclosure: My company has a business relationship with this vendor other than being a customer:
        ITCS user
        Cloud/System Administrator at a insurance company with 5,001-10,000 employees
        Vendor
        Saves a lot of time for our developers as it enables moving from the virtual machines to the Web Application-side

        What is most valuable?

        Virtual machines, Azure Web Applications, MS SQL DB, DNS, Azure Active Directory, etc. are some of the most valuable features.

        It is quite easy to learn to start working with them and they are composite enough to use them in many different scenarios.

        For example, you can create a web app with a few clicks from Visual Studio and publish it to Azure Web Apps. You also can integrate that Web App to CI/CD pipeline (https://www.visualstudio.com/en-us/docs/build/get-started/aspnet-4-ci-cd-azure-automatic), assign custom SSL certificates to it (https://docs.microsoft.com/en-us/azure/app-service-web/app-service-web-tutorial-custom-SSL), configure auto-scale (https://docs.microsoft.com/en-us/azure/app-service/app-service-environment-auto-scale), implement Azure AD authentication (https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-how-to-configure-active-directory-authentication?toc=%2fazure%2fapp-service%2ftoc.json), etc.

        How has it helped my organization?

        It enabled moving from the virtual machines to the Web Application-side, which in turn saved a lot of time for our developers.

        For how long have I used the solution?

        I have used this solution for about two years.

        What do I think about the stability of the solution?

        There were some stability issues. Some of them were user-specific (some applications were buggy), while some were global https://azure.microsoft.com/en-us/status/history/.

        What do I think about the scalability of the solution?

        There were no scalability issues. My work duties are not connected to this feature.

        How is customer service and technical support?

        On a scale from 1-10 (1=worst, 10=best). I would rate the technical support a seven out of 10. First level support is awful (it works only if you have a generic issue). But if you are lucky enough, you could get a real technical person, who could help you.

        How was the initial setup?

        The setup/installation depends from which service you start (for example, start to use DNS which is much easier vs the web applications).

        What's my experience with pricing, setup cost, and licensing?

        If your company is big enough and oriented to the cloud, then go for the Enterprise Agreement. If you want just to try it first, then use the trial version.

        What other advice do I have?

        Learn the fundamentals using the official documentation; for example, you have the Developer Guide and courses.

        Start using new services based on the scenarios described in the official documentation.

        Use communities for consulting, such as Stack Overflow, Reddit, and Slack. However, personally, I prefer the channel azured.slack.com.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Head of Infrastructure at Whistl
        User
        Some of the valuable features are VM Lab, SQL, and BI. I would like to see a better understanding about business and compute.

        What is most valuable?

        • VM Lab
        • SQL
        • BI

        How has it helped my organization?

        • Ran full power during working hours and when people are not working. The server should not be running, let them sleep. :)
        • Eight working hours x 5 = 40 hours
        • Twenty per cent of the server ran 24/7, but if there are ns users, then it should not run full force.

        What needs improvement?

        I would like to see a better understanding about business and compute. Basically, knowledge of your to burn your money efficiently.

        For how long have I used the solution?

        We have used this solution for over four years.

        What was my experience with deployment of the solution?

        There were issues with deployment.

        What do I think about the stability of the solution?

        There were issues with stability.

        What do I think about the scalability of the solution?

        There were issues with scalability.

        How are customer service and technical support?

        Customer Service:

        Customer service is very good. Microsoft Azure support can replace the second level support group. Be aware of it as they are very good at what they are doing.

        Technical Support:

        I would give technical support a rating of 10/10.

        Which solution did I use previously and why did I switch?

        We switched solutions due to cost.

        What was our ROI?

        It took less than three years for the ROI to be zero. Only experience is left. Over three years is better in-house for the ROI.

        What's my experience with pricing, setup cost, and licensing?

        These elements are brilliant. It is a no brainer.

        Which other solutions did I evaluate?

        We evaluated Lab.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user711615
        Head of Software Architecture at a tech services company with 51-200 employees
        Real User
        The App Service is simple to configure as compared to the other services.

        What is most valuable?

        App Service is the most valuable feature because it is very simple to configure compared to the other services.

        How has it helped my organization?

        Almost all of our services to the customer are run on Azure such as the video.metricarts.com.

        What needs improvement?

        Viewing the expenses for each service in the Azure Portal is difficult for novices to understand; this could improve.

        It's a great platform, but its visual interface is sometimes difficult to understand.

        For how long have I used the solution?

        I have used this solution for four years.

        What do I think about the stability of the solution?

        Azure is very stable with its services, I have never had problems with its stability.

        What do I think about the scalability of the solution?

        Most services allow you to scale easily, but you have to understand the necessary resources before scaling.

        How are customer service and technical support?

        Technical support is good, they usually respond on the same day that one asks them a question. I would rate them a 9 out of 10.

        Which solution did I use previously and why did I switch?

        I've always used Azure.

        How was the initial setup?

        The setup isn't complex; on the contrary, in less than 15 minutes I was already using Azure.

        What's my experience with pricing, setup cost, and licensing?

        Before using any of Azure's services, investigate their prices, and in some cases, use the free plans that are available.

        Which other solutions did I evaluate?

        I evaluated the Amazon AWS option, but the simplicity of creating services was better in Azure.

        What other advice do I have?

        Understand the scope of each service and its limitations, to avoid problems after execution.

        Disclosure: My company has a business relationship with this vendor other than being a customer: We are partners with Microsoft, so we offer the Azure Services to our customers.
        ITCS user
        Chief Executive Officer at HubStor
        Vendor
        We love the flexibility at which we can deploy and manage resources for our global clients.

        Pros and Cons

        • "Azure Active Directory: Has powerful security and auditing capabilities that we use to secure all our apps."
        • "The Azure Billing API could be so much better. It only provides billing metrics for a set duration."

        How has it helped my organization?

        We use Azure for DevOps, to host numerous applications that are critical to our business, and we run our software-as-a-service (SaaS) offering exclusively from Azure.

        What is most valuable?

        Azure Active Directory: Has powerful security and auditing capabilities that we use to secure all our apps.

        Azure File services – Comes in handy often when we need a staging place for content.

        Block Blob storage – Reliable and low cost for long-term storage of important information.

        Azure Regions – We leverage Azure regions around the world; we love the flexibility and ease at which we can deploy and manage resources for our global clients.

        What needs improvement?

        The Azure Billing API could be so much better. It only provides billing metrics for a set duration. For example, if you want to look at billing for a week /month/some other duration, then you have to make all the calls, store the data separately, and run your own computation to get the results that you need. Obviously, the billing system already has all of this data, so the API should just give you parameters to specify the billing duration and return the figures accordingly.

        What do I think about the stability of the solution?

        There were very minor issues related to billing. For example, sometimes under accounts with the Enterprise Agreements, we see that storage accounts are missing access to the activity costs.

        What do I think about the scalability of the solution?

        There were no scalability issues experience this far.

        How is customer service and technical support?

        The level of technical support is low.

        How was the initial setup?

        In general, there is a small learning curve in regards to the public cloud concepts and the Azure user portal, but nothing terrible.

        What's my experience with pricing, setup cost, and licensing?

        Be careful with Azure Cool storage accounts; if you are dealing with high object counts, then it can be more economical to use Hot storage because of the high storage access costs associated with Cool.

        Which other solutions did I evaluate?

        We considered the Amazon Web Services (AWS) and Google Cloud Platform (GCP), but decided to use Microsoft Azure for a few reasons.

        First, we believe that Microsoft will emerge as the preferred public cloud provider for the enterprise-class workloads and scenarios. Second, for our development goals, we could not spread ourselves thin by supporting multiple public cloud providers. Another reason is that most of our clients are using Office 365 and are Microsoft Azure clients themselves. Thus, it is more efficient for our solution and for the work that we perform, to be local to their existing applications/data. Finally, Microsoft Stack is something that we are already familiar with, and Azure being Microsoft, we felt it matched best with our knowledge and expertise.

        What other advice do I have?

        Make sure you understand the cloud’s pricing model. Depending on your scenario, i.e., in rare cases, it may be more economical to do things on-premises.

        Regarding some of the SaaS offerings in Azure, again, understand the pricing because it might make sense to leverage what they have as a service. In some cases, you may want to build it and manage it yourself.

        Also, pay attention to which Azure Region you spin up compute and storage because the pricing can vary between regions and not all the offerings are equal across the regions.

        Disclosure: My company has a business relationship with this vendor other than being a customer: HubStor is a Microsoft partner and a member of the Microsoft Enterprise Cloud Alliance.
        FO
        Solutions Architect at a tech services company with 5,001-10,000 employees
        Real User
        Some of the valuable features include monitoring, management, and data analytics.

        Pros and Cons

        • "Compute (App service, and virtual machine scale sets): The ability to manage Windows and Linus virtual machines."
        • "Specifically, I would like to see better Azure Data Analytics and monitoring RF."

        How has it helped my organization?

        By migrating our infrastructure to Azure, we have been more agile on several fronts as an organization, from been able to create proof of concepts on the fly, to being able to make changes quickly and repeatedly.

        What is most valuable?

        • Compute (App service, and virtual machine scale sets): The ability to manage Windows and Linus virtual machines.
        • Monitoring and Management: Ability to use log analytics to search, collect and visualize machine data from on-premises and cloud.
        • Data Analytics: Security and Identity (Azure Active Directory): This feature adds multi-factor authentication, self-service password reset and group-based application access.
        • Storage (Azure files): Still in preview at this stage, its allows the creating of SMB 2.1 shared folders on Azure storage service.
        • Azure Site Recovery: Allows the replication and recovery of VMs hosted on Azure, thereby extending business values of almost any size.
        • Networking (Azure ExpressRoute): This feature allows the connection of data center with Azure via private link that does not travel over the internet. Advantages include security, lower latency and higher reliability.

        What needs improvement?

        Every area of the product still needs to improve as it can always get better. Windows wasn't where it is today decades ago. There was a continuous improvement and evolutionary changes. Same is expected of Microsoft Azure.

        Specifically, I would like to see better Azure Data Analytics and monitoring RF.

        What do I think about the stability of the solution?

        Azure is very stable with no issues at all.

        What do I think about the scalability of the solution?

        The ability to scale easily is one of Microsoft Azure strength, one can start and scale up as traffic increase or as the business growth is required. So we didn't have issues with scalability.

        How are customer service and technical support?

        The technical support is great.

        Which solution did I use previously and why did I switch?

        We never used a different solution. We had a PoC with every vendor in the same competitive space and decided to go with the best.

        How was the initial setup?

        The initial setup was very straightforward, as we knew what is required from the technical perspective and as a business. Which we specified in an architectural design before hand.

        What's my experience with pricing, setup cost, and licensing?

        Make use of Azure pricing calculator and you will find out that Azure Is still more reasonable that the competition and do your research, when unclear speak with your MS support.

        Which other solutions did I evaluate?

        We evaluated some other competitive products and decided to go with Azure as its suit and meet our business requirement.

        What other advice do I have?

        You need to have a clear vision of your business expectation from the product. Define your business requirements, objectives and ensure that your cloud provider can support those requirements.

        Consider the cost, location, licensing, and technical capability to support and guide your organization.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Lead Engineer Solutions at a media company with 51-200 employees
        Vendor
        It has helped us to scale, no matter what feature you use and scalability is of the utmost importance to us

        What is most valuable?

        We have most of our servers running as VM's in Azure. While still a hybrid environment, we are gradually moving all our servers and applications to Azure.

        Azure Active Directory and Azure Active Directory Domain Services make it possible to have Azure VM's join a domain without the need for additional domain controllers. Users can join their CYOD to Azure Active Directory using their Azure credentials. With MDM in place, we also have the means to manage all devices, CYOD or BYOD.

        The Disaster Recovery service - Azure Site Recovery (ASR) has enabled us to have our production servers and applications replicated to Azure and ready to take over in case of a major failure or when a site goes down. In addition, ASR helps us save money on expensive hardware.

        How has it helped my organization?

        It has helped us to scale, no matter what Azure feature you use. Scalability is of the utmost importance.

        What needs improvement?

        Regarding improvements:

        • MDM: Mobile Device Management (MDM) and Intune features are slowly moving over to Azure. I think as an integrated feature, there will be better ways to manage mobile devices.
        • Azure backup: It is still hard to configure and to figure out which Azure backup component to use for backing up different data on various storages.

        For how long have I used the solution?

        We have been using the solution for four years.

        What do I think about the stability of the solution?

        We did not encounter any issues with stability.

        What do I think about the scalability of the solution?

        We did not encounter any issues with scalability.

        How is customer service and technical support?

        The technical support is skilled.

        How was the initial setup?

        Everything you do for the first time can be complex. Setting up a VM in Azure is straightforward, but setting up a Disaster Recovery plan or moving a complete infrastructure to Azure can be complex.

        Most of the complexity has to do with initial lack of experience. Diving into the material, study and hard work together with colleagues helps a lot.

        An experienced System Administrator with years of on-premise experience will be able to make the move to Azure.

        What's my experience with pricing, setup cost, and licensing?

        As a consultant, I leave this area to my sales colleagues. When in doubt, contact Microsoft. They will be able to clarify your questions.

        Which other solutions did I evaluate?

        We are a Microsoft Gold Partner, so we only use MS products.

        Disclosure: My company has a business relationship with this vendor other than being a customer: We are a Microsoft Gold Partner and help other businesses with a smooth migration to Azure Cloud.
        reviewer120534
        CTO at a consultancy with 51-200 employees
        Real User
        It provides hybrid IT management of the on-premise and cloud workloads.

        What is most valuable?

        Features such as Azure object storage, IaaS, Azure System Center, Azure SQL Database are valuable to me.

        How has it helped my organization?

        It provides:

        • Scalable workload with elastic cloud capabilities

        • Hybrid IT management of the on-premise and cloud workloads

        • Disaster recovery

        What needs improvement?

        Azure is growing its open-source offerings and I see this as a continuous area of improvement.

        For how long have I used the solution?

        I have used this solution for six years.

        What do I think about the stability of the solution?

        Early on, there were issues with the workload interruptions. Over the past 12 months, it has been a stable cloud service.

        What do I think about the scalability of the solution?

        There were no issues with its scalability.

        How are customer service and technical support?

        Technical support is one of Azure’s strengths, I would rate it above average to excellent.

        Which solution did I use previously and why did I switch?

        I previously used Savvis and Verizon’s IaaS Enterprise Cloud solutions.

        How was the initial setup?

        The initial setup was moderately complex. The use of PowerShell greatly increases the ability to fine-tune workloads, i.e., after the initial setup was completed.

        What's my experience with pricing, setup cost, and licensing?

        If you have the existing on-premise licenses, make sure to ask for their special licensing promotions so as to allow consolidation of licenses and subscriptions, in order to maximize the current investment and control TCO.

        Which other solutions did I evaluate?

        We looked at other solutions such as AWS, Google's Cloud Platform and Terremark/Verizon.

        What other advice do I have?

        Leverage their cloud credit program so as to allow your team to become acquainted with Azure, before turning on their cloud billing services.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user685371
        Principal Consultant at a tech services company with 1,001-5,000 employees
        Consultant
        A humongous amount of features are available. It is difficult to keep up with the continuous improvements that they do.

        What is most valuable?

        The availability of the humongous amount of features and solutions in Azure are most valuable to us.

        How has it helped my organization?

        The continuous improvement of Microsoft is amazing. The agility and speed at which Microsoft is doing all this is really amazing.

        What needs improvement?

        The improvements are more on the partner's part than on the product's part. It is difficult to keep up with the continuous improvements that Microsoft is doing.

        Issues were seen in the size and unclear configuration settings. If the bandwidth is limited, it can be an issue when migrating from on-prem to off-prem.

        For how long have I used the solution?

        We have implemented this for our customers since the very beginning.

        How are customer service and technical support?

        This depends on the support contract which you subscribe to. The free support is bad, but the paid versions have better support, i.e., more you pay, the better the support.

        Which solution did I use previously and why did I switch?

        The other solutions that we had used before were on-premise solutions. We saw a major shift of the resources towards Microsoft Azure.

        How was the initial setup?

        The setup was straightforward; with the help of TechNet, if there were any issues then they were easily solvable.

        What's my experience with pricing, setup cost, and licensing?

        In regards to the pricing and licensing, you need to be aware of what to do. If it fits in your current licensing contract, add it to that contract. If not, then depending on the company's size, ask the reseller with whom you are doing business (or ask me) for advice on this issue.

        Which other solutions did I evaluate?

        We did evaluate other solutions and, in some cases, we also advised for this product, as it is specific to certain workloads. AWS and Google are the other vendors that we looked at.

        What other advice do I have?

        Have a vendor agnostic partner to look at your environment and discuss the vision you have on this.

        Disclosure: My company has a business relationship with this vendor other than being a customer: We are partnes with Microsoft, Amazon and Google.
        ITCS user
        Senior Consultant | Architect at DHL
        Consultant
        The most valuable feature is using different types of servers on one environment.

        Pros and Cons

        • "The most valuable feature is the possibility of using Microsoft and non-Microsoft services on one environment."
        • "Monitoring options should be more sophisticated, as there are dashboards on which a end user is able to pin a lot of charts and a number of web parts, but for example, I would love to have some option like in Operational Management Suite."

        How has it helped my organization?

        This product helps companies to build their own infrastructure in the cloud without the need of any physical server. This is nice for new, small companies. For big companies, there are services like containers, docker, and infrastructure as a service for making their environment less heavy and saving some costs, using hybrid infrastructure and service concept.

        What is most valuable?

        The most valuable feature is the possibility of using Microsoft and non-Microsoft services on one environment. For example, Windows servers, Linux servers, backup solutions from Veeam, etc.

        There is no one special feature for me, as it makes sense as a complete package. I would mention container services as well, as this is the most modern concept of bimodal IT. For example, doing development in companies without the need of building development servers. You can just using some special parts as micro-services and putting them together like Lego pieces. This is the real benefit of cloud and Azure.

        What needs improvement?

        There should definitely be some improvement in the UI. It is lacking in terms of where the end user has to click on other icons and go back to the main menu to change some small settings and then go back through many options to the main request. This is something which Microsoft is constantly working on, but still it needs improvement.

        Monitoring options should be more sophisticated, as there are dashboards on which a end user is able to pin a lot of charts and a number of web parts, but for example, I would love to have some option like in Operational Management Suite. For instance, some queries and filters Maybe those are already there, but I have not been able to find them. I have to combine the Operational Management suite for Infrastructure, PowerBI for subscription and Application Insight for applications.

        Alternatively, I can create a PowerBI dashboard for everything, but this is not for everybody, as it is not always so easy.

        Managing of separate subscriptions if you have more than one and in separate domains, it is not so easy to manage. I can’t merge all of my subscriptions, as I am able to have only one enterprise subscription in one account.

        What do I think about the stability of the solution?

        There have been no stability issues. I have some problems related to subscription management, but this is because I have more than one subscription and there were some problems related to merging those into one management.

        What do I think about the scalability of the solution?

        There were no issues related to scalability at all.

        How is customer service and technical support?

        Technical support is provided by ticketing system in the portal, so you can create a ticket and a few hours after that, the support guys will contact you, and will try to call you during business hours and will help you immediately. I had really specific problems a few times that needed longer discussion with support, but standard tasks were quickly resolved.

        How was the initial setup?

        Nice and smooth since the beginning.

        What's my experience with pricing, setup cost, and licensing?

        Related to pricing and licensing, you have to be careful how you operate with the concept. You would like to set some automation rules for automated shutdown and start up your virtual machines so that they are not consumed costs, etc. So it is about the logic of using this solution.

        Which other solutions did I evaluate?

        We evaluated Google and Amazon.

        What other advice do I have?

        Prepare everything before implementation. Make your plan and calculate what should be the best solution or alternative for you.

        This solution is at the top of what you can get at the moment on the market. There are huge amounts of separate tools and scenarios from infrastructure monitoring and administering, to hybrid scenarios or quick service creation and maintenance. The main benefit is the possibility of creating quick services, which you can select from many Microsoft and third-party service providers as well.

        Disclosure: My company has a business relationship with this vendor other than being a customer: I am a Microsoft MVP, so I have some relationships with Microsoft from technical point of view.
        ITCS user
        IT & PMO Manager at a retailer with 1,001-5,000 employees
        Vendor
        Has integration with Active Directory and Office 365.

        What is most valuable?

        • Quick and easy deployment
        • Complete packaged solutions to deploy (Web Apps service)
        • Clear pricing
        • Low cost
        • Easy scaling
        • Cost effectiveness (stopping a VM when not in use)
        • High availability
        • Easy restore and recovery
        • Integration with Active Directory and Office 365. There are many benefits. For example, there is a special customized portal for all apps and services built in Azure AD (myapps.microsoft.com) with a seamless single sign-on experience for the users in AD or Office 365.

        How has it helped my organization?

        It improved our project completion time. A new server or solution requirements are now solved in hours instead of in weeks.

        What needs improvement?

        What we experienced after two years with an Azure suscription is that there is good knowledge in Microsoft Partners for Azure, but generally they are too specialized and couldn't cover everything, because they allways miss something related by example to networking, database, web apps, security, or integration on Azure. So you must contract more than one Microsoft Partner to have a successful project in Azure.

        For how long have I used the solution?

        I have been using Azure for two years.

        What do I think about the stability of the solution?

        We had no stability issues.

        What do I think about the scalability of the solution?

        It is very easy and quick to scale up or scale out. It has automatic scaling by CPU performance or other rules.

        How are customer service and technical support?

        Support is very good, fast, responsive, and effective.

        Which solution did I use previously and why did I switch?

        We used traditional on-premises virtual machines and switched to Azure for better cost and faster deployment.

        How was the initial setup?

        The only complexity was the initial setup of a site-to-site VPN to connect our LAN to Azure. The required Azure site-to-site VPN gateway is not fully supported on older firewalls, so you must be careful. For details please read: https://docs.microsoft.com/en-...

        What's my experience with pricing, setup cost, and licensing?

        Azure’s price is very competitive with traditional hosting (in-house or outsourced). Windows and database licenses are included in the solution price or you can bring your own license (BYOL). There are also several free or open source solutions in Azure.

        Which other solutions did I evaluate?

        We looked at AWS. In our case, Microsoft had very competitive pricing due to our Office 365 agreement.

        What other advice do I have?

        Test it for free with the advice of an experienced Microsoft partner.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user657774
        Server and StorageIO Group (Storage IO): Independent IT Advisor, Author, Blogger and Consultant with 1-10 employees
        Vendor
        This product has facilitated development, testing, and deployment.

        What is most valuable?

        • Virtual machines, both Windows and Linux based
        • Blob storage
        • Azure file storage
        • SQL server

        How has it helped my organization?

        This product has facilitated development, testing, rapid deployment, spot resource needs, with a remote off-site that compliments on-premises for the hybrid cloud.

        What needs improvement?

        The user interface is great if you like tablet, a.k.a., Windows type functionally. The PowerShell is robust. However, there is not much in between, although you can do a lot of customizing views, dashboards, and other things.

        I like the extensiveness of the new VS classic interface. At times, I still find the AWS dashboards simpler and more streamlined. Nevertheless, Azure is more elegant.

        For how long have I used the solution?

        I have used the product for several years.

        What do I think about the stability of the solution?

        I had no stability issues.

        What do I think about the scalability of the solution?

        There were no issues, as long as your credit card can also scale.

        How are customer service and technical support?

        I don't know about technical support, as I have not had to deal with them. But the various communities, forums, and resources are outstanding.

        Which solution did I use previously and why did I switch?

        We have deployed, and continue to use:

        • AWS EC2
        • EBS
        • S3 Glacier
        • Route 53
        • Lightsail
        • Google
        • Bluehost DPS
        • An onsite mix of Microsoft Hyper-V and VMware

        We are doing hybrid to address different needs.

        How was the initial setup?

        Having used AWS, VMware, as well as Windows, there was a little bit of a learning curve, just as there was for others.

        However, navigating the UI, shells, and figuring out what was where, without spending weeks in seminars, training, and watching videos, was actually pretty intuitive.

        If you are not used to working with AWS or others, or if you have some tools, Azure is actually pretty extensible and getting easier to working from Windows and vice versa.

        What's my experience with pricing, setup cost, and licensing?

        Do your homework, understand the type and sizes of resources, see if there are any extra fees, and find out what tools are needed.

        Check what level of performance, availability, capacity and economic (PACE) budget, as well as the services that are needed.

        Watch your costs and look for value versus the lowest cost.

        Which other solutions did I evaluate?

        We looked at AWS, Rackspace, Google, Microsoft, Bluehost, and VMware.

        What other advice do I have?

        Don't be scared, be prepared; do your homework.

        Look beyond lower cost and instead focus on value, enablement, ease of use, compatibility, resiliency, ability to scale with the stability of performance, capacity, and availability.

        Look at the extensiveness of services versus a simple check box.

        You also need to identify any concerns about the cloud, categorize them, and then discuss with others how to address them, or seek a workaround.

        If you cannot find somebody to chat with, drop me a note.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        IT Analyst at a government with 501-1,000 employees
        Vendor
        The Canvas flow interface brings a very nice functionality that improves self-learning.

        What is most valuable?

        The Canvas flow interface brings a very nice functionality that improves self-learning.

        How has it helped my organization?

        Selecting and applying a machine learning algorithm is not a click-and-run process. In this case, clustering our data has helped us to find patterns and trends that were not visible using conventional (internal) classification.

        What needs improvement?

        Stronger R integration in a circular fashion (Azure->R->Azure). Nowadays, it has an unidirectional bias.

        For how long have I used the solution?

        I've used Machine Learning Studio for the last six months.

        What was my experience with deployment of the solution?

        We've had no issues with the deployment.

        What do I think about the stability of the solution?

        By using a free account for cloud services can bring you "queued" status, but normally it runs smoothly. The quota defined for free account is enough for a variety of experiments and none of the features are blocked.

        What do I think about the scalability of the solution?

        We've had no issues with the scalability.

        How are customer service and technical support?

        Customer Service:

        As a cloud service, online chat and email service are available, but the community forums are the best place to solve issues.

        Technical Support:

        We have a support maintenance agreement for Windows/Office.

        Which solution did I use previously and why did I switch?

        There are a few competitors in place, and their number is increasing, but friendliness is the strong point of AzureML, comparing to Amazon AWS or BigML.

        How was the initial setup?

        It does not involve any setup, just having an Outlook or Microsoft account.

        What's my experience with pricing, setup cost, and licensing?

        Using a free account leads to offline projects. For online projects those issues must be evaluated according to client side company's environment.

        What other advice do I have?

        Machine learning is just one part of the whole data science cycle. Big data (streaming, video, etc.) or deep learning needs must be addressed with additional tools. But for prediction/classification this is a fantastic tool.

        Below is a PCA graph generated by K-means training model and its Qlik Sense panel. The idea is to segment unlabeled data based on numerical features in order to find common patterns that can be grouped, named clusters.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Technical Solutions Specialist at a tech services company with 1,001-5,000 employees
        MSP
        We have lower production times because we don't make any more hardware purchases or have software and vendor support contracts.

        Valuable Features:

        Easy and fast provisioning of Cloud Services including Web sites, Virtual Machines and Databases. Great for application development testing, staging and production slots. Better Support and community than the others. The onboarding services are great for new customers.

        Improvements to My Organization:

        No more hardware purchases, software and vendor support contracts = Lower times to production. Great storage capabilities.

        Room for Improvement:

        N/A

        Valuable Features:

        Easy and fast provisioning of Cloud Services including Web sites, Virtual Machines and Databases.

        Great for application development testing, staging and production slots.

        Better Support and community than the others.

        The onboarding services are great for new customers.

        Improvements to My Organization:

        No more hardware purchases, software and vendor support contracts = Lower times to production.

        Great storage capabilities.

        Room for Improvement:

        N/A

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user281949
        Software Developer at a tech services company with 51-200 employees
        Consultant
        There are limits to resources you can use in Azure, but it enables us to offload demand from our data center when additional hosting capacity is required without notice.

        What is most valuable?

        • Resource manager
        • API
        • Cloud storage
        • Virtual machine hosting

        How has it helped my organization?

        Our company plans to use Azure for training and for internal use. We use ADFS and the cloud storage mostly. We are also moving to host labs in Azure to offload demand from our datacenter, when additional hosting capacity is required without notice.

        What needs improvement?

        The system has some limitations on resource use, such as number of cores, max transactions, I/O, maximum number of VMs etc. These limits make some things very difficult, and could be improved. Also Azure is constantly undergoing changes, and the move to Azure API v2 offers a lot of improvement, but is still rather unfinished. Once it is complete it will be great, but in the meantime there is much room for improvement. Microsoft is constantly looking for ways to improve, so many of the improvements I can think of, they are already working on.

        For how long have I used the solution?

        A little over one year

        What was my experience with deployment of the solution?

        There were some issues with development and the resource limitations. We also ran into a problem with networking. Network changes over the API are synchronous, and only one change can occur at any given time, locking the subscriptions networking config until the last operation completed. This was resolved in the V2 API. Most of the problems we ran into with V1 are resolved and simplified in V2.

        What do I think about the stability of the solution?

        There have been few problems with stability. Only a couple times there were outages that only impacted our development environment. Notice of these service interruptions are generally given with plenty of time to prepare.

        What do I think about the scalability of the solution?

        There are limits as to how much resources you can use in Azure (as with all cloud platforms). This can be a problem if you plan to host hundreds of virtual machines with an hours’ notice. They have a process that requires a customer to go through tech support, and request/justify the need for a resource increase. If you need more than 20 networks, you will need to open a new subscription, and move resources to that subscription. They simply will not budge on some limit increases, and will on others. Currently opening up a new subscription is the solution to the resource limit problem. Azure is not really intended to handle our level of churn (creation and deletion of hundreds of VMs per minute), but we have been able to work with them and work around the problems we ran into.

        How are customer service and technical support?

        Customer Service:

        The level of customer service is generally very good. They are quick to respond and resolve the problem quickly. I have had a couple of issues where the technical support staff didn’t interpret the problem correctly and moved a severe issue down from a two hour response time to a 24 hour response time. I quickly responded and told them that it was impacting ongoing business, and they moved the ticket back up, and resolved it within the two hour timespan. All other interaction with customer service has been outstanding. After a co-worker posted on Twitter making a remark about the UI, we received a call from customer service. They setup a meeting with us to discuss what problems we ran into with the new UI, and they asked us for input on what their developers could do to improve our experience. They were taking a proactive approach to customer service, not waiting for a problem to come to them, but sought out those with problems and resolved them.

        Technical Support:

        I would rate their support at 8/10. A ten being perfect support without ever running into a problem, one being at a very poor level of customer support. I consider a rating of 8 to be a high rating. I should also add that the only support I have received has been for free, this only includes sales related issues and limit increases. I don’t have experience with their paid technical support which I would expect to be much better. They will charge for support even if you are a paying customer, so a rating of 8/10 reflects the support fees as well.

        Which solution did I use previously and why did I switch?

        In the past, we used our own solution. We have datacenters where we host our in house solutions. We didn’t completely switch to Azure, but did offload some things to free up hardware for other purposes. We also want to offload hosting to Azure in times of high demand.

        How was the initial setup?

        The setup for us is quite complex because we need to integrate it into a custom solution. The setup includes development time and changes to our core systems. This is not an easy task, but it's not at the fault of Azure or any other cloud service provider. The API has a learning curve, but anyone familiar with cloud services, and the use of a remote API should have no problem learning and implementing their system.

        What about the implementation team?

        We implemented our solution in house. Most Azure integration is done by me. Azure is simple enough that interfacing your system with Azure can be done by a single person.

        What was our ROI?

        As for time to ROI I am not sure, these details are determined by upper management. The main components for the return is the idea that we will not only be able to offer a new set of training material for Azure specific material as a new product, but we can also avoid purchasing expensive equipment to satisfy a short term need for hardware and resources. Long term needs are hosted in house on our equipment. Even with the high cost of Azure hosting, purchasing additional equipment for a temporary need can result in a large amount of unnecessary costs.

        What's my experience with pricing, setup cost, and licensing?

        Our setup costs are the costs of development time to integrate our system with Azure. Because the project is ongoing, this is difficult to determine. The cost for subscriptions in development is about $150 a month. Our MSDN subscription includes a credit which takes care of this cost. In production we forward the costs of events to the customer who is hosting the event. I don’t get the exact details on the day to day operation costs for internal subscriptions.

        Which other solutions did I evaluate?

        We evaluated the Google Cloud and AWS. All have a varying range of features and paradigms. Some appear to be cheaper, but when you add up the costs and read the fine print, you find that this may not be the case. We do plan to offer services on other platforms as well, but that is a different project. I have done research on all platforms to make sure the core system is compatible with all others. Azure is so far my favourite. The support is great, and the pricing is easy to work out. Other options had a lot of fine print and stipulations. Also the API is very easy to use, with plenty of references on MSDN.

        What other advice do I have?

        Overall, it is a great, solution but is a bit expensive, has some minor limitations, and working around these limits can be a challenge. I still gave Azure a high score because of the support, feature set, availability, and the tools and documentation provided for the API.

        My advice is to be very clear on the costs associated with what you plan to do. Most people will ask how much it costs to host their infrastructure in Azure, but that question is different for each scenario. Microsoft has an Azure price calculator that you can use to estimate the costs for your planned architecture. I would also recommend doing extensive research on the limits imposed by Microsoft. There is a page that details these limits, but there are some things that are not visible to the users. I would also recommend researching the hidden layers of the storage platform known as storage stamps, and how it can impact the copy speed of storage blobs.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        President and Founder with 51-200 employees
        Vendor
        It has long-term value when you consider cost-benefit analyses (with Microsoft's pricing calculator), but it's difficult to know exactly what the costs would be for services running on Azure.
        Originally posted at http://jimwilsonblog.com/?p=250 A recent article of an interview with the Red Hat CEO touts the benefits of private cloud implementation. See it here. This debate is usually short sited and doesn’t include all CAPEX & OPEX cost associated with the “Free OS” type of cloud operations. Also, the reusable components from more sophisticated partner communities afford both AWS & AZURE much greater long term valuations when responsible enterprise accounting methods are used to drive the cost-benefits analyses. The proper engineering of a cloud infrastructure which includes smart VMs well orchestrated by business-demand-level-driven auto scaling will always push the TCO/ROI argument to a public solution for large scale systems. Microsoft actually has a TCO tool…

        Originally posted at http://jimwilsonblog.com/?p=250

        A recent article of an interview with the Red Hat CEO touts the benefits of private cloud implementation. See it here.

        This debate is usually short sited and doesn’t include all CAPEX & OPEX cost associated with the “Free OS” type of cloud operations. Also, the reusable components from more sophisticated partner communities afford both AWS & AZURE much greater long term valuations when responsible enterprise accounting methods are used to drive the cost-benefits analyses. The proper engineering of a cloud infrastructure which includes smart VMs well orchestrated by business-demand-level-driven auto scaling will always push the TCO/ROI argument to a public solution for large scale systems.

        Microsoft actually has a TCO tool that they can use to estimate TCO of on-premises vs. Azure. There are many considerations when comparing costs of running an on-premises datacenter with full infrastructure, servers, cooling, power, etc. to a cloud-based service like Azure where you pay a cost based on the services consumed such as storage, compute and network egress. It can be difficult to know exactly what typical costs are for your datacenter and what the costs would be for services running in Azure. Microsoft has a pricing calculator available at http://azure.microsoft.com/en-us/pricing/calculator/ which can help assess costs for Azure services and a VM specific calculator at http://azure.microsoft.com/en-us/pricing/calculator/virtual-machines/.

        When running on-premises, you own the servers. They are available all the time which means you typically leave workloads running constantly even though they may actually only be needed during the work week. There is really no additional cost to leave them running (apart from power, cooling, etc.). In the cloud you pay based on consumption which means organizations go through a paradigm shift. Rather than leaving VMs and services running all the time, companies focus on running services when needed to optimize their public cloud spend. Some ways that can help optimize services running are:

        • Auto-scale – The ability to group multiple instances of a VM/service and instances are started and stopped based on various usage metrics such as CPU and queue depth. With PaaS instances can even be created/destroyed as required
        • Azure Automation – The ability to run PowerShell Workflows in Azure and templates are provided to start and stop services at certain times of day making it easy to stop services at the end of the day then start them again at the start of day
        • Local Automation – Use an on-premises solution such as PowerShell or System Center Orchestrator to connect to Azure via REST to stop/start services
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user242517
        Information Security Consultant at a tech services company with 51-200 employees
        Consultant
        The low cost is attractive, but stored procedures don't exist.
        When I first had the idea to build https://report-uri.io, the biggest thing that jumped out at me was that there could be potentially huge amounts of inbound data that would need to be logged, stored and queried in an efficient manner. Doing some quick research it's obvious that most of the time, sites shouldn't really be generating CSP or HPKP violation reports, or so I thought. Once you have setup and refined your policy, you'd expect not to be getting any reports at all unless there was a problem, but this turned out not to be the case. Even excluding things like malvertising, ad-injectors and advertisers serving up http adverts on https pages, which I see a steady stream of constantly, there were things like policy misconfiguration and a genuine XSS attack that could…

        When I first had the idea to build https://report-uri.io, the biggest thing that jumped out at me was that there could be potentially huge amounts of inbound data that would need to be logged, stored and queried in an efficient manner. Doing some quick research it's obvious that most of the time, sites shouldn't really be generating CSP or HPKP violation reports, or so I thought. Once you have setup and refined your policy, you'd expect not to be getting any reports at all unless there was a problem, but this turned out not to be the case. Even excluding things like malvertising, ad-injectors and advertisers serving up http adverts on https pages, which I see a steady stream of constantly, there were things like policy misconfiguration and a genuine XSS attack that could also cause reports to be generated and sent, potentially in huge numbers. Every browser that visits a page with a violation would send a report and there could, and regularly is, multiple violations on a single page. Multiplied by a few heavily trafficked sites and you could very quickly have hundreds if not thousands of reports flooding in every single minute.

        SQL Database

        My first thought, as is fairly typical when one thinks 'I need a database', was towards the time tested SQL Server (or MySQL depending on your preference). Having had plenty of interactions with SQL Server in the past, I knew that it was more than capable of handling the simple requirements of a site like this. That said, I was also aware that the requirements of running a high performance and highly available database can be quite demanding. I knew I was going to want someone else to take care of this for me so I started looking around at different cloud providers. It became apparent pretty quickly that SQL Server in the cloud was fairly pricey for the budget I had in mind for the site!

        SQL Azure was coming in at between £46 and £92 a month for a database capable of handling just a few thousand transactions a minute. Relatively cheap to some I have no doubt, but considering that all I'd looked at so far was the cost of the database, it wasn't a great start. Amazon also have their own offering of various flavours of RDBMS hosting but again, for a reasonable level of throughput and performance, I was looking at starting prices in the £40 - £50 a month region just to meet some basic needs.

        My largest concern with having a fixed throughput would be the easy ability for an attacker to saturate it given the nature of the site. If the database is only provisioned for 5,000 transactions per minute, the number of inbound reports, queries against the data and my session store (more on that in another blog) could be quite demanding and if the database becomes unavailable, the whole site stops working. I needed something without the throughput restrictions and a lot cheaper.

        NoSQL Database

        Having used MongoDB for one of my previous projects the next logical step was to look and see what what was available in terms of NoSQL databases. Again, the hosted solutions seemed to be fairly pricey and were constrained by the typical CPU/RAM tiers or just a given performance metric. With great database as a service offerings from both Amazon and Microsoft in the form of DynamoDB and Table Storage respectively, I fired up a small test on both to try them out. One of the first things that cropped up with DynamoDB was the provisioned throughput again. You aren't actually billed for the transactions you make, you're billed to have a maximum available throughput after which transactions will start to fail. If you don't use them, you're still paying for them, but as soon as you go over the limit, you're in trouble. This means that you'd need to provision a good portion above your average requirements to be able to handle bursts in traffic.

        Still, it's a little cheaper at ~£30 a month for the equivalent level of throughput as the SQL Server database mentioned above, but, we still have that maximum throughput limit. Microsoft do things a little differently with Table Storage in Azure and you're only billed for the transactions you actually use, there is no concept of provisioning for throughput. Each storage account can use as much or as little of the of the scalability limits as is required, and you never pay any more or less, just the per transaction cost.

        Microsoft Azure Table Storage

        Having been fairly impressed with my initial testing of Table Storage, I decided to throw some numbers on a piece of paper and see what the costs were going to come out at. Each storage account has a performance target of 20,000 transactions per second. Yes, 20,000 per second! That means that my application can perform up to this limit with 1 restriction. There is a 2,000 transaction per second target on a Partition, which is similar to the concept of a table in a traditional relational database. This shouldn't be a problem as long as the data is partitioned properly, a note for later on. Beyond this though, there aren't any other limitations. If you make 1 transaction in a second you pay the cost of 1 transaction, if you make 1,000 transactions in a second you pay the cost for 1,000 transactions. There are no penalties or additional costs as your throughput increases. The really staggering part is that the cost of a single transaction is £0.000000022, or, to make that a bit easier to get your head around, £0.022 per 1,000,000 transactions. Not only is the incredibly low cost really attractive here, the requirements of my application don't really fit very will with being fixed into a set throughput limit, and Table Storage does away with that.

        Beyond this, the only additional cost, like all other providers, is storage space for the database and outbound bandwidth, both of which are again billed based on exactly what you use without any limits or requirements to provision allowances. Data storage is billed at £0.0581/GB/month and the first 5GB of outbound bandwidth is free with a cost of £0.0532/GB after that.

        To sum all of this up with a really simple example, I drew up the following.

        To store 5Gb of data, with 5Gb of egress and to issue 10 million transactions against that data would cost: £0.5105 per month. That's less money that I lose down the side of the couch each month!

        Even if we get really silly with these numbers and put 100Gb in the database with 100Gb of egress and issue 200 million transactions against the data, we're still only talking £15.264 per month! That equates to an average of about 4,629 transactions per minute, a fraction of any other quote from other providers and proved attractive enough to tip the balance in favour of Azure Table Storage.

        What's the catch?

        Well, there isn't really a catch, as such, but Table Storage does have a very limited feature set when compared to something like SQL Server. That's no to say it's a bad thing, but it can be difficult not having some of the things that you're typically used to. You can read up much more on the difference between the two in Azure Table Storage and Windows Azure SQL Database - Compared and Contrasted. There are no foreign keys for example, joins and stored procedures don't exist either, but the biggest thing for me to get my head around was the lack of a row count feature. In Table Storage if you want to keep track of your row count, you have to keep track of it yourself. If you don't keep track of your row count the only way to obtain it is to query out your entire dataset and count the records in it. That's an incredibly slow, inefficient and arduous task! In coming blogs I'm going to be covering a lot of the problems that I hit whilst trying to adapt to using Table Storage and how I adapted my implementation of the service to get the best possible performance and scale out of it. Keeping track of the count of incoming reports, querying against potentially huge datasets efficiently, offloading my PHP session storage to Azure so that I could have truly ephemeral application servers behind my load balancers and much, much more.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        SrEngineer672
        Consultant at a tech services company with 51-200 employees
        Consultant
        Learning curve to get it up and running but it's scalable and flexible.

        What is most valuable?

        Scalability, affordability and the flexibility of the product.

        How has it helped my organization?

        • You can off-site required services to help mitigate risk
        • You can take advantage of the scalability to have short term high intensive processes be used by their services
        • You can totally take away the need for any server hardware in your organisation

        What needs improvement?

        Probably the 2 main areas where things could be improved are getting direct console access to VM's and its Azure backup solution to add backup types (eg System State).

        For how long have I used the solution?

        3 months

        What was my experience with deployment of the solution?

        We went with the volume license of credits and still find it difficult to activate those credits as there is a particular website you have to go to.

        What do I think about the stability of the solution?

        There has been documented issues with stability, however we did not experience it.

        What do I think about the scalability of the solution?

        No issues encountered.

        How are customer service and technical support?

        Customer Service:

        Good, I can shoot email questions and get responses in a good amount of time.

        Technical Support:

        I haven't had to raise a technical support for Azure though for Office 365 I have and I've found it excellent.

        Which solution did I use previously and why did I switch?

        We looked at AWS, a locally based cloud provider and a datacentre.

        How was the initial setup?

        It was a learning curve to get it up and running. If I had prior training I would have found it straight forward but the time lines for implementation meant I had to "dive in".

        What about the implementation team?

        In-house

        What was our ROI?

        We are able to provide services to clients that allows us get a good ROI once we have deployed Azure to them.

        What's my experience with pricing, setup cost, and licensing?

        • Setup cost with Azure is minimal for what they are supplying. Everything takes less than 10 minutes to deploy.
        • Day to Day costs is what you use, we can now review those costs and look at the new features (Automation) to make those costs even more efficient.

        Which other solutions did I evaluate?

        We looked at AWS, a locally based cloud provider and a datacentre.

        What other advice do I have?

        Get onboard with Microsoft and the Azure team and listen out to their partner training. They did a big Azure for IT Pros via their channel 9 msdn a few weeks ago. There is plenty of webinars and e-books which will teach you what you want to know.

        Disclosure: My company has a business relationship with this vendor other than being a customer: Microsoft Partner
        ITCS user
        CTO at a healthcare company with 51-200 employees
        Vendor
        The management console needs work but we would not be building the Healthcare IT application if it were not for Azure.

        What is most valuable?

        The fully integrated capabilities of a PaaS service.

        How has it helped my organization?

        Basically we would not be building the Healthcare IT application if it were not for Azure.

        What needs improvement?

        The management console needs work and the pricing calculator is truly user hostile.

        For how long have I used the solution?

        I have been using the solution 3 years.

        What was my experience with deployment of the solution?

        We have some issues with functional differences between Azure Active Directory and how Ad is implemented on a standalone server.

        What do I think about the stability of the solution?

        We have had a few outages with Visual Studio Online – though they have not been a major work impact.

        What do I think about the scalability of the solution?

        None so far.

        How are customer service and technical support?

        Customer Service: Mixed. Microsoft still has too many support queues and if you end up in the wrong one you can spend hours being bounced from one to the other. OTOH once you figure out how to get to the Business support queue – response times are fantastic for “business outage” issues.Technical Support: When in the right queue – the understanding is unparalleled.

        Which solution did I use previously and why did I switch?

        I have previously used AWS and Amazon Elastic Beanstalk. Azure is a PaaS whereas AWS is a server stack environment and thus AWS does not provide the OpEx cost reductions that Azure does. Elastic Beanstalk is a PaaS but it is not as fully developed as Azure.NET is.

        How was the initial setup?

        Very straightforward. In fact almost too much so. Its easy to try and overthink the setup and waste time looking for things you don’t need to be looking for.

        What about the implementation team?

        Combination of in-house and vendor. Vendor team was new to Azure.

        What was our ROI?

        Full ROI on the current project is still to be determined as we are not shipping yet. But I would estimate a 100% cost reduction over the traditional way of building a server based app.

        What's my experience with pricing, setup cost, and licensing?

        Our monthly dev costs for infrastucture are running $300-$500 for the initial work and we expect to have full OpEx costs of $1,000-$3,000/mo once we are launched.

        Which other solutions did I evaluate?

        AWS and Elastic Beanstalk.

        What other advice do I have?

        Have a team that understands .NET development and particularly someone who understands Active Directory very well
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Implementation is simple but anything to do with referencing other packages is simply frustrating

        What is most valuable?

        The ability to kick start a new web application or website and having them up and running in matter of minutes still amazes me.

        How has it helped my organization?

        Deploying new release for existing web applications has now become a matter of right clicking the name of the project and clicking ‘publish’, the same activity before might have been done in hours to days – depending on the complexity for the app.

        What needs improvement?

        Anything to do with referencing other packages is simply frustrating, this is mostly a problem with the Windows framework and not the hosting service, but it is still the most time consuming and irritating thing about using ASP.NET

        Which solution did I use previously and why did I switch?

        Yes, well back in the days we used to install physical servers, then we went to manually virtual servers, that to hosted virtual server, then to Amazon machines and now switched to Windows Azure.

        How was the initial setup?

        As simple as can be.

        What about the implementation team?

        We do all technical work in house and with Azure there was really no need for external assistance.

        What's my experience with pricing, setup cost, and licensing?

        When starting out I became member of the BizSpark program so the initial cost was 0 (FREE!), on customer’s projects the cost can go from $50 to $200 per month which is really cost effective for them.

        Which other solutions did I evaluate?

        Yes for every project we will compare Azure with Amazon, with virtual servers with a physical server. But in almost every case choosing Azure will be a no brainer.
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user7839
        Consultant at a tech vendor with 51-200 employees
        Vendor
        Java and Azure
        The Announcement Microsoft recently announced a partnership with Oracle which brings a number of Oracle technologies to the Windows Azure cloud. In short, they announced: Hyper-V (i.e. the virtualisation technology underpinning Azure) is now certified to run Oracle software. Virtual Machine images will be available with the Oracle Database, and Weblogic preconfigured. Properly licensed and supported Java on Azure. Items 1 & 2 I’m not that excited about, but it’s item 3 which is interesting. The current state of Java on Azure Microsoft have supported Java on Windows Azure since the start. There’s an SDK and tooling built into Eclipse. However, Microsoft haven’t been able to install Java, you’ve had to do that yourself. This has meant that the package you deploy to Azure…

        The Announcement

        Microsoft recently announced a partnership with Oracle which brings a number of Oracle technologies to the Windows Azure cloud.

        In short, they announced:

        • Hyper-V (i.e. the virtualisation technology underpinning Azure) is now certified to run Oracle software.
        • Virtual Machine images will be available with the Oracle Database, and Weblogic preconfigured.
        • Properly licensed and supported Java on Azure.

        Items 1 & 2 I’m not that excited about, but it’s item 3 which is interesting.

        The current state of Java on Azure

        Microsoft have supported Java on Windows Azure since the start. There’s an SDK and tooling built into Eclipse.

        However, Microsoft haven’t been able to install Java, you’ve had to do that yourself. This has meant that the package you deploy to Azure has had to contain the Java installer, any frameworks and web servers you need, as well as your application code. This makes the package too large to work with, in some cases too large to even upload. It certainly slows down application updates.

        Utilities such as AzureRunMe have helped bridge this gap, by splitting your package into separate zip files in blob storage which are only downloaded when required. However, ultimately you have to do more work to get Java running, and it takes longer to spin machines up.

        Having said that, Java applications work surprisingly well in Azure. Applications are coded against the JVM, rather than the operating system and make relatively few assumptions about the environment. They also tend to use ORMs (like Hibernate) giving you a simple database schema which is easy to port to Windows Azure SQL Database.

        I often find that Java applications are quicker to get running in Azure than similar .NET apps.

        The JVM

        When we talk about Java here, we’re really talking about the Java Virtual Machine (JVM), the runtime which hosts Java applications.

        Java is just one of the languages supported by the JVM, there has recently been a small explosion in language options on the JVM, including:

        • Clojure
        • Scala
        • Groovy
        • Jython
        • JRuby
        • Kotlin

        …to name just a few.

        What does this mean for the future?

        I haven’t got any special knowledge here, but there are few things Microsoft could do now:

        1. Provide a ‘Java’ role in Cloud Services. This would have Java and (optionally) Tomcat pre-installed, making deployment of Java applications faster and easier.
        2. Enable the JVM as a hosting option on Windows Azure Websites (alongside Python, .NET, PHP and Node.js).
        3. JVM support gives you Ruby (using JRuby). There’s already a Ruby SDK for Azure, and JRuby seems to be the fastest Ruby runtime (AFAIK). This is potentially true for this long list of languages too.
        4. This is probably good news for Hadoop on Azure.
        5. Enterprise Java developers should certainly take note. The capabilities of the Azure Service Bus, coupled with competent PaaS and IaaS offerings and the low-cost SQL Database, make Azure an attractive option.

        Hold On, Load balancing…

        Java web applications (in my experience) often hold large object graphs in memory, as state stored against each user session. This means that sticky sessions are required, and the Azure load balancer in Cloud Services is round-robin (sort of). Sticky sessions aren’t very cloud friendly, but it’s difficult to make legacy application stateless.

        Whilst there are ways to work around this, they all rely on ‘un-balancing’ the load balancer, and will frequently add network hops and overhead to the processing of each request. We need to be able to select a load balancing strategy on endpoints configured in Azure (i.e. round robin/sticky/performance based decision).

        As a side note, the load balancing strategy for Windows Azure Websites is sticky.

        Conclusion

        Better support for Java on the Microsoft cloud goes well beyond one language, and unlocks a number of possibilities, such as better support for Ruby and Hadoop for example.

        Load balancing is one pain point, but something we know they can fix in the platform.

        Azure remains an exciting place for everyone from the smallest startup, to the largest enterprise.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        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…

        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 claimsIdentity 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 ACSUnified identity for web apps – the easy way). And couple of blogs I would recommend you to follow in this direction:

        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.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Session Affinity and Windows Azure
        Everybody speaks about recently announced partnership between Microsoft and Oracle on the Enterprise Cloud. Java has been a first-class citizen for Windows Azure for a while and was available via tool like AzureRunMe even before that. Most of the customers I've worked with are using Apache Tomcat as a container for Java Web Applications. The biggest problem they face is that Apache Tomcat relies on Session Affinity. What is Session Affinity and why it is so important in Windows Azure? Let's rewind a little back to this post I've written. Take a look at the abstracted network diagram: So we have 2 (or more) servers that are responsible for handling Web Requests (Web Roles) and a Load Balancer (LB) in front of them. Developers has no control over the LB. And it uses one and only one…

        Everybody speaks about recently announced partnership between Microsoft and Oracle on the Enterprise Cloud. Java has been a first-class citizen for Windows Azure for a while and was available via tool like AzureRunMe even before that. Most of the customers I've worked with are using Apache Tomcat as a container for Java Web Applications. The biggest problem they face is that Apache Tomcat relies on Session Affinity.

        What is Session Affinity and why it is so important in Windows Azure? Let's rewind a little back to this post I've written. Take a look at the abstracted network diagram:

        So we have 2 (or more) servers that are responsible for handling Web Requests (Web Roles) and a Load Balancer (LB) in front of them. Developers has no control over the LB. And it uses one and only one load balancing algorithm – Round Robin. This means that requests are evenly distributed across all the servers behind the LB. Let's go through the following scenario:

        • I am web user X who opens the web application deployed in Azure.
        • The Load Balancer (LB) redirects my web request to Web Role Instance 0.
        • I submit a login form with user name and password. This is second request. It goes to Web Role Instance 1. This server now creates a session for me and knows who I am.
        • Next I click "my profile" link. The requests goes back to Web Role Instance 0. This server knows nothing about me and redirects me to the login page again! Or even worse – shows some error page.

        This is what will happen if there is no Session Affinity. Session Affinity means that if I hit Web Role Instance 0 first time, I will hit it every time after that. There is no Session Affinity provided by Azure! And in my personal opinion, Session Affinity does not fit well (does not fit at all) in the Cloud World. But sometimes we need it. And most of the time (if not all cases), it is when we run a non-.NET-code on Azure. For .NET there are things like Session State Providers, which make developer's life easier! So the issue remains mainly for non .net (Apache, Apache Tomcat, etc).

        So what to do when we want Session Affinity with .NET web servers? Use the SessionAffinity or SessionAffinity4 plugin. This basically is the same "product", but the first one is for use with Windows Server 2008 R2 (OS Family = 2) while the second one is for Windows Server 2012 (OS Family = 3).

        I will explain in a next post what is the architecture of these plugins and how exactly they work.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8577
        Director of Infrastructure at a tech consulting company with 51-200 employees
        Consultant
        When to use different Azure IaaS storage types…
        I’m been using Azure IaaS in a lot of enterprise deployments lately and I’ve noticed that there is some confusion regarding the different storage types available and provisioned for the virtual machines.  In many ways the capabilities associated with Azure storage is its greatest strength, but unless you configure it properly, you might be in for a surprise regarding your results.    The key message to understand is the difference between the operating system disk, the temporary disk, and data disks as they have different performance characteristics and will impact your systems in different ways when used correctly or incorrectly. The operating system disk: This disk is used for the operating system install and it will exhibit great read performance.   It is not however scalable for…

        I’m been using Azure IaaS in a lot of enterprise deployments lately and I’ve noticed that there is some confusion regarding the different storage types available and provisioned for the virtual machines.  In many ways the capabilities associated with Azure storage is its greatest strength, but unless you configure it properly, you might be in for a surprise regarding your results.    The key message to understand is the difference between the operating system disk, the temporary disk, and data disks as they have different performance characteristics and will impact your systems in different ways when used correctly or incorrectly.

        The operating system disk:

        This disk is used for the operating system install and it will exhibit great read performance.   It is not however scalable for write performance, so you shouldn’t use it for any write-centric or data-centric use.   It would NOT be the place where you would put your Microsoft SQL data, or your file server.

        The cache / temporary disk

        The cache disk is used for temporary data that you don’t want to keep.  It might seem like it is retained, but eventually you will find this disk refreshed when the system is booted back up, or undergoes a “repair”.  The cache disk is really only appropriate for storage of data you don’t want to keep.

        The data disk

        The data disk is where you should put any of your important information, especially databases and file stores.  The data here can be effectively scaled out through striping several data disks together.  A rule of thumb to use is that each data disk is worth approximately 500 IOPS.  If you stripe several together you’ll see that number increase.  At this point you might find it helpful to run some tests against the disks you’ve allocated to ensure you’ve added the appropriate IOPS for your capacity requirement.  I’ll note that the disk IOPS will increase as it is used, which is a component of the caching engine of the data disk type.  The cool thing about the data disk is that they are easy to provision and you can create stripes of a lot of disks (16) which will provide excellent scalability to your application.

        The key point?  Use the right disks for the right things.  If you don’t, then you’ll get a different performance experience than you’re expecting.  Now move some workloads to Azure and take advantage of the scalability!

        Want to learn more?  Check out the Azure internals session from TechEd!

        Azure Internals

        Also, check out Azure Storage Testing, which checked a standard Azure hard disk against a local SSD and a small server.  This performance can be improved by striping multiple Azure disks together.

        Disclosure: The company I work for is a Microsoft Partner

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8502
        Head of IT with 51-200 employees
        Vendor
        Simple Calculator for Comparing Windows Azure Blob Storage and Amazon S3 Pricing
        UPDATE – 06-DECEMBER-2012 I originally wrote this post in September 2012. Recently at their re:Invent event, Amazon announced reduction in their storage prices by 24-28% (http://aws.typepad.com/aws/2012/11/amazon-s3-price-reduction-december-1-2012.html). Yesterday Microsoft announced similar price reduction (http://blogs.msdn.com/b/windowsazure/archive/2012/12/05/announcing-reduced-pricing-for-windows-azure-storage.aspx). I have updated this blog post taking these price reductions into consideration and including them in my calculator below. Please note that both Amazon and Windows Azure have reduced only the storage charges. They have not changed the transaction charges or the bandwidth (Egress) charges. The new prices for Amazon became effective as of 01-December-2012 while that for…

        UPDATE – 06-DECEMBER-2012

        I originally wrote this post in September 2012. Recently at their re:Invent event, Amazon announced reduction in their storage prices by 24-28% (http://aws.typepad.com/aws/2012/11/amazon-s3-price-reduction-december-1-2012.html). Yesterday Microsoft announced similar price reduction (http://blogs.msdn.com/b/windowsazure/archive/2012/12/05/announcing-reduced-pricing-for-windows-azure-storage.aspx). I have updated this blog post taking these price reductions into consideration and including them in my calculator below. Please note that both Amazon and Windows Azure have reduced only the storage charges. They have not changed the transaction charges or the bandwidth (Egress) charges. The new prices for Amazon became effective as of 01-December-2012 while that for Windows Azure will become effective on 12-December-2012.


        Few months back, I wrote a few blog posts comparing Windows Azure Blob Storage and Amazon S3 services. You can read those blog posts here:

        http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/

        http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/

        http://gauravmantri.com/2012/05/13/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3summary/

        Since pricing for both of these services are changing quite frequently and depended upon a number of factors, it was not possible for me to pinpoint exactly which service is cheaper. I created a simple calculator where you can input appropriate values and compare the cost of both of these services to you.

        As mentioned in my other blog posts, the pricing depends on 3 factors in both services:

        1. Transaction costs i.e. cost incurred based on number of transactions performed against each service. These include various REST based operations performed against the two services.
        2. Storage costs i.e. cost incurred based on the amount of data stored in each service. These are usually calculated based on Giga bytes of data stored per month.
        3. Bandwidth costs i.e. cost incurred based on the data sent out of the data center in each service. Please note that at the time of writing of this blog, all incoming traffic is free in both service as well as the data transferred between an application and storage service in same data center is also free.

        In this simple calculator, I took only first two factors into consideration. Again when it comes to storage costs, both services offered a tiered pricing scheme, which I have not considered.

         

        A few comments:

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8505
        Consultant at a computer software company with 51-200 employees
        Vendor
        Understanding the Basics of Windows Azure Service Bus
        As we become more distributed in our everyday lives, we must change our approach and view of how we build software. Distributed environments call for distributed software solutions. According to Wikipedia, a distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The most important part of a distributed system is the ability to pass a unified set of messages. Windows Azure Service Bus allows developers to take advantage of a highly responsive and scalable message communication infrastructure through the use of their Relayed Messaging or Brokered Messaging solutions. -- Relay Messaging -- Relay Messaging provides the most basic messaging requirements for a distributed software…

        As we become more distributed in our everyday lives, we must change our approach and view of how we build software. Distributed environments call for distributed software solutions. According to Wikipedia, a distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The most important part of a distributed system is the ability to pass a unified set of messages. Windows Azure Service Bus allows developers to take advantage of a highly responsive and scalable message communication infrastructure through the use of their Relayed Messaging or Brokered Messaging solutions.

        -- Relay Messaging --

        Relay Messaging provides the most basic messaging requirements for a distributed software solution. This includes the following:

        - Traditional one-way Messaging
        - Request/Response Messaging
        - Peer to Peer Messaging
        - Event Distribution Messaging

        These capabilities allow developers to easily expose a secured service that resides on a private network to external clients without the need of making changes to your Firewall or corporate network infrastructure.

        Relay Messaging does not come without limitations. One of the greatest disadvantages of relay messaging is that it requires both the Producer (sender) and Consumer (receiver) to be online. If the receiver is down and unable to respond to a message, the sender will receive an exception and the message will not be able to process. Relay messaging not only creates a dependency on the receiver due to its remoting nature, this behavior also makes all responses subject to network latency. Relay Messaging is not suitable for HTTP-style communication therefore not recommended for occasionally connected clients.

        -- Brokered Messaging --

        Unlike Relay Messaging, Brokered Messaging allows asynchronous decoupled communication between the Producer and Consumer. The main components of the brokered messaging infrastructure that allows for asynchronous messaging are Queues, Topics, and Subscriptions.

        Queues

        Service bus queues provides the standard queuing theory of FIFO (First In First Out). Queues bring a durable and scalable messaging solution that creates a system that is resilient to failures. When messages are added to the queue, they remain there until some single agent has processed the message. Queues allow overloaded Consumers to be scaled out and continue to process at their own pace.

        Topics and Subscriptions

        In contrast to queues, Topics and Subscriptions permit one-to-many communication which enables support for the publish/subscribe pattern. This mechanism of messaging also allows Consumers to choose to receive discrete messages that they are interested in.

        -- Common Use Cases --

        When should you consider using Windows Azure Service Bus? What problems could Service Bus solve? There are countless scenarios where you may find benefits in your application having the ability to communicate with other application or processes. A few example may include an inventory transfer system or a factory monitoring system.

        Inventory Transfer

        In an effort to offer exceptional customer service, most retailers will allow their customers to have merchandise transferred to a store that is more conveniently located to their customers. Therefore, the store that has the merchandise must communicate to the store that will be receiving the product of this transaction. This includes information such as logistical information, customer information, and inventory information. To solve this problem using Windows Azure Service Bus, the retailer would setup relay messaging service for all retail locations that could receive a message describing the inventory transfer transaction. When the receiving store gets this notification they will use this information to allow the store to track the item and update their inventory.

        Factory Monitoring

        Windows Azure Service Bus could also be used to enable factory monitoring. Typically machines within a factory are constantly monitored to insure system health and safety. Accurate monitoring of these systems is a cost saver in the manufacturing industry because it allows factory workers to take a more proactive response to potential problems. By taking advantage of Brokered Messaging, the factory robots and machines can broadcast various KPI (Key Performance Indicator) data to the server to allow subscribed agents such as a monitoring software to respond to the broadcasted messages.

        -- Summary --

        In summary, Windows Azure Service Bus offers a highly responsive and scalable solution for distributed systems. For basic request/response or one-way messaging such as transferring inventory within a group of retail stores, Relay Messaging will meet most system requirements. If your requirements call for a more flexible system that will support asynchrony and multiple message consumers, it is better to take advantage of the Queues and Topics that are made available in Brokered Messaging.

        Disclosure: The company I work for is a Microsoft Partner - http://magenic.com/AboutMagenic

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8502
        Head of IT with 51-200 employees
        Vendor
        (Some) Best Practices for Building Windows Azure Cloud Applications
        In this blog post, I will talk about some of the best practices for building cloud applications. I started working on it as a presentation for a conference however that didn’t work out thus this blog post. Please note that these are some of the best practices I think one can follow while building cloud applications running in Windows Azure. There’re many-many more available out there. This blog post will be focused on building Stateless PaaS Cloud Services (you know that Web/Worker role thingie :) utilizing Windows Azure Storage (Blobs/Queues/Tables) and Windows Azure SQL Databases (SQL Azure). So let’s start! Things To Consider Before jumping into building cloud applications, there’re certain things one must take into consideration: Cloud infrastructure is shared. Cloud…

        In this blog post, I will talk about some of the best practices for building cloud applications. I started working on it as a presentation for a conference however that didn’t work out thus this blog post. Please note that these are some of the best practices I think one can follow while building cloud applications running in Windows Azure. There’re many-many more available out there. This blog post will be focused on building Stateless PaaS Cloud Services (you know that Web/Worker role thingie :) utilizing Windows Azure Storage (Blobs/Queues/Tables) and Windows Azure SQL Databases (SQL Azure).

        So let’s start!

        Things To Consider

        Before jumping into building cloud applications, there’re certain things one must take into consideration:

        • Cloud infrastructure is shared.
        • Cloud infrastructure is built on commodity hardware to achieve best bang-for-buck and it is generally assumed that eventually it will fail.
        • A typical cloud application consist of many sub-systemswhere:
          • Each sub-system is a shared system on its own e.g. Windows Azure Storage.
          • Each sub-system has its limits and thresholds.
        • Sometimes individual nodes fail in a datacenter and though very rarely, but sometimes entire datacenter fails.
        • You don’t get physical access to the datacenter.
        • Understanding latency is very important.

        With these things in mind, let’s talk about some of the best practices.

        Best Practices – Protection Against Hardware Issues

        These are some of the best practices to protect your application against hardware issues:

        • Deploy multiple instances of your application.
        • Scale out instead of scale up or in other words favor horizontal scaling over vertical scaling. It is generally recommended that you go with more smaller sized Virtual Machines (VM) instead of few larger sized VMs unless you have a specific need for larger sized VMs.
        • Don’t rely on VM’s local storage as it is transient and not fail-safe. Use persistent storage like Windows Azure Blob Storage instead.
        • Build decoupled applications to safeguard your application against hardware failures.

        Best Practices – Cloud Services Development

        Now let’s talk about some of the best practices for building cloud services:

        • It is important to understand what web role and worker role are and what benefit they offer. Choose wisely to distribute functionality between a web role and worker role.
        • Decouple your application logic between web role and worker role.
        • Build stateless applications. For state management, it is recommended that you make use of distributed cache.
        • Identify static assets in your application (e.g. images, CSS, and JavaScript files) and use blob storage for that instead of including them with your application package file.
        • Make proper use of service configuration / app.config / web.config files. While you can dynamically change the values in a service configuration file without redeploying, the same is not true with app.config or web.config file.
        • To achieve best value for money, ensure that your application is making proper use of all VM instances in which it is deployed.

        Best Practices – Windows Azure Storage/SQL Database

        Now let’s talk about some of the best practices for using Windows Azure Storage (Blobs, Tables and Queues) and SQL Database.

        Some General Recommendations

        Here’re some recommendations I could think of:

        • Blob/Table/SQL Database – Understand what they can do for you. For example, one might be tempted to save images in a SQL database whereas blob storage is the most ideal place for it. Likewise one could consider Table storage over SQL database if transaction/relational features are not required.
        • It is important to understand that these are shared resources with limits and thresholds which are not in your control i.e. you don’t get to set these limits and thresholds.
        • It is important to understand the scalability targets of each of the storage component and design your application to stay within those scalability targets.
        • Be prepared that you’ll encounter “transient errors” and have your application handle (and recover from) these transient errors.
          • It is recommended that your application uses retry logic to recover from these transient errors.
          • You can use TOPAZ or Storage Client Library’s built-in retry mechanism to handle transient errors. If you don’t know, TOPAZ is Microsoft’s Transient Fault Handling Application Block which is part of Enterprise Library 5.0 for Windows Azure. You can read more about TOPAZ here: http://entlib.codeplex.com/wikipage?title=EntLib5Azure.
        • For best performance, co-locate your application and storage. With storage accounts, the cloud service should be in the same affinity group while with WASD, the cloud service should be in the same datacenter for best performance.
        • From disaster recovery point of view, please enable geo-replication on your storage accounts.

        Best Practices – Windows Azure SQL Database (WASD)

        Here’re some recommendations I could think of as far as working with WASD:

        • It is important to understand (and mentioned above and will be mentioned many more times in this post :)) that it’s a shared resource. So expect your requests to get throttled or timed out.
        • It is important to understand that WASD != On Premise SQL Server. You may have to make some changes in your data access layer.
        • It is important to understand that you don’t get access to data/log files. You will have to rely on alternate mechanisms like “Copy Database” or “BACPAC” functionality for backup purposes.
        • Prepare your application to handle transient errors with WASD. Use TOPAZ for implementing retry logic in your application.
        • Co-locate your application and SQL Database in same data center for best performance.

        Best Practices – Windows Azure Storage (Blobs, Tables & Queues)

        Here’re some recommendations I could think of as far as working with Windows Azure Storage:

        • (Again :)) It is important to understand that it’s a shared resource. So expect your requests to get throttled or timed out.
        • Understand the scalability targets of Storage components and design your applications accordingly.
        • Prepare your application to handle transient errors with WASD. Use TOPAZ or Storage Client library’s Retry Policies for implementing retry logic in your application.
        • Co-locate your application and storage account in same affinity group (best option) or same data center (next best option) for best performance.
        • Table Storage does not support relationships so you may need to de-normalize the data.
        • Table Storage does not support secondary indexes so pay special attention to querying data as it may result in full table scan. Always ensure that you’re using PartitionKey or PartitionKey/RowKey in your query for best performance.
        • Table Storage has limited transaction support. For full transaction support, consider using Windows Azure SQL Database.
        • With Table Storage, pay very special attention to “PartitionKey” as this is how data in a table is organized and managed.

        Best Practices – Managing Latency

        Here’re some recommendations I could think of as far as managing latency is concerned:

        • Co-locate your application and data stores. For best performance, co-locate your cloud services and storage accounts in the same affinity group and co-locate your cloud services and SQL database in the same data center.
        • Make appropriate use of Windows Azure CDN.
        • Load balance your application using Windows Azure Traffic Manager when deploying a single application in different data centers.

        Some Recommended Reading

        Though you’ll find a lot of material online, a few books/blogs/sites I can recommend are:

        Cloud Architecture Patterns – Bill Wilder: http://shop.oreilly.com/product/0636920023777.do

        CALM (Cloud ALM) – Simon Munro: https://github.com/projectcalm/Azure-EN

        Windows Azure Storage Team Blog: http://blogs.msdn.com/b/windowsazurestorage/

        Patterns & Practices Windows Azure Guidance: http://wag.codeplex.com/

        Summary

        What I presented above are only a few of the best practices one could follow while building cloud services. On purpose I kept this blog post rather short. In fact one could write a blog post for each item. I hope you’ve found this information useful. I’m pretty sure that there’re more. Please do share them by providing comments. If I have made some mistakes in this post, please let me know and I will fix them ASAP. If you have any questions, feel free to ask them by providing comments.

        http://gauravmantri.com/2013/01/11/some-best-practices-for-building-windows-azure-cloud-applications/
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8436
        Architect at a tech vendor with 10,001+ employees
        Vendor
        Building Private Clouds with Windows Azure Pack (WAP)
        The model of elastic self-service deployment of VMs and applications that come with the Azure public cloud are changing the way IT departments allocate servers. Rather than tying servers to a specific application, IT departments now look to provide a pool of shared and dynamically self-allocated resources. There are compelling needs to run on premise a private version of the Azure Cloud that provides a lot of the multi-tenant services and benefits of the public Cloud. There are a lot of hosting partners that want to offer these Azure Cloud OS services to their customers. MS wants to give a consistent platform across hosting providers, private DCs, and Azure Cloud. The newly released Windows Azure Pack (WAP) decouples and brings a few of Azure OS features and a modified portal with common…

        The model of elastic self-service deployment of VMs and applications that come with the Azure public cloud are changing the way IT departments allocate servers. Rather than tying servers to a specific application, IT departments now look to provide a pool of shared and dynamically self-allocated resources. There are compelling needs to run on premise a private version of the Azure Cloud that provides a lot of the multi-tenant services and benefits of the public Cloud. There are a lot of hosting partners that want to offer these Azure Cloud OS services to their customers. MS wants to give a consistent platform across hosting providers, private DCs, and Azure Cloud. The newly released Windows Azure Pack (WAP) decouples and brings a few of Azure OS features and a modified portal with common code base into the private Cloud. It allows an enterprises to assume the role of service providers. It removes limitations to allow service providers to try and garner enterprise workloads.

        Using WAP, your IT department can install these new features. (This was previously Windows Azure Services for Windows Server released at start of 2013 with System Center). The Azure Pack is built on top of Windows Server 2012 and System Center R2/ with Service Provider Foundation. An IT Dept. that builds on w2012 and Sys Center can move to WAP anytime. One of WAP’s goals is to drive a consistent IT ops and developer experience. These technologies will evolve over time. Some features for Azure will be released first in WAP and rolled into Azure Cloud, and vice versa. WAP comes at no cost for datacenters running System Center and Windows Server 2012.

        Here are the services/workloads in the first release of Windows Azure Pack.
        1. Web sites
        • IIS currently is a server-centric platform but needs to evolve to be Cloud-first. IIS team rebuilt a new hosting PaaS with LB and scaling on-demand, dev0ps optimized. High-density supports 1000s of users on less of a cost than IIS with new capabilities. This is a good motivation to move into the on premise Cloud instead of running original IIS.
        • Multi-machine PaaS container with data and app tier and Load balancing. The platform can talk to many source code providers. As an IT Ops person you just deploy the Web PaaS and don’t have to mess with configuration issues.

        2. Service Bus
        • Been on premise awhile but had restrictions. Now is same messaging architecture as Azure Cloud service bus with no limitations.
        • Reliable messaging to build a cloud app that scales and communicates with other apps or across other boundaries. Messaging allows a way to pass and receive messages cross platform.
        • Supports publish and subscribe messaging patterns across a variety of access points on multiple platforms using standard protocols.

        3. Virtual Machines (IaaS)
        • Allows you to provision and manage VMs as a consumer and define your networking. Gallery of apps and fully self-service experience for provisioning VMs.
        • Consistent Azure VM API on premise and in Cloud so you can access VMs the same way regardless of where DC is that you are using.
        • Adds a new Azure feature called Virtual Machine Roles (like AMIs in AWS which are Amazon EC2 Virtual Machine Templates). A VM Role provides a way to scale VMs elastically and define metadata for its container and its parameters. They are VM templates the IT Department can define to make available for self-provisioning and can scale. Templates can be versioned and take initial container info such as instance count, VM size, and hard disk. Provide admin credentials and OS version, IP address type and allocation method for IP address. You can specify app specific settings as well.
        • Virtual Networks allows you to define VMs. Site to Site connectivity allows customers to connect their Cloud networks to their private networks. Good for hosters as well as the enterprise.

        4. Service Management Portal and API
        • Federate identities, Active Directory, and standards based.
        • Take same portal as in Azure, decouple it, and run it in the on premise DC and talks to the consistent Service Management API.

        Service Consumers
        Service consumers are those who consume apps (developers) and infrastructure (IT Ops) from Service Providers. They need self-service admin and want to acquire capacity upon demand within limits defined by IT Dept. or hosting provider (have an internal approval process to increase beyond limits). Need predictable costs and get up and running quickly.

        IT Depts. are now moving internally using a charge-back model (internal dollars vs. credit card) where IT Ops are charging back to different departments, almost like internal hosters. Today some internal IT requests lead internal folks to go out of band to get their job done via external hosting providers or acquire HW/SW without IT approval. WAP helps with simple and quick self-provisioning so no longer need to acquire hosting hardware outside IT budget.

        Additional Consumer Services
        • Integration with AD for the enterprise. ADFS and co-admins that are critical for the enterprise (Not for service providers).
        • Integration with SQL Server and MySQL. Support for SQL Server always on to make DBs highly available across cluster.
        • Co-Admins in WAP allows you now to associate an IT group with a co-admin account. This does not exists in Azure Cloud yet.
        • Console Connect – Today Remote desktop in Azure Cloud IaaS will only work on a public network (RDP for Windows VM or SSH for Linux). If you can’t get to it publicly you can’t remote into VM. Now, with WAP, you have a new feature called “Console Connect” through a secure channel that allows you to connect into a machine that is not running on a public network but in an enterprise on premise network.

        Service Providers
        Service Providers want to provide the most service at lowest cost to service consumers. Providers want to use hardware efficiency by automating everything. Also may desire to provide differentiate on SLAs and profiles for different environments – thus different SLAs per workload that is not present in public cloud.
        As the enterprise looks to move from capital to operational expenditures service providers see a window of opportunity to acquire enterprise business in the leased model of a private Cloud. WAP allows service providers to easily shift their offerings in this direction to attract this business from the enterprise.

        Provider Portal
        WAP supplies a Provider Portal for the cloud services that Service providers can offer their tenants (for enterprises or hosters). Can provides different SLAs to customers through portal and tailor how you offer those services. The Provider portal runs inside the enterprise firewall. It manages a different set of objects than the normal portal. You can manage a high-level PaaS Web hosting container that hosts multiple Web sites. You can connect to VM clouds and service bus deployments along with their health. There is an automation tab that integrates with run books in System Center and you can edit workbook jobs and schedule them, and tie them to events coming from System Center.

        Additional Provider Services
        In the Provider portal there is a Plans service that allows providers to decide what types of plans a customer can access. Providers pick services to make available and then define a set of constraints and quotas for each subscription for subscribers. Providers can pick the VM template and Gallery items available. Maps capabilities to backend infrastructure.
        • Public plan allows subscribers to try out a plan
        • Private plan allows you to manually permit a subscription.

        Additionally in the Provider Portal there is a User Accounts service allowing providers to manage users and add co-admins or suspend/delete a subscription.

        For additional information on the Windows Azure Pack go to http://www.microsoft.com/en-us/server-cloud/windows-azure-pack.aspx.

        Disclosure: The company I work for is a Microsoft Partner - http://www.aditi.com/about-us/alliance/

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8385
        Operations Expert at a tech services company with 5,001-10,000 employees
        MSP
        Bring Windows Azure to your datacenter
        How about having the Windows Azure experience locally on your datacentre? Microsoft is now enabling Hosting Service Providers to use Windows Server 2012 and System Center 2012 to deliver the same great experiences already found in Windows Azure. The first two of these finished services are high density website hosting and virtual machine provisioning and management. Hosting Service Providers enable these modules through the new Service Management API and optional portal. Create high scale WebSites – Out of the box automation lowers customer onboarding costs while metering and throttling of resources can help tailor customer offerings. Supports many frameworks including ASP.NET, Classic ASP, PHP and Node.js with full Git integration for Source Code Control. Download and install the…

        How about having the Windows Azure experience locally on your datacentre?

        Microsoft is now enabling Hosting Service Providers to use Windows Server 2012 and System Center 2012 to deliver the same great experiences already found in Windows Azure.

        The first two of these finished services are high density website hosting and virtual machine provisioning and management. Hosting Service Providers enable these modules through the new Service Management API and optional portal.

        Create high scale WebSites – Out of the box automation lowers customer onboarding costs while metering and throttling of resources can help tailor customer offerings. Supports many frameworks including ASP.NET, Classic ASP, PHP and Node.js with full Git integration for Source Code Control. Download and install the Web Sites service on machines dedicated for the Web Sites roles.

        Create Virtual Machines – Leverage the power of System Center and Windows Server to easily create an Infrastructure as a Service solution for customers to provision and manage VMs. Download the System Center 2012 SP1 and install and configure SPF per the deployment guide.

        Administer WebSites – Administer Web Sites and Virtual Machine services on Windows Server while also offering customers the same Windows 8-style self-service user experience as found on Windows Azure to provision and manage their Web Sites and Virtual Machines. Download the Service Management Portal and Service Management API Express bits to install the Admin and Tenant portals, and the Service Management API on one machine.Download the WebPI and click on the Products tab. Select Windows Azure to deploy the portals and the Service Management API on separate machines.

         

        More Info:http://www.microsoft.com/hosting/en/us/services.aspx

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8142
        CTO at a tech vendor with 10,001+ employees
        Vendor
        Early Thoughts on the Windows Azure Announcements
        Today’s release marks a significant milestone for Windows Azure. To date, Windows Azure has been a platform that allows developers to build and run applications across Microsoft’s global datacenters – the key emphasis has been on “applications”. Windows Azure has not been a platform for providing the underlying infrastructure for running your own virtual machine – this has been a key pain point for many customers looking to move to the cloud that Microsoft has heard loud and clear. Today’s announcement makes it clear that Windows Azure is more than just a Platform-as-a-Service provider. In my opinion, there are three significant components of today’s announcements worth delving into deeper: New Infrastructure-as-a-Service (IaaS) capabilities. Free (or low-cost) hosting with Windows…

        Today’s release marks a significant milestone for Windows Azure. To date, Windows Azure has been a platform that allows developers to build and run applications across Microsoft’s global datacenters – the key emphasis has been on “applications”. Windows Azure has not been a platform for providing the underlying infrastructure for running your own virtual machine – this has been a key pain point for many customers looking to move to the cloud that Microsoft has heard loud and clear. Today’s announcement makes it clear that Windows Azure is more than just a Platform-as-a-Service provider.

        In my opinion, there are three significant components of today’s announcements worth delving into deeper:

        • New Infrastructure-as-a-Service (IaaS) capabilities.
        • Free (or low-cost) hosting with Windows Azure Websites.
        • Enhanced cloud networking capabilities that support VPN connections between an on-premises corporate network and Windows Azure.

        Until now, Microsoft has never competed directly with Amazon EC2 with respects to IaaS nor with cloud platforms like Heroku. The new IaaS and Websites capabilities, combined with the ability to extend on-premises networks to the cloud, provides a number of ways that Windows Azure can now distinguish itself from other platforms and—in my opinion—will drive many new enterprises and a large number of developers to adopt Windows Azure.

        Infrastructure-as-a-Service

        Windows Azure has long had the concept of a “Virtual Machine role” but the fundamental problem has been the inability to persist changes made to the virtual machine image provided by the customer (i.e. the guest VM) during reboots or recycling. Supporting VM persistence in Windows Azure means that the guest VM will not lose these updates. This unlocks many workloads that previously did not work in Windows Azure – certainly products like SharePoint and SQL Server but also custom line-of business applications that previously were difficult to move to Windows Azure.

        In addition to VM persistence, Windows Azure will also give customers the ability to run Linux VMs. There’s been a lot of interest and speculation regarding Microsoft’s strategy moving forward with Linux and open source. I think Microsoft recognizes that their customers run more than just Windows in their enterprise, and this is an opportunity for Windows Azure to run as many workloads as possible. We’ve seen this shift in Microsoft in a number of different ways – support for Node.js and Java in Windows and Windows Azure, the creation of a new interoperability subsidiary, and many more. The cloud provides a way to make it easier to connect all of these different platforms and technologies, and my take is that Microsoft is trying to make Windows Azure the best and simplest place to run your applications regardless of the platform or technology.

        Windows Azure Websites

        It’s exciting to see Microsoft continue to evolve its strategy with Windows Azure to make it increasingly accessible to the breadth of developers out there.
        Windows Azure Websites is a hosting platform for web applications. It provides a number of different deployment and runtime options beyond the existing Web Role, including:

        • Target both Microsoft and non-Microsoft technologies already running in the environment, including SQL Azure, MySQL, PHP, Node.js, and (of course) .NET.
        • Deploy via Git, Web Deploy, FTP, or TFS.
        • Run in a high-density / multitenant VM for little-to-no cost or choose a dedicated deployment path.

        In addition to providing simpler and more consistent ways to deploy applications across different hosting platforms (e.g. Windows Azure, Windows Server, and hosting providers), Windows Azure Websites provides a way for Microsoft to bring thousands—perhaps even hundreds of thousands—of new developers to the platform with the offer of little-to-no cost hosting.

        Cloud Networking

        Windows Azure Virtual Networks allows a company to connect their cloud applications and solutions to their local network. This occurs at the networking layer through standard VPN devices. Coupled with IaaS support, this provides a ton of flexibility with respects to the kinds of workloads a customer moves to Windows Azure. Don’t want to move your sensitive SQL Server database? You don’t need to. Setup a VPN to your applications in Windows Azure and let them communicate directly back to your applications that live on-premises.

        There’s certainly a lot more to talk about – new services, portal, SDK, tools, and so much more! These thoughts are pretty early—in fact, I write this before today’s MEET Windows Azure event—and there’s so much more to talk about!

        Disclosure: The company I work for is partners with several vendors

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        CEO at a computer software company with 51-200 employees
        Vendor
        Top Reasons Developers Should Use Windows Azure Mobile Services
        With the recent release of Social Cloud, I asked the RedBit teamwhat are the top reasons for using Windows Azure Mobile Services and here is what we have. Easy Third Party Authentication Using the Identity feature of Azure Mobile Services allows developers to quick implement OAuth based authentication without having to worry about a lot of the plumbing code that is required when writing everything from scratch. You can easily incorporate authentication with Microsoft Account Facebook Twitter Google As a developer all you would have to do is Specify the keys in the portal Use the mobile SDK for iOS, Android, Windows 8, Windows Phone with application Authenticate via the SDK calling MobileServiceClient.LoginAsync() Here is what it would look like from the dashboard…

        With the recent release of Social Cloud, I asked the RedBit teamwhat are the top reasons for using Windows Azure Mobile Services and here is what we have.

        Easy Third Party Authentication

        Using the Identity feature of Azure Mobile Services allows developers to quick implement OAuth based authentication without having to worry about a lot of the plumbing code that is required when writing everything from scratch.

        You can easily incorporate authentication with

        1. Microsoft Account
        2. Facebook
        3. Twitter
        4. Google

        As a developer all you would have to do is

        1. Specify the keys in the portal
        2. Use the mobile SDK for iOS, Android, Windows 8, Windows Phone with application
        3. Authenticate via the SDK calling MobileServiceClient.LoginAsync()

        Here is what it would look like from the dashboard to setup keysidentity

         

        To learn more about this feature see Get Started With Authentication with Mobile Services

        Data Storage

        Most mobile apps written today need some form of data storage and usually the process is

        1. Figure out where to host it
        2. Figure out what type of database to use
        3. Write some REST APIs to access the data
        4. Make sure the APIs are secured

        Using the data feature of Azure Mobile Services developers can quickly create data tables, secure the data tables for read/write operations and also write custom scripts to run when an insert, update, delete or read operation is performed on the data.

        From the client side, using the SDK, you call the MobileServiceClient.GetTable<>() method and data will be retrieved.  If the data is secured via the portal settings, you will need to login using the client SDK before attempting to retrieve the data.

        For more information see Get Started with Data in Mobile Services.

        Client Libraries

        Azure Mobile Services comes with clients libraries for the main mobile platforms available in the market today which are

        1. iOS
        2. Android
        3. Windows Phone 8
        4. Windows 8 (C# & JavaScript)
        5. Xamarin for iOS & Android

        Leveraging this library and Azure Mobile Services on the back end, developers can focus on writing their app and not all the extra plumbing required for things such as authentication.

        Custom APIs

        The API feature is relatively new (as of Jun 24 2013) to Azure Mobile Services but allows developers to quick build APIs to the systems to be accessed by various client applications. You can quickly build out the APIs required by your app and just as quickly secure the APIs making sure only authenticated users have access to the APIs. Definitely something to use more often in the future!

        Push Notifications

        I’m a big fan of push notifications for mobile apps because it allows users to stay connected and engaged with their users. It’s also a great way to entice users to open your apps and this is especially useful if you are monetizing your apps with in app advertising.

        Using Azure mobile Services, developers can quickly get this up and running on the various platforms such as iOS, Android, Windows Phone 8 and Windows 8 and it’s as easy as setting a few keys in your Azure Mobile Services Dashboard

        push

        Definitely something every developer should look at to keep their users engaged with their app.

        For more information on how to get this running, see Get Started with Push Notifications in Mobile Services.

        Overall, I think Windows Azure Mobile services really helps accelerate the development cycle and get your product to market faster. It allows you to focus on building out your product on not have to worry about server infrastructure or plumbing code required for things like authentication.  When you need to scale, it’s just a few clicks and you are ready to handle your extra load from your users.

        So those are our top reasons for using Windows Azure Mobile Services. If you have used it, what are your top reasons? Ping me or the RedBit team on Twitter or leave a comment here.

        https://www.redbitdev.com/top-reasons-developers-should-use-windows-azure-mobile-services/
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        it_user8103
        Consultant at a tech services company with 51-200 employees
        Consultant
        5 Great Features in Windows Azure Backup
        Windows Azure Backup was recently released as a preview feature in Windows Azure’s already comprehensive suite. This is a great feature, even in its current preview state. However, due to its recent release, it can be difficult to find helpful descriptions of features already available. In this blog, we will highlight five great features of the Windows Azure Backup Preview and a short description of each one. 1.     Scheduled Backup In the world of backup and recovery, scheduled backups are not necessarily a new feature. New or old, it is definitely a convenient and required backup feature, especially for those who value data integrity. Windows Azure does a great job of providing users with a simple interface that can be configured on the Windows Azure Backup Agent snap in for…

        Windows Azure Backup was recently released as a preview feature in Windows Azure’s already comprehensive suite. This is a great feature, even in its current preview state. However, due to its recent release, it can be difficult to find helpful descriptions of features already available. In this blog, we will highlight five great features of the Windows Azure Backup Preview and a short description of each one.

        1.     Scheduled Backup

        In the world of backup and recovery, scheduled backups are not necessarily a new feature. New or old, it is definitely a convenient and required backup feature, especially for those who value data integrity.

        Windows Azure does a great job of providing users with a simple interface that can be configured on the Windows Azure Backup Agent snap in for Windows Server 2012. The snap in (see Figure 1) allows users to easily customize a specific backup schedule, frequency, and granularity for that specific server. After it is configured, the specified data for backup is locally compressed, encrypted, and sent to Azure for storage.

         Windows Azure

        Figure 1: Windows Azure Scheduling Backup Wizard

         2.     Granular Recovery

        While scheduled and convenient backups are helpful, they don’t mean anything unless an equally granular and robust recovery solution is in place. Windows Azure Backup has provided users with just that. The Windows Azure Backup Storage can be recovered from your local server or from the Azure Management Console. The user can decide what folder or file they would like to recover and specify exactly which backup version they wish to recover.

        In the event of a server failure, it is even possible to stand up a new instance of that server and recover your data from Windows Azure Recovery Services. Whether you’re missing a file, folder, or entire server, Windows Azure Recovery Services can meet all your needs.

        3.     Compressed and Encrypted Traffic

        If you are already familiar with Windows Azure, you are likely aware that any traffic sent to the Azure Cloud is compressed and encrypted on your local machine before being uploaded. This is not any different for Windows Azure Recovery Services. The reason it has been included as a great feature relates to how it affects your monthly bill. Windows Azure will only bill on your compressed backups. Since Azure charges by GB/month, this can save you a significant amount of money.

        4.     Competitive Pricing

        Windows Azure Backup is a Cloud service; therefore, it is a monthly subscription service just like the rest of Azure’s features. It is priced by the average GB/month. For example, if your compressed storage is 20 GB for the first half of the month and 40 GB for the second half of the month, you will pay the average or 30 GB. The current price is $0.50 per GB/month, but while the service is in preview, Microsoft is offering a 50% discount across the board. This proves to be an attractive and cost-effective option for customers who are considering moving their backup solution to the Cloud. Considering the initial capital saved by choosing a Cloud backup service, this can be extremely beneficial in many scenarios.

         Windows Azure 2

        Figure 2: Windows Azure Backup Pricing       

         5.     Backups Live in Cloud

        In my opinion, the final and most important feature is a simple one. All the backed up content lives in Microsoft’s Cloud. That means two things: (1) no paying for on-premise storage solutions and (2) no data loss during power outages or server failures. It is a simple feature, but if you consider the implications of loosing backed up data, it’s a very important one.

        In conclusion, Windows Azure Backup is a highly convenient and robust solution for anyone considering Cloud backup and recovery solutions. The five features described above are only a few of the features included in this fine-tuned machine that is called Windows Azure Backup.

        If you are interested in learning more about Windows Azure Backup, please feel free to contact Credera or visit our blog.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Active Directory in Azure – Step by Step
        Ever since Windows Azure Infrastructure Services were announced in preview I keep hearing questions "How to run Active Directory in Azure VM? And then join other computers to it". This article assumes that you already know how install and configure Active Directory Directory Services Role, Promote to Domain Controller, join computers to a Domain, Create and manage Azure Virtual Networks, Create and manage Azure Virtual Machines and add them to Virtual Network. Disclaimer: Use this solution at your own risk. What I describe here is purely my practical observation and is based on repeatable reproduction. Things might change in the future The foundation pillar for my setup is the following (totally mine!) statement: The first Virtual Machine you create into an empty Virtual Network in…

        Ever since Windows Azure Infrastructure Services were announced in preview I keep hearing questions "How to run Active Directory in Azure VM? And then join other computers to it". This article assumes that you already know how install and configure Active Directory Directory Services Role, Promote to Domain Controller, join computers to a Domain, Create and manage Azure Virtual Networks, Create and manage Azure Virtual Machines and add them to Virtual Network.

        Disclaimer: Use this solution at your own risk. What I describe here is purely my practical observation and is based on repeatable reproduction. Things might change in the future.

        The foundation pillar for my setup is the following (totally mine!) statement: The first Virtual Machine you create into an empty Virtual Network in Windows Azure will get the 4th IP Address in the sub-net range. That means, that if your sub-net address space is 192.168.0.0/28, the very first VM to boot into that network will get IP Address 192.168.0.4. The given VM will always get this IP Address across intentional reboots, accidental restarts, system healing (hardware failure and VM re-instantiating) etc., as long as there is no other VM booting while that first one is down.

        First, lets create the virtual network. Given the knowledge from my foundation pillar, I will create a virtual network with two separate addressing spaces! One addressing space would be 192.168.0.0/28. This will be the addressing space for my Active Directory and Domain Controller. Second one will be 172.16.0.0/22. Here I will add my client machines.

        Next is one of the the most important parts – assign DNS server for my Virtual Network. I will set the IP Address of my DNS server to 192.168.0.4! This is because I know (assume) the following:

        • The very first machine in a sub-network will always get the 4th IP address from the allocated pool;
        • I will place only my AD/DC/DNS server in my AD Designated network;

        Now divide the network into address spaces as described and define the subnets. I use the following network configuration which you can import directly (however please note that you must have already created the AffinityGroup referred in the network configuration! Otherwise network creation will fail):

        01 <NetworkConfiguration
        02   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        03   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        04   xmlns="http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration">
        05   <VirtualNetworkConfiguration>
        06     <Dns>
        07       <DnsServers>
        08         <DnsServer name="NS" IPAddress="192.168.0.4" />
        09       </DnsServers>
        10     </Dns>
        11     <VirtualNetworkSites>
        12       <VirtualNetworkSite name="My-AD-VNet" AffinityGroup="[Use Existing Affinity Group Name]">
        13         <AddressSpace>
        14           <AddressPrefix>192.168.0.0/29</AddressPrefix>
        15           <AddressPrefix>172.16.0.0/22</AddressPrefix>
        16         </AddressSpace>
        17         <Subnets>
        18           <Subnet name="ADDC">
        19             <AddressPrefix>192.168.0.0/29</AddressPrefix>
        20           </Subnet>
        21           <Subnet name="Clients">
        22             <AddressPrefix>172.16.0.0/22</AddressPrefix>
        23           </Subnet>
        24         </Subnets>
        25       </VirtualNetworkSite>
        26     </VirtualNetworkSites>
        27   </VirtualNetworkConfiguration>
        28 </NetworkConfiguration>

        Now create new VM from gallery – picking up your favorite OS Image. Assign it to sub-net ADDC. Wait to be provisioned. RDP to it. Add AD Directory Services server role. Configure AD. Add DNS server role (this will be required by the AD Role). Ignore the warning that DNS server requires fixed IP Address. Do not change network card settings! Configure everything, restart when asked. Promote computer to Domain Controller. Voilà! Now I have a fully operations AD DS + DC.


        Let's add some clients to it. Create a new VM from gallery. When prompted, add it to the Clients sub-net. When everything is ready and provisioned, log-in to the VM (RDP). Change the system settings – Join a domain. Enter your configured domain name. Enter domain administrator account when prompted. Restart when prompted. Voilà! Now my new VM is joined to my domain.


        Why it works? Because I have:



        • Defined DNS address for my Virtual Network to have IP Address of 192.168.0.4

        • Created dedicated Address Space for my AD/DC which is 192.168.0.0/29

        • Placed my AD/DC designated VM in its dedicated address space

        • Created dedicated Address Space for client VMs, which does not overlap with AD/DC designated Address Space

        • I put client VMs only in designated Address Space (sub-net) and never put them in the sub-net of AD/DC

        Of course you will get same result if with a single Address Space and two sub-nets. Being careful how you configure the DNS for the Virtual Network and which sub-net you put your AD and your Client VMs in.


        This scenario is validated, replayed, reproduced tens of times, and is being used in production environments in Windows Azure. However – use it at your own risk.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Bending the Windows Azure Media Services–H.264 Baseline profile
        Disclaimer: What I will describe here is not officially supported by Microsoft and by Windows Azure Media Services. This means that if task fails you cannot open support ticket, nor you can complain. I discovered these hidden feature by digging deeply into the platform. Use the code and task preset at your own risk and responsibility. And note that what works now, may not work tomorrow. Exploring the boundaries of Windows Azure Media Services (WAMS), and following questions on StackOverflow and respective MSDN Forums, it appears that WAMS has previously supported H.264 Baseline Profile and have had a task preset for Baseline Profile. But now it only has Main Profile and High Profile task presets. And because the official documentation says that Baseline Profile is supported output format…

        Disclaimer: What I will describe here is not officially supported by Microsoft and by Windows Azure Media Services. This means that if task fails you cannot open support ticket, nor you can complain. I discovered these hidden feature by digging deeply into the platform. Use the code and task preset at your own risk and responsibility. And note that what works now, may not work tomorrow.

        Exploring the boundaries of Windows Azure Media Services (WAMS), and following questions on StackOverflow and respective MSDN Forums, it appears that WAMS has previously supported H.264 Baseline Profile and have had a task preset for Baseline Profile. But now it only has Main Profile and High Profile task presets. And because the official documentation says that Baseline Profile is supported output format, I don’t see anything wrong in exploring how to achieve that.

        So what can we do, to encode a video into H.264 baseline profile if we really want? Well, use the following Task Preset at your own will (and risk :) ):

        01 <?xml version="1.0" encoding="utf-16"?>
        02 <!--Created with Expression Encoder version 4.0.4276.0-->
        03 <Preset
        04   Version="4.0">
        05   <Job />
        06   <MediaFile
        07     WindowsMediaProfileLanguage="en-US"
        08     VideoResizeMode="Letterbox">
        09     <OutputFormat>
        10       <MP4OutputFormat
        11         StreamCompatibility="Standard">
        12         <VideoProfile>
        13           <BaselineH264VideoProfile
        14             RDOptimizationMode="Speed"
        15             HadamardTransform="False"
        16             SubBlockMotionSearchMode="Speed"
        17             MultiReferenceMotionSearchMode="Speed"
        18             ReferenceBFrames="True"
        19             AdaptiveBFrames="True"
        20             SceneChangeDetector="True"
        21             FastIntraDecisions="False"
        22             FastInterDecisions="False"
        23             SubPixelMode="Quarter"
        24             SliceCount="0"
        25             KeyFrameDistance="00:00:05"
        26             InLoopFilter="True"
        27             MEPartitionLevel="EightByEight"
        28             ReferenceFrames="4"
        29             SearchRange="32"
        30             AutoFit="True"
        31             Force16Pixels="False"
        32             FrameRate="0"
        33             SeparateFilesPerStream="True"
        34             SmoothStreaming="False"
        35             NumberOfEncoderThreads="0">
        36             <Streams
        37               AutoSize="False"
        38               FreezeSort="False">
        39               <StreamInfo>
        40                 <Bitrate>
        41                   <ConstantBitrate
        42                     Bitrate="4000"
        43                     IsTwoPass="False"
        44                     BufferWindow="00:00:04" />
        45                 </Bitrate>
        46               </StreamInfo>
        47             </Streams>
        48           </BaselineH264VideoProfile>
        49         </VideoProfile>
        50         <AudioProfile>
        51           <AacAudioProfile
        52             Level="AacLC"
        53             Codec="AAC"
        54             Channels="2"
        55             BitsPerSample="16"
        56             SamplesPerSecond="44100">
        57             <Bitrate>
        58               <ConstantBitrate
        59                 Bitrate="160"
        60                 IsTwoPass="False"
        61                 BufferWindow="00:00:00" />
        62             </Bitrate>
        63           </AacAudioProfile>
        64         </AudioProfile>
        65       </MP4OutputFormat>
        66     </OutputFormat>
        67   </MediaFile>
        68 </Preset>

        You can quickly check whether it works for you by using the RunTask command line, part of the MediaServicesCommandLineTools project. The H264_BaselineProfile.xml is provided for reference in the etc folder of the project. You can tweak and Audio and Video bitrates at your will by editing the XML.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Bending the Azure Media Services – clip or trim your media files
        Disclaimer: What I will describe here is not officially supported by Microsoft and by Windows Azure Media Services. This means that if task fails you cannot open support ticket, nor you can complain. I discovered these hidden feature by digging deeply into the platform. Use the code and task preset at your own risk and responsibility. And note that what works now, may not work tomorrow. So, we have Windows Azure Media Services, which can transcode (convert from one video/audio format to another), package and deliver content. How about more advanced operations, such as clipping or trimming. I want, let’s say to cut off first 10 seconds of my video. And the last 5 seconds. Can I do it with Windows Azure Media Services ? Yes I can, today (5 April 2013). The easiest way to start with Media…

        Disclaimer: What I will describe here is not officially supported by Microsoft and by Windows Azure Media Services. This means that if task fails you cannot open support ticket, nor you can complain. I discovered these hidden feature by digging deeply into the platform. Use the code and task preset at your own risk and responsibility. And note that what works now, may not work tomorrow.

        So, we have Windows Azure Media Services, which can transcode (convert from one video/audio format to another), package and deliver content. How about more advanced operations, such as clipping or trimming. I want, let’s say to cut off first 10 seconds of my video. And the last 5 seconds. Can I do it with Windows Azure Media Services ? Yes I can, today (5 April 2013).

        The easiest way to start with Media Services is by using the MediaServicesCommandLineTools project from GitHub. It has very neat program – RunTask. It expects two parameters: partial (last N characters) Asset Id and path to task preset. It will then display a list of available Media Processors to execute the task with. You chose the Media Processor and you are done!

        So what task preset is for Clipping or Trimming? You will not find that type of task on the list of Task Presets for Azure Media Services. But you will find a couple of interesting task presets in the MediaServicesCommandLineTools project under the etc folder. Lets take look at the Clips.xml:

        01 <?xml version="1.0" encoding="utf-16"?>
        02 <!--Created with Expression Encoder version 4.0.4276.0-->
        03 <Preset
        04   Version="4.0">
        05   <Job />
        06   <MediaFile>
        07     <Sources>
        08       <Source
        09         AudioStreamIndex="0">
        10         <Clips>
        11           <Clip
        12             StartTime="00:00:04"
        13             EndTime="00:00:10" />
        14         </Clips>
        15       </Source>
        16     </Sources>
        17   </MediaFile>
        18 </Preset>

        It is a very simple XML file with two attribute values that are interesting for us. Namely StartTime and EndTime. These attributes define points in time where to start clipping and there to end it. With the given settings (StartTime: 00:00:04, EndTime: 00:00:10) the result media asset will be a video clip with length of 6 seconds which starts at the 4th second of the original clip and ends at the 10th second of the original.


        As can also see, I haven’t removed an important comment in the XML – "Created with Expression Encoder version 4.0.4276.0". Yes, I used Expression Encoder 4 Pro to create a custom job preset. You can try that too!

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        A journey with Windows Azure Media Services–Smooth Streaming, HLS
        Back in January Scott Gu announced the official release of Windows Azure Media Services. It is amazing platform that was out in the wild (as a CTP, or Community Technology Preview) for less then an year. Before it was RTW, I created a small project to demo out its functionality. The source code is public on GitHub and the live site is public on Azure Web Sites. I actually linked my GitHub repo with the Website on Azure so that every time I push to the Master branch, I got a new deployment on the WebSite. Pretty neat! At its current state Windows Azure Media Services  does support the VOD (or Video On Demand) scenario only. Meaning that you can upload your content (also known as ingest), convert it into various formats, and deliver to audience on demand. What you cannot currently do is…

        Back in January Scott Gu announced the official release of Windows Azure Media Services. It is amazing platform that was out in the wild (as a CTP, or Community Technology Preview) for less then an year. Before it was RTW, I created a small project to demo out its functionality. The source code is public on GitHub and the live site is public on Azure Web Sites. I actually linked my GitHub repo with the Website on Azure so that every time I push to the Master branch, I got a new deployment on the WebSite. Pretty neat!

        At its current state Windows Azure Media Services  does support the VOD (or Video On Demand) scenario only. Meaning that you can upload your content (also known as ingest), convert it into various formats, and deliver to audience on demand. What you cannot currently do is publish Live Streaming – i.e. from your Web Cam, or from your Studio.

        This blog post will provide no direct code samples. Rather then code samples, my aim is to outline the valid workflows for achieving different goals. For code samples you can take a look at the official getting started guide, my code with web project, or the MediaServicesCommandLineTools project on GitHub, which I also contribute to.

        With the current proposition from Azure Media Services you can encode your media assets into ISO-MP4 / H.264 (AVC) video with AAC-LC Audio, Smooth Streaming format to deliver greatest experience to your users, or even to Apple HTTP Live Streaming format (or just HLS). Everything from the comfort of your chair at home or in the office. Without the big overspend in expensive hardware. Getting the results however may be tricky sometime, and the platform does not help you with very detailed error messages (which I hope will change in the very near future).

        You can achieve different tasks (goals) in different ways sometime. Windows Azure Media Services currently works with 4 Media Processors:

        • Windows Azure Media Encryptor
        • Windows Azure Media Encoder
        • Windows Azure Media Packager
        • Storage Decryption

        When you want to complete some task you always provide a task preset and a media processor which will complete the given task. It is really important to pay attention to this detail, because giving a task preset to the wrong processor will end up in error and task failure.

        So, how to get (create/encode to) a Smooth Streaming Content?

        Given we have an MP4 video source - H.264 (AVC) Video Codec + AAC-LC Audio Codec. The best will be if we have multiple MP4 files representing same content but with different bitrates. Now we can use the Windows Azure Media Packager and the MP4 To Smooth Streams task preset.

        If we don’t have MP4 source, but we have any other supported import format (unfortunately MOV is not a supported format), we can use Windows Azure Media Encoder to transcode our media into either an MP4 (H.264) single file, or directly into Smooth Streaming Source. Here is a full list of a short-named task presets that can be used with Windows Azure Media Encoder. To directly create a Smooth Streaming asset, we can use any of the VC1 Smooth Streaming XXX task presets, or any of the H264 Smooth Streaming XXX task presets. That will generate a Smooth Streaming asset encoded with either VC-1 Video profile, or H.264(AVC) Video Codec.

        OK, how about Apple HTTP Live Streaming (or HLS)?

        Well, Apple HLS is similar to Smooth Streaming. However, there is a small detail, it only supports H.264 Video codec! The most standard way of creating Apple HLS asset is by using Windows Azure Media Packager and the XML task preset for “Convert Smooth Streams to Apple HTTP Live Streams”. Please take a note on the media processor – it is the Windows Azure Media Packager. This also will accept an input asset to be valid Smooth Streaming Asset encoded with H.264 (AVC) video codec! Do not forget that you could have created Smooth Streams with VC-1 Video Profile codec, which are totally valid and running Smooth Streams, but they will fail to convert to Apple HTTP Live Streams.

        Hm, can’t we get all-in-one?

        I mean, can’t I have a single media asset and deliver either Apple HTTP Live Streams or Smooth Streams, depending on my client? Sure we can. However this is CPU intensive process. It is called “dynamic packaging”. The source must be a multi-bitrate MP4 asset. This one consists of multiple MP4 files of same content with different bitrates. And it requires an on-demand streaming reserved units from Media Services. You can read more about dynamic packaging here.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        Secure your ASMX WebServices with SWT and Claims
        I was recently involved into interesting project, that was using the plain old ASMX web services. We wanted to migrate it to the Windows Azure Access Control Service and make use of Claims. The way we achieved that is to add additional Soap Header to the client requests that includes Simple Web Token (SWT). On the server side, we make a check for this specific header existence, then extract the token, perform some validation checks and inject a fresh new Claims Identity into the Service instance. One thing to look out for is that you have to think of a workaround, if your ASMX WebService is a Singleton object. My implementation works with non-singleton implementations. And I currently get my Simple Web Tokens from Windows Azure Access Control Service’s WRAP endpoint. I have configured a…

        I was recently involved into interesting project, that was using the plain old ASMX web services. We wanted to migrate it to the Windows Azure Access Control Service and make use of Claims.

        The way we achieved that is to add additional Soap Header to the client requests that includes Simple Web Token (SWT). On the server side, we make a check for this specific header existence, then extract the token, perform some validation checks and inject a fresh new Claims Identity into the Service instance. One thing to look out for is that you have to think of a workaround, if your ASMX WebService is a Singleton object. My implementation works with non-singleton implementations. And I currently get my Simple Web Tokens from Windows Azure Access Control Service’s WRAP endpoint. I have configured a “Password” service identities and I play with the RuleGroups to add additional claims, based on identity used. It is pretty flexible!

        The result is on … GitHub. I initially wanted to be on CodePlex, because I have other projects there and am more used to TFS style of working. But CodePlex’s TFS is down for quite some time, which was a good excuse to use GitHub. There is some explanations in the Readme.txt file, as well as comments in the code. So feel free to get the code, play around with it, ping me if it is not working for some reason, and so on!

        The project makes extensive use of SWT Implementation, done by the Two10Degrees’ team. But I added a compiled assembly reference for convenience.

        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        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: 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…
        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:
        • 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;
        Any Windows Azure Hosted service is considered a closed environment, meaning that no Internet traffic is routed to your service, unless you explicitly say so (we will later understand how)! And not only that, but any single instance is considered a closed environment. That means two things:
        1. The LB (Load Balancer) will not route any Internet traffic to the instances of your roles;
        2. The Windows Firewall of all your instances is set to default block everything (Effectively blocking even communication between different instances in a single deployment);
        Of course the hosted service can access the Internet.
        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;
        Behind the scenes: When you add a Web Role in your cloud project, the Visual Studio Tools for Windows Azure automatically create an HTTP endpoint on port 80 for your WebRole. It is named “Endpoint1” (but this might change in the future). Having in mind last of the constraints, if you add a second WebRole to your cloud project, a new Endpoint (Endpoint2) will be automatically created with protocol HTTP and port 8080! So be aware of that fact and do not let it surprise you Winking smile
        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 Winking smile). 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!
        Disclosure: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        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…

        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: I am a real user, and this review is based on my own experience and opinions.
        ITCS user
        Owner with 51-200 employees
        Vendor
        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…

        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.
        it_user6648
        Owner at a tech consulting company with 51-200 employees
        Consultant
        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.

        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: I am a real user, and this review is based on my own experience and opinions.
        it_user5157
        Sr System Engineer at a outsourcing company with 501-1,000 employees
        Vendor
        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: I am a real user, and this review is based on my own experience and opinions.
        it_user1194
        Head of Infrastructure at a tech services company with 501-1,000 employees
        Consultant
        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: I am a real user, and this review is based on my own experience and opinions.
        it_user1065
        Senior Manager of Data Center at a integrator with 51-200 employees
        Vendor
        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: I am a real user, and this review is based on my own experience and opinions.
        it_user1023
        Director of IT at a tech company with 51-200 employees
        Vendor
        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: I am a real user, and this review is based on my own experience and opinions.
        it_user936
        Engineer at a manufacturing company with 51-200 employees
        Vendor
        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: I am a real user, and this review is based on my own experience and opinions.