I've run into a few limitations with Azure that some might find interesting.

First, when I was building the app services for various websites and desktop applications, I had to decide which pricing tier to use for each. There are storage size and data transfer limits for the free and low-price tiers.

So I made two different service plans: a free one for web apps/sites that use very little resources and a higher-tier paid one for the more demanding services.

I didn't take into consideration how many concurrent websocket connections some apps might need because they're very light on resources, and I didn't see any mention anywhere of websocket limitations. There was just an on/off switch in the Azure portal.

Well, long story short, I found that there are some pretty stringent limitations for the lower-price service plans. The free one only allows 5 concurrent websocket connections. It will reject any connection attempts after that.

This is a little upsetting since those plans are already being metered for data transfer and CPU usage, and additional websockets doesn't inherently utilize more resources outside of those two items. So it's an obvious ploy to force people into higher price tiers.

Secondly, I found that the MySQL database required for WordPress costs as much as all my web apps combined. So I'll be switching to BlogEngine.NET soon, which allows you to store everything in JSON files. It'll take a while to migrate all the data, though. It's looking like I'll need to write a custom script for it.

After a few bumps and mishaps, I finally have everything moved to Azure.

I have to admit, it was difficult to let go of my domains at first. It felt kinda like I was losing part of my identity. However, in the end, content can exist anywhere, and Azure is already helping me simplify my life.

A new version of CleanShot is on the way with lots and lots of new features. I'll be posting about that soon. :)