It includes services for on-demand computing, storage (in No-SQL form and Blob form), message queueing, service bus, secure connection, identity management, horizontably-scalable relational database, big data computing (Hadoop), media encoding and streaming, content distribution network, reporting, business intelligence, a data marketplace.
The list goes on and on and is increasing rapidly. The gist is, you consume those services, Microsoft hosts and manages them (with high availability, geographic redundancy, etc.) and you pay for what you use.
So it doesn't have to do much with "Windows" OS in any sense, it's just a little confusing name for their SaaS.
I hate Google App Engine, I hope Azure is better
- It's speed is very unpredictable. Sometimes it'll be lighting fast, other times requests will hang for up to 8 seconds. We've used nodes in data centers across the world to measure this and have confirmed 100% that the delay is happening at App Engine and not our machines :)
- There's been several times where I have used Google Python libraries (for other Google products) and found them incompatible with the version of Python on app engine. I've had to write several dummy modules that replace googles ones that attempt to open a file on the disk in write mode (not allowed) when they're not even writing to the file! I cant be specific, under NDA. I have contributed the fixes back to the Google API team.
- The last 3 SDK upgrades has broken something in the core modules, or Django. App Engine SDK upgrades are now a running joke at my workplace
- It's insanely expensive for the CPU / DB power that you get
Part of Python [removed] core module on App Engine has a bug in it. Including this module will terminate your application with an exception.
Nobody notices it in development or testing, because the dev system was including the python distributions [removed] module, which is apparently different to the one on App Engine.
Site makes it through testing. push live and crunch, falls over.
Now we have a test app engine account, and have to deploy to that first, because we cant rely on the installation of Python on App Engine matching the installation of python on our dev machines, even though the versions are exactly the same
That's good practice. You test locally, then test on a real deployment environment, then deploy to production. You should also use app versions and test new ideas on new versions and always plan for rolling back.
As for the price, you should consider what would it cost running your application on IaaS, rented or co-lo hardware. As always, YMMV.