5 ms·
I'm not a fan of most of their products, but I've heard good things about Azure, even for Linux hosting. Disclosure: I was at Microsoft for a couple of months
by hboon 13y ago
I'm not a fan of most of their products, but I've heard good things about Azure, even for Linux hosting.
Disclosure: I was at Microsoft for a couple of months due to an acquisition.
- zainny 13y agoI did actually try Azure about a year ago - I built a few WP7 apps (just to see what the platform was all about) and used Azure as the back-end for one. While I didn't have a bad experience, I also didn't find anything particularly compelling about it compared to the competition (though I admittedly used it in a very simple capacity).
- kryten 13y agoI find the actual process of deploying stuff to Azure very costly and terribly slow. If something doesn't work as intended on Azure, your turnaround time is quite high. This is far too common a problem as well as the development services they offer for local dev aren't 100% the same as the target environment.
- pm 13y agoNot to mention things like no automatic logging, no automatic HTTPS, 20-60 minute deploy times, unstable dev tools. I've dealt with the quirks of MVC4 which I grew accustomed to, but the other problems are making deploying a solution (something I'm trying to do now) very painful.
- JoshGlazebrook 13y agoI think you have to keep in mind Azure is not just a PaaS (which of course is still in beta as websites) It's has an IaaS equivalent of EC2.
- daliusd 13y agoBut PaaS is what sells it to me as developer who can show something cool to his management. Now you say that I should drop all PaaS benefits? Why not start with EC2 from the start?
- pm 13y agoIf I wanted to do IaaS I would have done so already, and most likely on EC2. However, I don't want to spend time doing devops, which is what makes PaaS so attractive in the first place. Actually the true PaaS is Cloud Services, which we've integrated along with the queues and tables. It's definitely not in beta - it's been out for quite some time. Most of my PaaS experience comes mostly with App Engine, which I liked as a platform (save for the odd quirk). When I first signed up with Azure, I was blown away by how good the interface looked compared to App Engine. However, over time as we've developed a non-trivial but not overly complex (internal) service, I found many things that I took for granted on App Engine had to be coded from the ground up on Azure (namely, logging and HTTPS). Who writes a cloud platform thinking that logging is not important, and instead gives me a dashboard with pretty graphs with information no-one ever uses? Instead you have a separate Diagnostics module which intermittently works and then the best you can do is store as a blob or to a table, which must then be read out with another tool. Which you need to write yourself, or Azure Storage Explorer, a bare-bones table reading tool on CodePlex. Then there's the crown jewel of the Azure clusterfuck, the Azure emulator. Deploys take anywhere between 20-60 minutes, after coming from App Engine's 30 second deploys (they used to take about 2 minutes to upload and begin serving - the difference it makes is astounding in being able to keep in flow). If there's no way around that time, then your local dev tools need to be rock fucking solid, because if you deploy, you want to make sure that you've got all those really dumb mistakes out the way. Instead, random roles intermittently stop logging, and the Azure emulator craps out with random shit after a few Build and Runs. So then it's time to restart. That's if VS2012 doesn't suddenly decide to hang when I right click on the Solution name to publish, after which it comes up with the most bizarre message "VS is currently completing an action - you'll have to wait" (paraphrased). It never does finish so Ctrl-Alt-Esc we go, kill the process... except the process still hangs around. So you restart and you end up with the same problem, except you now get another process of VS chewing through 180Mb of RAM for no reason. Okay, time to restart. I've had my issues with the App Engine tools running on OS X (mainly a really odd issue with pytz, and the single-threaded local webserver which was slow as shit until 1.7.6), but I've only had to restart my computer a handful of times in a year and a half of development. Two months in Windows and I'm restarting 5 times a day. After dealing with all that, the annoyance generated by every other minor issue becomes magnified by an order of magnitude, and you begin to ask yourself, who the fuck is designing this shit? ASP.NET MVC4 ApiController. At it's most basic settings it allows you to do REST. You get model binding on static objects, which is good for the most basic of validation. There are a billion tutorials on how to specify routing rules so you can specify "/api/objects/" or if you're being adventurous, "/api/objects/action", because that's all you'll ever need. There's a whole heap of magic, but it's the wrong fucking magic. Aaron Swartz showed the world how to do this in 2005 with web.py, it's not rocket science. To make development bearable, I have to add an insane amount of NuGet packages. You end up with masterpieces like AttributeRouting, for which I could never thank the author enough, but I shouldn't need to add a package to get sane routing. And model binding? The moment I move from static objects, it breaks. Looks like you need to write your own custom fucking model binder now (although I may not have to - still looking into it - Scott Hanselmann had a blog post about it somewhere). Oh, and sending something as JSON? Microsoft were at least smart enough to add in JSON.NET over their own overengineered mess, and yet somehow I still need reams of code just to be able to send an object as JSON. Just restrict the damn types to JSON types when you send it and be done with it! I don't want to type three pages to send serialised text when in Python all I have to do is json.dumps()! In all this mess, the reason we went with Azure is because we have to connect to Exchange and Microsoft were smart enough to put out the EWS (Exchange Web Services) Managed API, which is actually works as intended. It was either that or write a SOAP handler in Python for the 5 different Exchange schemas (which are similar but not exactly the same). In the end dealing with Azure and not having to maintain an internal Exchange library is worth the trouble (but not by much).
- varunkho 13y agoWith Azure websites (in preview) deployment of Mvc4 projects is in the matter of seconds (I have been using it for some months). If you fork a hosted service, yes deployment does take time if you use the official way. Afaik, you can also use the accelerator for web roles [1] to reduce this delay considerably [2]. [1]: http://blogs.msdn.com/b/windowsazure/archive/2011/07/12/now-available-windows-azure-accelerator-for-web-roles.aspx http://blogs.msdn.com/b/windowsazure/archive/2011/07/12/now-... [2]: accelerator is no longer being updated (afaik), chiefly because Azure websites are designed to handle the scenario it was developed for.
- pm 13y agoCheers. Unfortunately while we have a web role we have two worker roles running long-background processes to deal with Exchange streaming subscriptions (this isn't really a website, it's an API). This is more than I found when attempting to search for a solution to a quicker deploy, however.
- varunkho 13y agoYou can use accelerator for worker roles as well. Though it is not updated any more but it is open source.
- bergie 13y agoI don't know if that has improved, but at least a year ago their Linux servers were awfully unreliable. Shame, I really loved the idea of having Microsoft host my Linux systems ;-)
- obtino 13y ago> I'm not a fan of most of their products, but I've heard good things about Azure, even for Linux hosting. I have to agree on Azure. It's simply amazing for Linux VM hosting. I urge everyone to try it (whether you like MS or not). The UI for this service is simply amazing!
- riskable 13y agoYou actually use the UI? I've been using Rackspace and AWS for a while (years?) now and I can't say I've logged into their web interfaces much at all. Not in months, for sure. How's their API? Can I whip up (and down) servers and DNS from a Python script in a few minutes? That's what I do with AWS and Rackspace and franky, I won't use a cloud provider that doesn't give me that power. Automation is critical for any use of the cloud these days.
- jmcqk6 13y agoTheir UI is actually just a wrapper around their API, so while I haven't used Azure, I believe the answer to this is yes. Microsoft also publishes Node/javascript bindings to their API.