Cloud Computing with the Windows® Azure™ Platform

Published by

Wiley Publishing, Inc.

10475 Crosspoint Boulevard

Indianapolis, IN 46256

www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana

ISBN: 978-0-470-50638-7

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

Library of Congress Control Number: 2009933376

Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Microsoft and Azure are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc. is not associated with any product or vendor mentioned in this book.

This book is dedicated to my wife, Alexandra.

Looking forward to our twenty-fifth wedding anniversary.

About the Author

Roger Jennings is an author and consultant specializing in Microsoft .NET n-tier database applications and data-intensive Windows Communication Foundation (WCF) Web services with SQL Server. He's been a beta tester for most versions of Visual Basic, starting with the Professional Extensions for Visual Basic 2.0 (code-named Rawhide), SQL Server since version 4.21, and all versions of Visual Studio.

More than 1.25 million English copies of Roger's 26 computer-related books are in print, and they have been translated into more than 20 languages. He's the author of Professional ADO.NET 3.5 with LINQ and the Entity Framework and Expert One-on-One Visual Basic 2005 Database Programming for Wiley/Wrox, three editions of Database Developer's Guide to Visual Basic (SAMS Publishing), two editions of Access Developer's Guide (SAMS), 11 editions of Special Edition Using Microsoft Access (QUE Publishing), and two editions of Special Edition Using Windows NT 4.0 Server (QUE). He's also written developer-oriented books about Windows 3.1 multimedia, Windows 95, and Windows 2000 Server for QUE; Active Directory Group Policy and Visual Basic web services for Osborne McGraw-Hill; and Microsoft Office InfoPath 2003 SP-1 for Microsoft Press. Roger has been a contributing editor of Redmond Media Group's Visual Studio Magazine and its predecessor, Fawcette Technical Publications' Visual Basic Programmer's Journal, for more than 15 years. His articles also appear in Redmond Magazine and he writes “TechBriefs” and cover stories for Redmond Developer News.

Roger has more than 30 years of computer-related experience, beginning with real-time medical data acquisition and chemical process control systems driven by Wang 700 calculators and later Wang BASIC microcomputers. He's the principal developer for OakLeaf Systems, a Northern California software consulting firm and author of the OakLeaf Systems blog (http://oakleafblog.blogspot.com). His OakLeaf Code of Federal Regulations (CFR) ASP.NET Web service demonstration won the charter Microsoft .NET Best Award for Horizontal Solutions (http://bit.ly/Balng, www.microsoft.com/presspass/features/2002/aug02/08-07netwinners.mspx).

Credits

Executive Editor

Bob Elliott

Project Editor

Adaobi Obi Tulton

Technical Editors

Mike Amundsen

David Robinson

Production Editor

Daniel Scribner

Copy Editor

Paula Lowell

Editorial Director

Robyn B. Siesky

Editorial Manager

Mary Beth Wakefield

Production Manager

Tim Tate

Vice President and Executive Group Publisher

Richard Swadley

Vice President and Executive Publisher

Barry Pruett

Associate Publisher

Jim Minatel

Project Coordinator, Cover

Lynsey Stanford

Proofreader

Nancy C. Hanger, Windhaven

Indexer

Robert Swanson

Cover Image

© Jupiter Images/Digital Vision

Acknowledgments

Many thanks to technical editors Dave Robinson and Mike Amundsen for corrections and suggestions as the chapters passed through numerous Community Technical Previews and SQL Azure Database's mid-course correction.

David Robinson is a Senior Program Manager on the SQL Azure Database (SADB) team. David is responsible for a multitude of things including driving product features, code samples, and most importantly demonstrating to customers the value that SADB and cloud computing provides. David enjoys getting out in the community, presenting on SADB, gathering feedback, and helping to ensure SADB meets whatever demands you throw at it. David has also written for MSDN magazine on developing solutions against SADB. Before joining the SADB team, David was a Solutions Architect on Microsoft's Health and Life Sciences team. Before joining Microsoft, David held various senior positions with a variety of software and consulting companies. David got his start as a developer at Computer Associates in the early '90s. When not working, David enjoys spending time with his wife and helping her corral their four young daughters. David blogs at http://bit.ly/qIT1S, http://blogs.msdn.com/drobinson/default.aspx.

