Synopses & Reviews
How can a company's applications be scalable and have high availability?
To achieve this, along with developing the applications, you must also have an infrastructure that can support them. For example, you may need to add servers or increase the capacities of existing ones, have redundant hardware, add logic to the application to handle distributed computing, and add logic for failovers. You have to do this even if an application is in high demand for only short periods of time. Life becomes even more complicated (and expensive) when you start to consider issues such as network latency and security boundaries.
The cloud offers a solution to this dilemma. The cloud is made up of interconnected servers located in various data centers. However, you see what appears to be a centralized location that someone else hosts and manages. By shifting the responsibility of maintaining an infrastructure to someone else, you're free to concentrate on what matters most: the application. If the cloud has data centers in different geographical areas, you can move your content closer to the people who are using it most. If an application is heavily used in Asia, have an instance running in a data center located there. This kind of flexibility may not be available to you if you have to own all the hardware.
Another advantage to the cloud is that it's a pay as you go proposition. If you don't need it, you don't have to pay for it. When demand is high, you can scale up, and when demand is low, you can scale back. Yes, by moving applications to the cloud, you're giving up some control and autonomy, but you're also going to benefit from reduced costs, increased flexibility, and scalable computation and storage. The Windows Azure Architecture Guide shows you how to do this.
Teach yourself how to build and host scalable applications in the cloud using Windows Azure™—one step at a time. Ideal for those with fundamental programming skills, this tutorial provides practical, learn-by-doing exercises for working with the services and features of the Windows Azure platform.
Discover how to:
- Work with the configuration panel, the portal, and SDKs of the Azure operating system
- Explore the different layers of cloud-based application architecture
- Build Web Role and Web Worker projects and deploy them to the cloud
- Use two methods to store data—Azure Storage and Microsoft® SQL Azure™
- Build an AppFabric service solution to connect cloud-based applications
- Access cloud applications and stored data from a variety of platforms
Learn the nuts and bolts of cloud computing with Windows Azure, Microsoft's new Internet services platform. Written by a key member of the product development team, this book shows you how to build, deploy, host, and manage applications using Windows Azure's programming model and essential storage services.
Chapters in Programming Windows Azure are organized to reflect the platform's buffet of services. The book's first half focuses on how to write and host application code on Windows Azure, while the second half explains all of the options you have for storing and accessing data on the platform with high scalability and reliability. Lots of code samples and screenshots are available to help you along the way.
- Learn how to build applications using the Windows Azure toolset
- Discover how Windows Azure works under the hood, and learn the how and the why behind several features
- Choose to write application code in .NET or other languages such as C/C++, PHP, or Ruby
- Understand the various options for managing your service
- Get up to speed on Azure's storage services, including blobs, queues, and tables
- Build a secure backup system, and learn about cloud application security, cryptography, and performance
Azure in Action is a fast-paced tutorial intended for architects and developers looking to develop cloud-based applications on the Windows Azure Platform. Written by two of Microsoft's leading Azure evangelists, it's designed both for readers new to cloud concepts and for those familiar with cloud development but new to Azure.
Starting with core concepts, the book explores designing and scaling front-end and back-end services that run in the cloud, and more advanced scenarios in Windows Azure. Later chapters introduce the rest of the Azure Services Platform with a particular focus on SQL Azure Database.
Your hands-on, step-by-step guide to the programming fundamentals for Windows Azure
Teach yourself how to build and host scalable applications in the cloud using Windows Azure—one step at a time. Ideal for those with basic programming skills, this tutorial provides practical, learn-by-doing exercises for working with the core services and features of the Windows Azure platform. Discover how to:
- Extend your existing skills to the cloud development model
- Build a simple web role application and deploy it to the cloud
- Create a worker role project to perform backend processes
- Store persistent data with Windows Azure Storage
- Develop a scalable database application in the cloud using Microsoft SQL Azure
- Connect several cloud-based applications with Windows Azure AppFabric
- Design a multitiered solution that can scale to meet user demand
About the Author
Eugenio Pace works in the Software and Services group for the Microsoft® Architecture Strategy team. He develops architecture guidance to help ISVs, Hosters and Companies, build, run and consume software delivered as a service. His blog can be found at http://blogs.msdn.com/eugeniop/
Dominic Betts is an expert with the patterns & practices team & other Microsoft® groups.
Scott Densmore is an expert with the patterns & practices team & other Microsoft® groups.
Ryan Dunn is an expert with the patterns & practices team & other Microsoft® groups.
Masashi Narumoto is an expert with the patterns & practices team & other Microsoft® groups.
Matias Woloski is an Enterprise Architect at Southworks S.R.L. He's been involved in software development for 6 yeasr. Currently, he's working with the patterns & practices team at Microsoft® in a Scrum-driven project. He maintains a blog at http://blogs.southworks.net/mwoloski/
Table of Contents
Dedication; Preface; How This Book Is Organized; Conventions Used in This Book; Using Code Examples; How to Contact Us; Safari® Books Online; Acknowledgments; Chapter 1: Cloud Computing; 1.1 Understanding Cloud Computing; 1.2 The Windows Azure Platform; 1.3 Windows Azure; 1.4 When Not to Use the Cloud; 1.5 Summary; Chapter 2: Under the Hood; 2.1 Inside the Cloud; 2.2 The Data Centers; 2.3 The Hypervisor; 2.4 The Fabric; 2.5 Summary; Chapter 3: Your First Cloud App; 3.1 Signing Up for Windows Azure; 3.2 The Windows Azure Tool Set; 3.3 Developing Your First Cloud Application; 3.4 Using the Visual Studio Tools; 3.5 Summary; Chapter 4: Service Model; 4.1 Understanding Windows Azure Roles; 4.2 Service Definition and Configuration; 4.3 Introducing the Service Runtime API; 4.4 Accessing Configuration Settings; 4.5 Understanding Endpoints; 4.6 Understanding Inter-Role Communication; 4.7 Subscribing to Changes; 4.8 Looking at Worker Roles in Depth; 4.9 Summary; Chapter 5: Managing Your Service; 5.1 Common Themes Across Windows Azure Services; 5.2 Windows Azure Developer Portal; 5.3 Service Management API; 5.4 Dealing with Upgrades; 5.5 Summary; Chapter 6: Native and Non-.NET Code; 6.1 The Windows Azure Sandbox; 6.2 Peeking Under the Hood with a Command Shell; 6.3 Running Non-.NET Languages; 6.4 Understanding FastCGI and PHP; 6.5 Gotchas” with Running Native Code; 6.6 Summary; Chapter 7: Storage Fundamentals; 7.1 Accepting the New Storage System; 7.2 Windows Azure Storage Characteristics; 7.3 Windows Azure Storage Services; 7.4 Getting Started with a Storage Account; 7.5 Working with the REST API; 7.6 Building a Storage Client; 7.7 Using the SDK and Development Storage; 7.8 Summary; Chapter 8: Blobs; 8.1 Understanding the Blob Service; 8.2 Usage Considerations; 8.3 Using the Blob Storage API; 8.4 Using the Storage Client Library; 8.5 Using Containers; 8.6 Using Blobs; 8.7 Understanding Block Blobs; 8.8 Understanding Page Blobs; 8.9 Windows Azure XDrive; 8.10 CDN Access and Custom Domain Names; 8.11 Summary; Chapter 9: Queues; 9.1 Understanding the Value of Queues; 9.2 Windows Azure Queue Overview; 9.3 Understanding Queue Operations; 9.4 Understanding Message Operations; 9.5 Summary; Chapter 10: Tables; 10.1 Windows Azure Table Overview; 10.2 ADO.NET Data Services Primer; 10.3 Table Operations; 10.4 Summary; Chapter 11: Common Storage Tasks; 11.1 Exploring Full-Text Search; 11.2 Modeling Data; 11.3 Making Things Fast; 11.4 Utilizing Concurrent Updates; 11.5 Summary; Chapter 12: Building a Secure Backup System; 12.1 Developing a Secure Backup System; 12.2 Understanding Security; 12.3 Protecting Data in Motion; 12.4 Protecting Data at Rest; 12.5 Usage; 12.6 Summary; Chapter 13: SQL Azure; 13.1 Creating and Using a SQL Azure Database; 13.2 Differences Between SQL Azure and SQL Server; 13.3 Tips and Tricks; 13.4 Summary; Colophon;