Regarding Azure in general: Azure Websites is c*. Having used Heroku and App Engine for some time before, this feels like a joke. Deployments sometimes work, sometimes they don't. Have to deal with node gyps? Don't, just don't. If you ever are forced to use Azure Websites (free startup package? ;)), learn Ansible as soon as possible and convince your team to switch to VMs.
The VMs are okay, you can't do much wrong with. I don't really know where the complexity of Azure Websites comes from, maybe from the fact that it runs on Windows, but this cannot be the full explanation. I have seen people work with node on Windows (even without Ubuntu on Windows) and they were fine. For anyone interested, this is the Azure Websites backend: https://github.com/projectkudu/kudu
Disclaimer: my long adventure with it was years ago, maybe the service has changed 100% but I doubt it
You're much better off trying to find some backchannels via MVPs on Twitter or through blogs, or figure out the developers or evangelists that give talks on this kind of stuff and contact them directly.
No crashes, ever. Way more reliable than AWS ever was. (GCP is our failover.)
So it seems that your experience is, from my POV, the exception. Maybe there's something wrong with the way you guys have Azure set up?
The moment I removed the last ASM bits, my entire infrastructure became reliably versioned and deployable.
We missed having more instance types to choose from, but it was a nice experience.
FWIW we're running a simple, custom cluster made of Debian droplets set up using kubeadm.
Have you never used any other Microsoft software?
I mean it is the same software company that made Windows ME, Vista, 7, and 10, along with countless other chocolate covered turds.
I can tell you, as I'm sure anyone in my team can, that Azure is one big alpha-stage amalgation of half-baked services. I would never ever recommend Azure to literally any organization no matter the size. Seeing our customers struggle with it, us struggle with it, and even MS folks struggle with even the most basic tasks gets tiring really fast. We have so many workarounds in our software for inconsistency, unavailability, questionable security and general quirks in Azure that it's not even funny anymore.
There are some days where random parts of Azure completely fail, like customers not being able to view resources, role assignments or even their directory config.
An automatic integration test of one of our apps, which makes heavy use of Azure Resource Management APIs, just fails dozens of times a week not because we have a bug, but because state within Azure didn't propagate (RBAC changes, resource properties) within a timeout of more than 15 minutes!
Two weeks back, the same test managed to reproducibly produce a state within Azure that completely disabled the Azure Portal resource view. All "blades" in Azure just displayed "unable to access data". Only an ultra-specific sequence of UI interactions and API calls could restore Azure (while uncovering a lot of other issues).
That is the norm, not the exception. In 1.5 years worth of development, there has never been a single week without an Azure issue robbing us of hours of work just debugging their systems and writing workarounds.
/rant
On topic though, we've had good experiences with these k8s runtimes:
- GKE
- Rancher + DO
- IBM Cloud k8s (yeah, I know!)