views:

195

answers:

5

I read plenty of articles about Azure and .NET Service Bus. I think I understand technical part but at the moment I'm missing the main point - some "cases studies" which should explain me what kind of projects should be moved to cloud. Suppose that I'm starting new project. How can I decide if my project fits to Azure platform?

What are common scenarios for Azure? Is it for world wide B2C applications, local B2C applications or also for "internal" B2B applications? How can I decide if global Azure is better than local infrastructure or local server hosting provider? What are pros and cons of moving to Azure when compared to other scenarios?

Also I'm interested in real experience. Did you deploy any real project to Azure? What is your experience? Is Azure already mature? Many technologies needs several (at least 3) realeases before they become usable. Is it the same with Azure?

My last concern is about security and trust. Do you trust Azure platform? I read article which demonstrated some hypothetical banking transactions over Azure with usage of SQL Azure service. Is it really something that can be securely done on Azure?

There is similar post but I didn't find answers there.

Edit:

I read this article today. It also explains some of my questions.

+1  A: 

For me, it's largely a cost-benefit analysis. Determine how much it will cost you to support all the infrastructure internally vs. Azure.

Security, obviously, is the biggest sticking point.

I can't speak to the security personally, as I have not had to be overly concerned with it, but here's a couple resources about azure security I found.

http://azuresecurity.codeplex.com

http://www.windowsecurity.com/articles/Microsoft-Azure-Security-Cloud.html

Andy_Vulhop
+4  A: 

One of the best scenarios for Azure is an application for which you are hoping for viral growth. Yes, it is almost foolish to have such expectations, but there are a certain class of applications -- notably "social" applications -- that are only going to live if they experience viral growth.

It is extremely difficult to plan your own infrastructure in such a way that it can adapt to that kind of growth without having extended outage periods or at least loyalty-threatening slowdowns. You're always going to be behind, reacting to resource shortages unless you are constantly over-supplying for expected need in which case you are potentially using your capital poorly and shortening your runway.

Azure addresses those problems neatly. You can add resources as you need them. You can respond to usage spikes on a few minutes notice, adding new resources through the Azure management console.

I think that there are many other scenarios for which Azure is an excellent match, but the one that I have described is a fairly compelling case, I think.

Adam Crossland
Just to add, a large sample which makes this more true is simply any sort of cyclical growth (viral included). If you have periods of the year where your workload is 4x the rest of the year, you'd have to buy resources to serve up that max load, knowing they would sit unused for large portions of the year. Azure gives you the ability to scale up/down fairly quickly to handle that load, maintaining "response time" while keeping costs down. If you expand that logic to all of your software, IT costs move from CapEx to OpEx ... which makes your business model a lot more flexible and secure
Taylor
@Taylor, thanks for the elaboration. It is exactly right. Paying for hardware is an absolutely enormous capital outlay for most businesses. When you add up the costs of co-lo, server blades, disk arrays, backup devices, backup media, service contracts of hardware and sysadmin time, you get a big old check. What worse is that while you have to be scaled up to handle your peak demand, a good portion of the actual run-time will be idle or nearly-so. What a waste. The pay-for-what-you-us and instant-scaling models offered by Azure or Google'd AppEngine become very compelling very quickly.
Adam Crossland
+1  A: 

After having sucked from the Azure kool aid firehose for the last couple of days, i can answer a couple of your points.

Is it secure?

Yes. It is physically secure, and data secure. The data you store on it is not placed on one drive, it is sprinkled across many. Your biggest risk is from a Disgruntled Ex-employee, which is toally within your control.

Is it right for you?

The answer to this is very open ended. Turn that question around - you are better off asking: Do you require any of the benefits of Azure? The answer to that question could be a lot clearer than its counterpart. There are some benefits to Azure (mainly based around scalability, maintainability, CDN style behaviour and removal of the cost of inhouse IT infrastructure), but it still has its limitations and is not suitable for all purposes and in some cases will give you no benefit at all.

slugster
+1  A: 

Azure's main benefit is that it enables you to scale an application or service up or down as your needs dictate without having to invest in long-term costs such as hardware or staff to maintain the hardware.

