IaaS, PaaS, and the Windows Azure Platform Keith Pijanowski Platform Strategy Advisor Microsoft October 2009
Contents Introduction .................................................................................................................................................. 2 An Overview of IaaS and PaaS ...................................................................................................................... 4 Building Applications to run in the Cloud ..................................................................................................... 6 Building Virtual Machines for an IaaS Offering ......................................................................................... 7 Building Application Packages for Windows Azure ................. .......................... ................... ................... .................. .................. .................. .................. ........... 9 Scalability, Availability, and Reliability in the Cloud ................. .......................... ................... ................... .................. .................. .................. .................. ........... .. 10 Managing Multiple Machine Instances ................................................................................................... 11 Windows Azure’s Fabric Controller ........................................................................................................ 12
Dependency Management in the Cloud ..................................................................................................... 13 Software Licenses and Virtual Machines ................................................................................................ 14 Azure Services ......................................................................................................................................... 14 Application Lifecycle Considerations .......................................................................................................... 16 The Lifecycle of a Virtual Machine .......................................................................................................... 16 The Lifecycle of an Application Package ................................................................................................. 19 Summary ..................................................................................................................................................... 20
1
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Introduction One of the uses of Cloud Computing is to provide an environment in which organizations can run their own custom applications in the Cloud. This is important because most organizations today today have an IT presence whose purpose is to build custom software that gives t he organization a competitive advantage. Unfortunately, the problem problem with custom custom built software software is that it is expensive. Organizations have to pay a lot of upfront costs to purchase hardware and acquire software licenses (operating systems, databases, etc.). These upfront costs that are amortized over several years are known known as capital expenditures. Additionally, ongoing support support for hardware, software, and the application itself can be high. The bottom line is that to build a conventional on-premise on-premise solution a lot of costs are incurred before any value is gained from the custom application. application. Figure 1 below is a chart of upfront costs, ongoing costs and the value gained from an application over time when it is run on-premise. Figure 2 shows the lifecycle of a custom application and all the phases that are needed to procure and support an environment for the application to live on-premise. The goal of a Cloud Computing is to drive down upfront cost, drive down ongoing costs, and take complexity out of an application’s lifecycle.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figure 1 – Capital Expenditures and ongoing costs associated with On-Premise Applications
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figure 2 – The On-Premise Application Lifecycle
An Overview of IaaS and PaaS Today there are two t ypes of Cloud offerings emerging in the industry that can be used to host a custom application. These two offerings are Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). IaaS provides an environment for running user built virtualized virtualized systems in the cloud. A high level graphic illustrating this technique technique is shown in Figure 3. Using this technique virtual machines are created on premise and loaded with all the software that will eventually run in the cloud. cloud. This includes custom built software as well as licensed software. After the virtual machine is built it is uploaded to the Cloud Infrastructure and started. Once the virtual machine is started the IaaS vendor can ensure ensure that the running virtual machine continues to look look healthy as a whole. It is the responsibility of the customer customer to monitor all the custom built software and licensed software to insure that they are operating properly. IaaS is an option that is very flexible and is the best choice choice for moving applications to the cloud when there is no time to rework the application’s code for a cloud environment.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figure 3 – Infrastructure as a Service
The other type of Cloud Offering for running custom applications is known as a Platform as a Service or PaaS for short. The Windows Azure Platform is is such a platform. platform. In a PaaS environment environment only application application code needs to be uploaded configured and run. In other words, in a PaaS environment the unit of deployment is an application package which contains the code developed by the development team. This is shown in Figure 4. This implies that all the tools that an application application requires to do its job already exist within the PaaS environment and are ready to use on demand.
Figure 4 – The Azure Services Platform
Figure 5 below shows a list o f cloud vendors that offer either Infrastructure as a Service or a Platform as a Service. This is by no means a complete list. It is just a sampling of what is out in the industry today today in
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Platform Vendor Amazon ServePath Rackspace Google Microsoft Salesforce.com
Offering Amazon Web Services GoGrid Mosso|The Rackspace Cloud Google App Engine Azure Services Platform Force.com
Style IaaS IaaS IaaS PaaS PaaS PaaS
Figure 5 – Cloud Offerings for hosting custom applications
Figures 3 and 4 above are simplistic representations of both techniques. techniques. They leave out important details such as: 1. Are there any special considerations for building an application to run in each of these Cloud offerings? 2. How does each Cloud offering offe ring provide scalability, availability, and reliability? 3. What Cloud services can be utilized to replace licensed software? 4. How does each cloud offering affect the application lifecycle? Investigating these questions is a good way to develop an understanding of each offering and the differences between them. In the remaining sections of this article I will describe describe how IaaS environments operate and how the Windows Azure Platform operates. Along the way I will address the questions above. The questions above are not the only questions that should be considered when evaluating a cloud offering. There are other important questions pertaining to data privacy, privacy, service level agreements, and data center certifications that will impact the types of organizations and the types of applications that can take advantage of these these cloud offerings. These issues are beyond the scope of this paper. paper. In this paper I wish to focus on issues that will impact total cost of ownership and the complexity of the application running in the cloud.
Building Applications Applications to run in the Cloud In this section I will compare the unit of deployment deployment for each offering style. Specifically I will discuss discuss what is required to build a virtual machine for a cloud cloud platform (IaaS). Then I will describe how application code needs to be structured and configured in order to run in the Azure Services Platform (PaaS).
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Building Virtual Machines for an IaaS Offering Before discussing how to build a virtual machine for an IaaS environment it is necessary to understand the runtime environment of an IaaS environment. Figure 6 shows a typical runtime environment for IaaS. Here we see physical physical infrastructure, volume storage and management APIs. Once a virtual virtual machine is uploaded to an IaaS vendor’s hosting environment it can be configured to use the IaaS vendor’s raw storage (discussed in the next paragraph). Once configured, the virtual machine machine can be
deployed and started via some form of automation which allocates available infrastructure to run the virtual machine (and the application within it).
Figure 6 – The runtime environment for an IaaS offering
Building an application to run in an IaaS environment is very similar to building an application to run onpremise. Developers will use familiar tools, programming languages, languages, and any needed licensed products (database software, workflow, user management, etc.). Once application development development is complete the
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figure 7 – Inside a Virtual Machine built for an IaaS environment.
Application storage is an important consideration consideration when using any cloud offering. Figure 7 shows how an IaaS vendor provides storage to a virtual machine. When running in an IaaS environment all storage local to the virtual machine should be considered considered volatile. For example, you would not want to create a folder on your “C:\” drive and use it for database storage. This is due to the fact that if your virtual
machine crashes while it is running then the easiest thing for your IaaS vendor to do is to restart your virtual machine from its initial state – which is the state it was in when you uploaded uploaded it. To get around this problem cloud based storage volumes can be purchased and mounted as devices within your virtual
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Building Application Packages for Windows Azure The runtime environment of the Windows Azure Platform is known as Windows Windows Azure. Windows Azure which is shown in Figure 8 is an operating system for the Cloud. A useful analogy is to compare Windows Azure to conventional conventional on-premise operating systems. Conventional operating systems systems manage basic storage, devices, and run applications. Windows Azure provides the same functionality functionality within Microsoft’s datacenters which are built to provide cloud computing. Basic storage is provided by
the table, queue, and blob services shown in Figure 8. In order to provide a runtime environment for custom applications, Windows Azure’s Fabric Controller manages a datacenter of servers to provide
compute power. Do not think of Windows Azure as a conventional operating operating system with a Start menu, a Control panel, and a desktop desktop of icons. It is not an operating system in the traditional traditional sense. Windows Azure is the storage services previous mentioned and the services provided by the Fabric Controller that provide compute power to an application running in a Microsoft datacenter that is accessible via the public internet.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Developers will use familiar tools and programming languages languages to build for Windows Azure. However, Windows Azure is slightly different than the r untime environment found within an on-premise data center because availability, reliability, and scale are specified via configuration and provided for automatically by the Fabric Controller (this will be discussed discussed in the next section). Therefore, application code needs to be structured for Windows Azure. Figure 9 shows the basic structure of an application application that is designed for Windows Azure. Using the terminology of the Windows Azure documentation, documentation, a web application becomes a “Service” that is composed composed of web roles and worker roles. A web role is a
component that listens for for web requests and responds responds to web requests. A worker role performs background processing and typically typically receives its input from the Windows Azure Queue Service. In a cloud environment that is managed by a Fabric Controller the service definition file is a very important part of the application. This file indentifies all the web roles and worker worker roles in the application. As we will see in the next section, the service definition file contains the application’s needs for compute resources.
Figure 9 - Service Code (or a Web Application) built for the Azure Services Platform
Microsoft provides a software development kit that includes a “Development Fabric” that emulates Windows Azure on a developer’s desktop. locally. It would desktop. This allows developers to code and unit test locally. be unfortunate if developers had to actually code and unit test within the cloud platform. Windows
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
three tiered manner allows each t ier to be available, reliable, and scale. In this section I’ll show how an IaaS environment and the Windows Azure Platform provide scalability, availability, and reliability by emulating the techniques shown in Figure 10.
Figure 10 – Availability, Scalability and Reliability in an on-premise environment
Managing Multiple Machine Instances If an application is architected to be deployed across three logic tiers as shown in Figure 10 then to achieve the same availability and reliability from a cloud platform based on virtual machines, three different virtual machines would need to be designed, built and stored within t he IaaS vendor’s environment. Specifically, you would need need one virtual machine designed and built to play the role of a
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Figure 11 – Deploying a three tiered system to an IaaS environment
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Software Licenses and Virtual Machines If the application you wish to virtualize and run in an IaaS environment requires third party products like a relational database, or messaging middleware then customers will have to be purchase and support this third party products themselves. However, some IaaS vendors provide cloud based services that have the same or similar capabilities as licensed products. products. For example, data services and queue services can be used to replace a purchased database management systems and middleware messaging software respectively. This is shown in Figure 13. Application code would would need to be rewritten such that it utilizes these cloud storage se rvices instead of licensed database management software. However, once the application is restructured to use these services the complexity of the application would be reduced since this would result in one less virtual virtual machine being needed. More importantly, the licenses for the database software and the messaging software would no longer longer be needed. These licenses would be replaced with usage fees associated with the cloud storage services.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
SQL Azure Database. Figure 14 shows the Azure Services and and how they can be be consumed by an application running in Windows Windows Azure. To address the need for structured data, SQL Data Services can be used as a re lational database in the Cloud.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
uploaded to the Cloud. Once the application is started, only the application application itself needs to be supported directly by the customer. Third party software does not need to be supported by the customer since these dependencies are replaced by the Azure services which are part of the platform and supported by Microsoft. There is a downside to this offering - application application code will need to be reworked to take advantage of the Windows Azure Platform.
Application Lifecycle Considerati Considerations ons Both of the cloud environments discussed in this paper makes the application lifecycle cheaper and easier than on premise development. development. However, there are differences between the two especially especially when it comes to the procurement of third party software, complexity in the application lifecycle, the types of applications that can be hosted, and the ongoing maintenance needed to support t he hosted application. In this section I will investigate investigate the application lifecycle for applications applications built for IaaS environments as well as applications built for the Windows Azure Platform.
The Lifecycle of a Virtual Machine Figure 15 shows a high level process that depicts the tasks needed to utilize an IaaS environment for a custom application. Local development activities do not not need to change assuming everything utilized to
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
The Lifecycle of an Application Package Figure 17 shows a high level process that depicts the tasks needed to utilize the Windows Azure Platform. Local development activities do not need need to change since Microsoft’s software development kit comes with a “Development Fabric” that emulates the runtime environment of Windows Azure. (This is the Build phase shown in Figure 17.) Before uploading code to the Windows Azure Platform you will need to create an account if you do not already have have one (Account phase). This step does not represent a cost - only a credit card is needed. Once an account is setup application application code can be uploaded and started. (The upload and start phases respectively.) It is important important to note that there will be a charge for each web role and worker role that is running. So if one web role is started three times because it provides web functionality that requires fault tolerance and high availability then there will be a charge for each running instance. While the application is running running it is the responsibility of the customer to monitor the application to make sure it is operating properly (Support (Support phase). The
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
An Infrastructure as a Service offering also provides maximum flexibility because just about anything that can be virtualized can be run on these platforms. This is perhaps the biggest benefit of an IaaS environment. If a system can be represented as a series of virtual machines then it it can be migrated into an IaaS environment with little or no rewriting of code. This also allows applications applications to more easily move back and forth between cloud environments and on-premise datacenters. The Windows Azure Platform is a Platform as a Service (PaaS) offering. Developers can use familiar programming languages and common development environments environments to build their applications. Simple applications that just use web pages, web services, and SQL Azure Database will be able to move between on-premise datacenters to the Azure Services Platform with minor configuration changes. However, applications that take advantage of the other Azure Services and Cloud specific features of Windows Azure like Blobs, Tables, Queues, and Worker roles will need to be written wr itten specifically for the platform. This is certainly an adoption adoption hurdle for migrating existing applications to the Windows Azure