- Resource manager
- Cloud storage
- Virtual machine hosting
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.
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.
A little over one year
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.