If you implement the same application using your own infrastructure, you have a lot of up front fixed costs regardless of how much value or utility you get out of the application. For example, you have to purchase, install, setup and maintain enough hardware to handle your anticipated peak load, even if your peak load occurs only once a day or once a month. What happens if you underestimate your peak load? Your service goes down until you can build out more hardware. What happens if you overestimate your peak load? You have unused hardware sitting around, which means you have spent money that isn't working for you.

Yes, Azure can be used for B2C scenarios such as running a consumer-facing web site or service. B2C needs to be able to scale up quickly (in minutes or hours) to handle word of mouth viral uptake. Can you bring new server hardware on premises and have it up and running in half an hour? Probably not.

Yes, Azure can be used for B2B scenarios, such as running a service API for inventory or supply chain management. You can set up your Azure app as a self-sufficient island, or using the Service Bus you can tie it into your corporate network for back-end services.

Azure is particularly useful for handling "surge" processing, such as performing data analysis on large data. Spool up several Azure instances to chew through the data, then shut them all down when you go home at the end of the day. You have the benefit of having hundreds or thousands of compute nodes available to you, but you only pay for them when you use them.

Though I am always pushing for them to do more, I must credit the Azure platform team for not taking on too much at one time. Azure offers a fairly small menu of services right now (blob storage, table storage, queue service), but those services work well and scale well.

Is Azure mature? In the sense that the services offered are fully baked and reliable, yes, I would say Azure is mature. If you mean mature in the sense that every possible service you could want is built-in, no, Azure is still growing the breadth of its service offerings.

There are application and service scenarios that Azure probably isn't the best fit for right now. I don't know if the Azure data centers are suitable for real time financial market processing, for example. Azure is suitable for near real time data analysis and certainly end-of-day risk analysis. Azure doesn't implement automatic deployment and scale-up to handle dynamic loads or peak shaving - you can manage this manually or write your own instance manager using the service API. Azure's pricing structure is geared for business applications - it's overkill and not cost effective for hosting a personal web site or blog unless such a site has fairly high traffic and is a revenue generator.

Disclosure: I am a Microsoft employee and I work on tools for Windows Azure.

dthorpe
+1  A: 

I have two consumer facing sites in beta running on Azure and been playing with it since earliest beta.

The Pros:

  • Azure is unbelievably stable. We did not have a single incident although we do process a lot of data.
  • The SDK is comprehensive, well documented and integrated into the IDE.
  • Uptime exceeding the SLA
  • Fast - Azure is really really fast on all aspects
  • Fits very well into the development workflow
  • Very committed employees and MVPs at Microsoft. You get help whenever you need it.
  • We save tremendously on Admin costs. E.g. we don't need one ;-)
  • Easy to scale. This was the biggest selling point. No need for initial capex, and once we get that CNN interview we will just spin up a couple more roles for a day or two.
  • Enterprise class, load balanced database system with SQL Azure. Porting code over is a matter of hours at most.

The Cons:

  • No distributed cache - there are memcached solutions out there but it feels like a hack
  • High initial costs when looking at it from a web app scenario (e.g. cost has an undue influence on your application architecture)
  • Very high cost of the NoSQL and queue solution. There is a transaction fee involved that makes some scenarios very complicated to achieve.
  • No realtime (or semi realtime) billing information through an API.
  • The management interface is a disgrace to Microsoft.
  • Microsoft is moving slowly / it takes them a long time to create new features.
  • You are very much locked in as Azure is a PaaS vs Amazon (IaaS) provider. This will change once the VM Roles are available.
  • It takes very long (~ 10 - 30 min) to spin up a new instance
  • Lack of Map/Reduce framework

Now some of the cons are serious right now but they should not prevent you from choosing the Azure platform as most of them will probably be resolved at PDC.

I think that Azure works for all the scenarios you mentioned, maybe with the exception that due to the lack of distributed caching you will run into troubles at the very high end of web apps for now.

I definitely trust Azure more than I trust my bank and a lot of incidents have proven me right over the last couple of years. In the end it comes down to that it is much easier for Microsoft to hire and concentrate top notch security people then non IT companies. And they have much more to loose.

Martin Wawrusch