2. Agenda
What is the cloud?
What is Windows Azure?
Windows Azure Usage Scenarios
Windows Azure Components
How should I get started?
Conclusion
Acknowledgment
Q&A
7. Costs of owning IT operations
Buying or leasing space
Purchasing servers
Utilities
Hiring network, server and security administrators
Overall maintenance of hardware, software and
human resources
9. Benefits
No need to buy, configure, and maintain:
Hardware and the OS
Network infrastructure
Routers, switches and load-balancers
Data centers, power and Internet connection
Failover
Pay for use
Share perishable computing
Improve time to market
Scale up or down as needed (tax-time, payroll
processing, etc.)
32. How should I get started?
Azure SDK & Windows Azure Tools for Visual Studio
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1565
8
Windows Azure Platform Training Kit
http://www.microsoft.com/download/en/details.aspx?id=8396
Developing Applications for Windows Azure
http://msdn.microsoft.com/en-us/library/gg433098.aspx
Introducing the Windows Azure Platform, David Chappell
http://go.microsoft.com/fwlink/?LinkId=158011
Windows Azure Blobs: Programming Blob Storage
http://go.microsoft.com/fwlink/?LinkId=153400
Windows Azure Tables: Programming Table Storage
http://go.microsoft.com/fwlink/?LinkId=153401
Windows Azure Queues: Programming Queue Storage
http://go.microsoft.com/fwlink/?LinkId=153402
35. Acknowledgment / References
This is where I got most of the content from
David Chappell
MSDN – Windows Azure Platform
http://www.davidchappell.com/
http://msdn.microsoft.com/enus/library/windowsazure/dd163896.aspx
Windows Azure Jump Start
http://channel9.msdn.com/posts/Windows-Azure-Jump-Start01-Windows-Azure-Overview
Book definition is … think about cloud as a set of connected servers on which developers can install and run services; store and retrieve data.Very simple definition; another place to run your code!
Let’s talk about an Internet application that you have developed.Estimated demandLoad varies – wastage results when demand is lower than capacity; on the other hand, you would have unhappy customers if the capacity is lower than the demand!What to do?
How to keep the capacity in sync with the demand? The capacity should go up as soon as the demand goes up and the capacity should fall with the fall in demand. It would also be great to just pay for what I am using. How could this be accomplished in traditional scenarios?Very hard to do; may I say not possible to achieve with traditional approaches to computing. It takes time to buy, configure, install and bring online new servers; similarly you can’t cut a server in half and return that half to Dell or HP.
It is a non-trivial problem! You don’t get to realize economies-of-scale and your resources aren’t utilized in a cost effective way. This problem is similar to Electrification phenomenon in early 20th century. Back then companies used to own their own electric generation plants or devices; it was very costly for them to generate their own electricity mainly because:Generating electricity was not the core competency of those companiesThe companies were not realizing economies-of-scale because of the extent of their operations.Generating electricity was getting difficult because of changing technology and changing regulationsGradually utilities companies took over the power generation business because that is what they did best. They were able to generate cheaperelectricity for their customers because they were able to realize economies-of-scale and by reducing waste from the system. The following graphshows how the supply of privately generated electricity dropped with time.Cloud computing is similar; let the experts do what they do best and we should focus on our core competencies which is running our business.
IaaS - the unit you are gaining is a computer/server. Therefore IaaS is essentially a "physical server box". An example of this would be going to RackSpace or SoftLayer and leasing a physical box from them. The vendor manages the networking, hard drives (if they fail), hardware of the box, virtualization O/S (if the box is virtualized). You can remote desktop to the box and you manage everything else (shown in the screenshot above). Windows Azure provides IaaS in the form the VM Role (you upload a Windows Server 2008 R2 image and manage the server yourself).PaaS - the unit you are gaining is an application/framework. Therefore PaaS is a "hosted application/framework/tools that you can leverage to build something on. That application is configured on IIS/SQL Server etc and runs on a hardware/virtual system that the vendor manages. An example of PaaS would be Windows Azure (excluding the VM Role) services like web role, worker role, Reporting Services etc.SaaS - the unit you are gaining is business functionality. For example, Gmail is a type of a SaaS mail provider because you don't have to manage any service yourself and its all done by the vendor (Google in this example).
Just like you need an operating system on your laptop or home computer or work computer in order to run applications, you need an operating system for the cloud; the OS that could provide not only the services offered by typical on-premise operating systems but also more advanced cloud related services such as load-balancing, elasticity, fault tolerance, dynamic scalability, etc. Windows Azure is Microsoft’s OS for the cloud.Did you notice that Windows Azure is not running on your computers rather it is running in Microsoft’s data centers?
Regardless what the applications designed for Azure do, Azure provides the same fundamental components.
If you don’t need continuous processing (unlike an Internet website which you will most probably want to run 24×7) and there is idle time between your processing-runs then you might want to consider cloud computing. Think about scientific applications that run algorithms and process huge amounts of data; there are time when this processing could take couple of days. Companies that have such processing need could allocate hundreds of computing instance for processing the calculations so that (1) they don’t have to purchase hardware just to use it for couple of days every month (2) they could use the cloud’s capacity for performing calculations faster than they would normally perform using their own infrastructure.Pay roll processing companies could also benefit from cloud. Those companies process salaries one or may be two times in a month; for the rest of the month their processing servers will remain idle. It would probably be more cost effective for them to not maintain their own servers rather lease cloud processing cycles only during the days of processing.
This is a typical Internet success story scenario where a service (e.g. Facebook) becomes so popular so quickly that the underlying infrastructure is unable to scale to handle the load of the users. The startups normally don’t have cash laying around for them to add more servers quickly; even if they had cash, it takes time to buy, configure and hookup servers to your infrastructure.
This is another scenario where cloud computing could be helpful. For example online florists generate most of their yearly revenue in or around Valentine’s Day and Christmas; they know that the demand will go up therefore they could configure their cloud to increase capacity during those days. Once the season is over they could reduce the capacity. Orders for Pizza on the Super Bowl night is another example of seasonal trend that could be handled by using cloud computing.
How do you handle unexpected load increases? Most of the companies cannot unless they have excess computing capacity. Again, excess capacity which is not being used most of the time hurts ROI whereas not having enough capacity in case of unpredictable bursting could hurt your business. Cloud can help in these cases where the additional capacity could be requested to quickly fulfill the needs of the moment.