At what point does a project require Azure?
I was diving further into the .NET framework over at Microsoft's site, and I came across Azure, a technology that I have really only briefly heard about prior to my investigation.
Now, that got me thinking, why exactly did Microsoft make Azure, and why is it useful over other technologies?
For example, for an ASP.NET web app (WF / MVC), when does it make sense to seek the help of 开发者_Python百科Azure?
A good analogy to the rescue.
A car engine is designed for peak capacity, not normal capacity. So for the 1% of the time when you really need to gun it an get passed that semi-truck, you can do it. Unfortunately this also means lower fuel efficiency overall, than if you didn't have to design for peak capacity.
Most people design their data centers the same way... for peak capacity. If you have 1 million hits on the first of the month, but the rest of the month you are idle, then you still have to have enough capacity to handle 1 million hits all the time. This means you have to maintain that much capacity, and pay for it.
That is a lot of extra work for 12 days out of the year when you really need the horsepower. However, if you used Azure, then you could scale automatically in response to demand. This would save you an enormous amount of time and money in upkeep and hardware.
Azure is just Microsoft cloud hosting. You can host ASP.NET Forms and MVC on it... and other stuffs too. It has some proprietary stuff like its blob storage... but its just hosting.
Do you want to move your application to the cloud? Then Azure may make sense, if you don't mind staying on MS technology.
But, there are issues to be aware of, such as limitations on working with the database there:
http://sql-dotnet.blogspot.com/2010/02/sql-azure-pros-and-cons.html
You may want to learn more about azure, and a nice intro is here:
http://www.zdnet.com/blog/microsoft/microsofts-azure-cloud-platform-a-guide-for-the-perplexed/1671
There are various articles about whether to move to cloud computing, but, if you want to be able to increase available resources quickly then it may be a useful option.
1) If your infrastructure needs for your application exceed a single server and need to scale out to multiple servers, especially if they have variable demand (ie: busy quarterly/monthly/daily cycles).
2) If you are not required by law to keep data in your own data center or within your own region
3) If you want to reduce money on Operating expenses by increasing in Capital expenses
4) If your IT department requires months lead-time to properly setup and configure servers and you need to have 20 machines running your now-super-popular-enterprise application on Monday
5) If your company wants to concentrate on building business applications and not maintain data centers.
6) If you're a startup and have great hopes for your application needing alot of scale-ability, but no money yet to buy the needed hardware and no time to adjust to sudden demand if you tomorrow you get "slashdotted".
There are dozens and dozens more reasons, but overall, cloud makes too much sense to ignore in most cases. You pay for only what you use from hardware and platform perspective and outsource the rest to Microsoft in Azure's case.
Architects and developers often forget that a cost of a server is not just the price we see on Dell.com's web-page, but a HEFTY ongoing annual cost associated with fixing/maintaining/backing up/installing/patching/etc the server as well as its infrastructure. Typical company needs a full-time admin to maintain 20-40 servers on top licensing costs, hardware costs (initial purchase + repairs), warranty costs, SLA agreements, off-site backups, etc. etc. etc... In Azure's case Microsoft has 3-4 people that support 32,000 servers. That's how these cloud providers can afford to do what they do while at the same time making it real-profitable for their clients to save money too.
精彩评论