Likelihood to Recommend They're great to embed logic and code in a medium-small, cloud-native application, but they can become quite limiting for complex, enterprise applications.
Read full review If you want to host a dedicated Windows server on the cloud, and especially if you want to integrate it with your on premises Active Directory, Azure Virtual Machines should be your first choice. Obviously running Linux on Azure works very well too, but given Azure's pricing is not the cheapest, there are other providers out there that have a better cost-benefit ratio for Linux. That said, hosting Windows on Azure can be affordable (especially when compared to other providers) if you plan your licensing, topology, and application architecture correctly.
Read full review Pros They natively integrate with many triggers from other Azure services, like Blob Storage or Event Grid, which is super handy when creating cloud-native applications on Azure (data wrangling pipelines, business process automation, data ingestion for IoT, ...) They natively support many common languages and frameworks, which makes them easily approachable by teams with a diverse background They are cheap solutions for low-usage or "seasonal" applications that exhibits a recurring usage/non-usage pattern (batch processing, montly reports, ...) Read full review When demand is high, we scale the service out, eg During a Football Match. When a football match is over and the throughput of data from OPTA drops we save by the service scaling back in. Our App Service Plans along with the Clean C# code are lightening fast giving a good customer experience. When producing the TV Guide information and a program overruns its scheduled time, a client can instantly be updated to the new programming schedule as our change is instant and its in the right place for all the clients to download and adjust their television guides appropriately to send out to the public giving a 24x7 uptime service that is precise and accurate and resilient to outages due to failover zones around the world. Read full review Cons My biggest complaint is that they promote a development model that tightly couples the infrastructure with the app logic. This can be fine in many scenarios, but it can take some time to build the right abstractions if you want to decouple you application from this deployment model. This is true at least using .NET functions. In some points, they "leak" their abstraction and - from what I understood - they're actually based on the App Service/Web App "WebJob SDK" infrastructure. This makes sense, since they also share some legacy behavior from their ancestor. For larger projects, their mixing of logic, code and infrastructure can become difficult to manage. In these situations, good App Services or brand new Container Apps could be a better fit. Read full review Pricing can be a concern if you are truly agnostic to which cloud you are building your particular solution in. The UI, as is the case with any cloud provider, is crowded. As with any cloud provider, it can be difficult to tune in exactly the right amount of servers for your needs...you might find yourself under/overprovisioning. Read full review Support Rating I give the overall support for Azure Virtual Machines a 7 because I think while the overall support do a great job there are still areas that it could improve on such as efficiency and speed. So while I only give it a 7 and it has some issues it is still better than the overall support at
Amazon EC2 Auto Scaling .
Read full review Alternatives Considered This is the most straightforward and easy-to-implement server less solution. App Service is great, but it's designed for websites, and it cannot scale automatically as easily as Azure Functions. Container Apps is a robust and scalable choice, but they need much more planning, development and general work to implement. Container Instances are the same as Container Apps, but they are extremely more limited in termos of capacity.
Kubernetes Service si the classic pod container on Azure, but it requires highly skilled professional, and there are not many scenario where it should be used, especially in smaller teams.
Read full review Azure Virtual Machines offer unparalleled flexibility in provisioning, managing and upgrading the VM instances, both manually and programmatically. AVM offer very granular billing options and enables high costs optimisations (while still being costly). The other competitors I mentioned are very good at offering dead-cheap VMs. But if you need anything beyond that, especially for big computing, you need Azure Virtual Machines.
Read full review Return on Investment They allowed me to create solutions with low TCO for the customer, which loves the result and the low price, that helped me create solutions for more clients in less time. You can save up to 100% of your compute bill, if you stay under a certain tenant conditions. Read full review It's so easy to spin up new instances, that it becomes also to easy to have to many of them to manage. Many teams end up with a couple of hundreds of VMs after a short while, making the whole thing very hard to maneuver Azure VMs are the next step for us to rely on Onprem servers, and leaving the management of the infrastructure to the professionals The ease of use, is also important when our main focus is to deliver new applications and integrations fast, and not having to worry about infrastructure. We sell bottles, not CPUs Read full review ScreenShots