Mike Amundsen is an internationally known author and lecturer who travels throughout the United States and Europe speaking about and teaching a wide range of topics including .NET, the Internet, team development, and other subjects. He has more than a dozen books to his credit; his most popular titles are Teach Yourself Database Programming with Visual Basic in 21 Days, Using Visual InterDev, and ASP.NET for Developers. When he's not traveling, Mike spends his time with his wife and three children at their home in Kentucky. Mike and Subbu Allamaraju are writing the RESTful Web Services Cookbook to be published by O'Reilly Media at the end of 2009. Mike's mca blog is at www.amundsen.com/blog/.

Wrox Executive Editor Bob Elliott convinced me to start writing .NET developer books for Wiley/Wrox. Adaobi Obi Tulton, project editor for this and my two earlier Wiley/Wrox titles, made sure that chapters didn't slip too far behind the schedule required to deliver this book before the official announcement of the Windows Azure Platform's release to the Web at Microsoft's Professional Developers Conference 2009.

Introduction

Cloud computing became a hot topic in mid-2008 and, by mid-2009, had achieved top buzzword status. As proof of its popularity, a mid-August 2009 search on Bing.com for “cloud computing” returned 92 million hits. Hardly a week goes by that doesn't include at least one cloud computing conference somewhere around the globe. Mainstream business magazines, such as Forbes and Business Week, regularly run cloud-computing feature articles and comprehensive special reports, such as Business Week's “Cloud Computing's Big Bang for Business” of June 5, 2009, which presented case studies of cloud usage by Serena Software, Optum Health, Genentech, Coca-Cola Enterprises, and Info Tech (http://bit.ly/uecfb, www.businessweek.com/magazine/toc/09_24/B4135cloud_computing.htm). Earlier that week, Microsoft CEO Ray Ozzie addressed Silicon Valley's Churchill Club on “The Potential of Cloud Computing” (http://bit.ly/g2wqn, www.churchillclub.org/eventDetail.jsp?EVT_ID=820). TechCrunchIT's Leena Rao quoted Ozzie in a June 4, 2009 post (http://bit.ly/1h01j, www.techcrunchit.com/2009/06/04/liveblogging-microsofts-ray-ozzie-on-the-potential-of-cloud-computing):

In essence, the nature of Windows Azure …will enable people to wrap existing Windows Server workloads in a way with as little change as possible to move up in a public or private cloud environment. It's laying out program design patterns and infrastructure—this is what an idea[l] cloud computing structure looks like, this is how you build a program with the elastic ability to scale, etc….

When asked by moderator Steven Levy, “How many companies can build big clouds?” Ozzie replied:

Not too many. I don't know about Amazon. They are the leader. They have done amazing work. But the level of [Windows] Server enterprise deployments is substantial. We have so many companies who are using Exchange and SharePoint who want to get into this infrastructure …it's a big investment.

Amazon Web Services is today's “800-pound gorilla” of cloud computing, having been in the Infrastructure as a Service (IaaS) market for three years with its Elastic Computing Cloud (EC2), announced in November 2006, and Simple Storage Services (S3), which started operation in March 2006. Google was one of the first players in the Platform as a Service (PaaS) business with the Python-powered Google App Engine (GAE), which now supports Java as a programming language. GAE started with a limit of 10,000 developers in early April 2008 and opened to all comers in May 28, 2008. The poster-child of Software as a Service (SaaS), Salesforce.com, Inc., had 55,400 customer-relationship management (CRM) customers and more than 1.5 million subscribers in mid-2009, according to Wikipedia. Verizon was one of the first telecom firms to announce entry into cloud-based Computing as a Service (CaaS) business in June 2009. Sun Microsystems, which was in the process of being acquired by Oracle when this book was written, and IBM are potential PaaS competitors to Windows Azure.

Ozzie responded to Levy's question, “What's your competitive edge when it comes to cloud computing over other tech companies?” with the following list:

1. Technology: Microsoft Research has been doing tremendous things.

2. Operating systems.

3. Storage investments because of search.

4. Developer edge: Five to seven million developers working on the Microsoft stack. It's a great market opportunity. If we can prove to them that we have a great infrastructure for their software, they will deploy it. There's also opportunity with partners—there are going to be lots of opportunity for partners, like hardware partners to make money.

5. Enterprise: Exchange and SharePoint are great ways to save money.

This book concentrates on item 4 of the preceding list. Microsoft's competitive edge in cloud computing hinges on its capability to leverage the skills of cadres of .NET architects and developers who use Visual Studio (VS) 2008 and 2010 to move on-premises applications and services to Azure WebRoles, WorkerRoles, and .NET Services. Publishing to hosted staging in the Azure cloud from VS's Solution Explorer requires only a few mouse clicks. Moving from staging to production deployment is a single-click operation that automatically creates two data replicas for high availability. Provisioning additional service instances during traffic surges and retiring them when usage subsides also is automatic.

SQL Server DBAs and database architects can take advantage of their Transact-SQL chops with SQL Azure Database (SADB), Microsoft Synchronization Framework, and the newly christened Data Hub (formerly codenamed Project Huron). Data Hub syncs database schemas and table rows between on-premises, mobile, and Azure databases. SQL Server Management Studio on your development machine can connect to an SQL Server database simply by changing the server's DNS name in the logon dialog. Managing SADB runs T-SQL on the SQL Server's traditional Transport Data Stream (TDS) protocol on TCP port 1433 with the .NET SqlClient class. Alternatively, ADO.NET Data Services (formerly Project Astoria) provides RESTful access to SADB data with HTTP[S].

Cloud Computing with the Windows Azure Platform's early chapters briefly discuss the business justification for moving many IT operations to the cloud and deal with thorny cloud security issues. However, the book concentrates on hands-on programming of Windows Azure Storage services—tables, blobs, and queues—and web applications (WebRoles and WorkerRoles), as well as .NET Services, including Access Control Services, Service Bus queues and routers, and Workflows. The Azure team decided late in the game to move from SQL Server Azure Database's Authority-Container-Entity (ACE) data model to SADB's fully relational Account-Server-Database model and didn't release the first SADB Community Technical Preview (CTP) until after this book's printing deadline. Therefore, the book's last two chapters about managing and programming SADB and Data Hub are downloadable, along with the sample source code, from the Wrox web site at www.wrox.com. The Azure team removed Workflow Services from the .NET Services feature set starting with the .NET Services July 2009 CTP because .NET Framework 4 will ship with a substantially improved workflow engine. Workflow Services will be reinstated after the final release of .NET 4.

Who This Book Is For

.NET developers, software architects, and development managers are the primary audience for this book, but IT executives and managers are likely to find the detailed information about auditing governance and security for Windows Azure services useful. For example Chapter 5, “Minimizing Risk When Moving to Azure Cloud Services,” observes the need for cloud governance and security audits, and then goes on to describe the Statement of Auditing Standards (SAS) 70 Type I and Type II attestations and ISO/IEC 27001:2005 certifications received by Microsoft's data centers in mid-2009.

Microsoft was the first major PaaS cloud service provider to obtain both SAS 70 Type I and Type II attestations and ISO/IEC 27001:2005 certifications for its data centers.

What This Book Covers

Cloud Computing with the Windows Azure Platform covers server-side and client-side programming with Visual Studio 2008, the .NET Framework 3.5, Windows Azure Software Development Kit (SDK), .NET Services SDK, SQL Azure SDK, and ADO.NET Data Services using the local Azure Development Fabric, where applicable, and the Azure Production Fabric for the cloud. Sample programs illustrate data storage and retrieval with Azure blobs, tables, and queues; authenticating and authorizing users with ASP.NET membership and Azure Access Control Services; interconnecting services and clients with the Service Bus and its queues and routers; and implanting workflows with .NET Services and VS's graphical Workflow Designer. Most of the sample code uses the sample StorageClient library to simplify programming with traditional .NET objects rather than raw HTTP requests and responses.

When this book was written, .NET 4 and VS 2010 were in the Beta testing stage and the Azure Fabric did not support projects that required .NET 4 features. There is no significant difference when using VS 2010 and 2008 to author or deploy Azure projects or services.

How This Book Is Structured

This book is divided into four parts with two to five chapters. Most chapters build on the knowledge you've gained from preceding chapters. Thus, it's recommended that you work your way through the chapters sequentially. Following is a brief description of each part and its chapters' contents.

Part I: Introducing the Windows Azure Platform

Part I is devoted to generic cloud computing topics, the Windows Azure infrastructure, and Azure Storage Services.

Chapter 1, “Surveying the Role of Cloud Computing,” starts with definitions of cloud computing and its estimated market size, discusses reasons for migrating applications and services to the cloud, outlines the history of cloud computing and its ancestors, such as Oracle's Network Computer, and then goes on to describe various *aaS variations, such as Data storage as a Service (DaaS), Software as a Service (SaaS), and Microsoft's Software + Services, as well as cloud computing ontologies. The chapter closes with details about the National Institute for Standards and Technology (NIST)'s “Draft NIST Working Definition of Cloud Computing v13” and “Presentation on Effectively and Securely Using the Cloud Computing Paradigm v22” (http://bit.ly/KQ2ZZ, http://csrc.nist.gov/groups/SNS/cloud-computing/index.html) publications.

Chapter 2, “Understanding Windows Azure Platform Architecture” begins with a description of the Windows Azure Platform's components, the Azure Development Portal for managing hosted applications and services, and the Azure Development Platform, which implements the Developer Fabric and Developer Storage to emulate the cloud-based services on developers' computers. A tour of the Windows Azure SDK and templates added to VS 2008 by Windows Azure Tools for Visual Studio follows, and the chapter continues with details about .NET Services, the Service Bus, Workflow services, and deploying solutions to the Azure cloud.

Chapter 3, “Analyzing the Windows Azure Operating System,” digs into the Azure Fabric Controller, which handles application/service deployment, load balancing, OS/data replication, and resource management. It then goes on to describe the relationships between physical nodes and logical roles, and the services they host, as well as how the host and guest virtual machine (VMs) are created for a new production project. A discussion of the roles of upgrade domains, which support rolling service software updates and patches to the Windows Azure operating system, and fault domains for high-availability services, as well as how the fabric maintains tenant privacy in a multitenancy environment follows. The chapter closes with details of virtualizing Windows Server for use by Azure.

Chapter 4, “Scaling Azure Table and Blob Storage” explains how to create Azure storage accounts, describes how to use the Fiddler2 web debugger proxy to view HTTP request and response messages, analyzes how the sample C# StorageClient library simplifies storage programming, and then goes into detailed programming techniques for using Azure tables and blobs as data sources for WebRoles. The source code contains sample C# solutions for tables (oakleaf.cloudapp.net) and blobs (oakleaf2.cloudapp.net) that are deployed to the cloud.

Part II: Taking Advantage of Cloud Services in the Enterprise

Part II shows you how to overcome enterprise-scale business issues with transport and store data encryption, basic cloud authentication and authorization techniques, improving the scalability of and enabling transactions for Azure tables, and processing compute operations in parallel with Azure queues and WorkerRoles.

Chapter 5, “Minimizing Risk When Moving to Azure Cloud Services,” starts by discussing the “Top 10 Obstacles to and Opportunities for Growth of Cloud Computing” from the University of California Berkeley's “Above the Clouds: A Berkeley View of Cloud Computing” whitepaper, service-level agreements (SLAs), and NIST's definition of IT-related risk, as well as federal agency plans for deploying cloud services. An analysis of regulations, such as the Gramm-Leach-Bliley (GLB) Act, Sarbanes-Oxley Act (SOX), Health Insurance Portability and Accountability Act (HIPAA), and the Foreign Corrupt Practices Act, as well as the Payment Card Industry-Data Security Standard (PCC-DSS), which requires auditing, follows. Code for implementing Secure Sockets Layer (SSL) transmission encryption for WebRoles, TLS for Azure Data Services, and encrypting personal information in Azure Storage Services follows. The chapter concludes with sections about auditing conformance to regulatory and industry standards.

Chapter 6, “Authenticating and Authorizing Service Users,” shows you how to adapt ASP.NET authentication and role management to Azure WebRoles with the AspProviders class library and the TableStorageMembershipProvider, TableStorageRoleProvider, TableStorageProfileProvider, and TableStorageSessionProvider classes. The chapter ends with the details for integrating ASP.NET Membership services with an Azure service.

Chapter 7, “Optimizing the Scalability and Performance of Azure Tables,” describes how to choose the optimum combination of PartitionKey and RowKey values, which correspond to a relational table's composite primary key; handle associated (child or parent) entities; and take advantage of Entity Group Transactions, which the Azure team introduced in the Windows Azure May 2009 CTP. An example for using ADO.NET Data Services to upload homogeneous (parent or child entities) and heterogeneous (parent and child entities) tables with a comparison of performance follows. The chapter closes with code to display heterogeneous entities in linked parent/child ASP.NET DataGrid controls.

Chapter 8, “Messaging with Azure Queues,” explains the benefits of offloading computing services to one or more WorkerRoles and describes how to create and process Azure queues using the QueueStorage, MessageQueue, QueueProperties, and Message classes and the MessageReceivedEventHandler delegate. The chapter also describes how to enhance the Thumbnails.sln sample solution and minimize network traffic when polling for blob updates. The final Photo Gallery Azure Queue Test Harness sample project at oakleaf5.cloudapp.net/ includes a GridView of image blobs added by a queue from local graphics files.

Part III: Tackling Advanced Azure Service Techniques

Part III introduces programming .NET Services members—Access Control Services (ACS), .NET Service Bus (SB), and Workflow services (WF)—with the Microsoft .NET Services SDK.

Chapter 9, “Authenticating Users with .NET Access Control Services,” describes ACS as a security token service infrastructure hosted in Windows Azure that authenticates credentials and issues tokens. The chapter shows you how to provision and create a .NET Services solution, use Microsoft's FederatedIdentity.net web site to create federated Information Card credentials, use Geneva Server beta 2 to create Information Cards for your own organization, and use CardSpace Information Cards for user authentication and authorization with ACS.

Chapter 10, “Interconnecting Services with the .NET Service Bus,” explains how to use the SB and its various messaging patterns for traversing firewalls and Network Address Translation (NAT) devices while interconnecting Windows Azure and other applications via the Internet. Programming topics include relaying messages with SB, making services publicly discoverable by an Atom feed, and using the configuration file to specify WSHttpRelayBinding.

Chapter 11, “Exploring .NET [Workflow Services and] Service Bus Queues and Routers,” explains persisting messages in Service Bus queues (SBQs) with the QueueManagementClient class and delivering messages with Service Bus routers (SBR)s. The online version of this chapter, which will come after the release of .NET 4, will use the CheckScoreWorkflow.sln sample project to introduce WF cloud application architecture and the .NET Service Portal's Workflow Management pages.

Part IV: Working with SQL Azure Services (Online Only)

The Microsoft SQL Server team announced its intention to replace its original SQL Server Data Services (SSDS) implementation of a schemaless Entity-Attribute-Value (EAV) data model with fully relational SQL Data Services (SDS), also known as, “SQL Server in the Cloud,” and introduced SDS with an invitation-only CTP in July 2009. The SDS team changed SDS's name to SQL Azure Database in early July 2009. The first (August 2009) SADB CTP was too late to include in the first printing of this book, so Part IV's chapters will be available for download from the same location as the source code and Workflow, the book's pages on the Wrox web site (www.wrox.com).

See the later “Source Code and Online Chapters” section for details about downloading the sample source code and these chapters.

Chapter 12: “Managing SQL Azure Accounts, Databases, and Data Hubs”

Chapter 13: “Exploiting SQL Azure Database's Relational Features”

Conventions

To help you get the most from the text and keep track of what's happening, Wrox uses a number of conventions throughout the book.

Notes, tips, hints, tricks, and asides to the current discussion are placed in italics like this.

As for styles in the text:

New terms and important words are highlighted when introducing them.

Keyboard strokes look like this: Ctrl+A.

URIs and code within the text appear like so: persistence.properties.

Long URLs are shortened by http://bit.ly to URIs like http://bit.ly/sJbNe to minimize typing and are followed by the item's original URI for use in the event of a mismatch.

Replaceable values in code are italicized: tableName.entityName.

Code is presented in two different ways:

A monospace font with no highlighting works for most code examples.

Gray highlighting emphasizes code that's particularly important in the present context.

Source Code and Online Chapters

As you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. All the source code used in this book is available for download at www.wrox.com. Once at the site, simply locate the book's title (either by using the Search box or by using one of the title lists) and click the Download Code link on the book's detail page to obtain all the source code for the book.

Because many books have similar titles, you may find it easiest to search by ISBN; this book's ISBN is 978–0–470–50638–7.

After you download the code, just decompress it with your favorite archiving tool. Alternatively, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books. The online version of Chapter 11, and Chapters 12 and 13 can also be downloaded from the web site using the same method.

Errata

We make every effort to ensure that no errors are in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, like a spelling mistake or faulty piece of code, we would be very grateful for your feedback. By sending in errata you may save another reader hours of frustration and at the same time you will be helping us provide even higher quality information.

To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the book details page, click the Book Errata link. On this page you can view all errata that have been submitted for this book and posted by Wrox editors. A complete book list including links to each book's errata is also available at www.wrox.com/misc-pages/booklist.shtml.

P2p.wrox.com

For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a web-based system for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At p2p.wrox.com you will find a number of different forums that will help you not only as you read this book, but also as you develop your own applications. To join the forums, just follow these steps:

1. Go to p2p.wrox.com and click the Register link.

2. Read the terms of use and click Agree.

3. Complete the required information to join as well as any optional information you want to provide and click Submit.

4. You will receive an e-mail with information describing how to verify your account and complete the joining process.

You can read messages in the forums without joining P2P but in order to post your own messages, you must join.

After you join, you can post new messages and respond to messages other users post. You can read messages at any time on the Web. If you would like to have new messages from a particular forum e-mailed to you, click the Subscribe to this Forum icon by the forum name in the forum listing.

For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

Part I

Introducing the Windows Azure Platform

Chapter 1: Surveying the Role of Cloud Computing

Chapter 2: Understanding Windows Azure Platform Architecture

Chapter 3: Analyzing the Windows Azure Operating System

Chapter 4: Scaling Azure Table and Blob Storage

Chapter 1

Surveying the Role of Cloud Computing

The term cloud computing implies access to remote computing services offered by third parties via a TCP/IP connection to the public Internet. The cloud symbol in a network diagram, which initially represented any type of multiuser network, came to be associated specifically with the public Internet in the mid-1990s. As an example, the following is the first paragraph of Wikipedia's definition of cloud computing as of mid-January 2009:

Cloud computing is Internet (“cloud”)-based development and use of computer technology (“computing”). It is a style of computing in which resources are provided “as a service” over the Internet to users who need not have knowledge of, expertise in, or control over the technology infrastructure (“in the cloud”) that supports them.

Gartner defines cloud computing as

Scalable, IT-related capabilities provided as a service on the Internet.

The preceding definitions encompass almost all common Internet-based activities, ranging from individuals sending e-mail messages and viewing Web pages to retailers processing credit and debit card charges for online purchases. Google CEO Eric Schmidt narrowed the definition a bit in an August 9, 2006 interview by Danny Sullivan at the Search Engine Strategies Conference (transcribed at http://bit.ly/wday4, www.google.com/press/podium/ses2006.html):

What's interesting [now] is that there is an emergent new model, and you all are here because you are part of that new model. I don't think people have really understood how big this opportunity really is. It starts with the premise that the data services and architecture should be on servers. We call it cloud computing—they should be in a “cloud” somewhere. And that if you have the right kind of browser or the right kind of access, it doesn't matter whether you have a PC or a Mac or a mobile phone or a BlackBerry or what have you—or new devices still to be developed—you can get access to the cloud. There are a number of companies that have benefited from that. Obviously, Google, Yahoo!, eBay, Amazon come to mind. The computation and the data and so forth are in the servers. [Emphasis added.]

Mr. Schmidt is considered by many to be the first user of the term cloud computing in the context of its embodiment in 2008 and later, but the term didn't reach the threshold for inclusion in Google's Trends service until about September 2007 (see Figure 1.1). Mr. Schmidt makes the assumption in the preceding quotation that data services provided by the cloud-computing servers were defined by the organizations that owned the servers, specifically Google, Yahoo!, eBay, and Amazon.

Figure 1.1 Worldwide traffic for the terms cloud computing, Windows Azure, Amazon EC2, and Google App Engine for the years 2000 through 2008 as reported by the Google Trends service.

Amazon released its Elastic Compute Cloud (EC2) web service, which was the first service to permit users to run their own custom programs—rather than host web sites only—in the Internet cloud, on August 23, 2006, just two weeks after the Schmidt interview.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!