Actually, Azure takes a very strong platform agnostic approach. Over a third of all VMs on Azure are running Linux https://fossbytes.com/33-microsoft-azure-vms-now-run-linux-o..., (supported distributions include Ubuntu, Redhat, Centos, SUSE, Debian, and CoreOS), the Azure Container Service supports 3 open-source orchestrators (Swarm, Kubernetes, DC/OS), and the Azure WebApp PaaS service has Linux support in preview.
Disclosure: I work at Microsoft; opinions are mine.
That's fair and you won't get any arguments from me there.
It's very easy to run singleton Linux machines on Azure and I have no complaints there.
I wasn't going to lay it out here, but, as I have your ear:
I'm not saying it's impossible to run a Linux stack on Azure - but man, trying to image the machine, for example, is a whole rigamarole.
Want to run your own image on a scale set? Oh, well, you
need to craft a JSON template, by hand. There also appear to be limits on how many machines can run off an image.
ARM is a a mess (IMHO), and it's impossible to select a custom image when creating a new resource group.
It also seems (correct me if I'm wrong) impossible to change the vnet of a VM/ARM after it's created. it also seems like ARMs can't share an existing vnet.
Again, please, correct me if I'm wrong. I'm new to this service.
I may have to drop to running a bootstrap script to get my stuff working, but the idea of doing a curl | sh is pretty horrific to me, from a security perspective.
Non MS-SQL as a service? Nope.
The new managed disks are very nice. I like those a lot :)
Disclosure: I work at Microsoft; opinions are mine.