Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Programming Windows Azure
Preface
How This Book Is Organized
Conventions Used in This Book
Using Code Examples
How to Contact Us
Safari® Books Online
Acknowledgments
1. Cloud Computing
Understanding Cloud Computing
History of Cloud Computing
Time-sharing systems
Mainframe computing
Transactional computing
Grid computing
Understanding the Characteristics of Cloud Computing
Understanding Cloud Services
The Windows Azure Platform
Azure AppFabric
SQL Azure
Windows Azure
Understanding the Origins of Windows Azure
Understanding Windows Azure Features
Virtualization
The Fabric Controller
Storage
Blob storage
Queue service
Table storage
When Not to Use the Cloud
Service Availability
Custom Infrastructure Requirements
Security, Confidentiality, and Audits
Capacity Planning and Limits
Unpredictable Performance
Migration and Interoperability
Summary
2. Under the Hood
Inside the Cloud
The Data Centers
Security
Compliance
The Hypervisor
Hypervisor Architecture
Hypercalls and Enlightenments
Windows Azure Hypervisor Architecture
Windows Azure Hypervisor Features
Performance features
Image-based deployment
The Fabric
The Fabric Controller
Coding and Modeling
Service configuration files and service models
Update domains
Fault domain
Provisioning and Deployment
Management and Monitoring
Summary
3. Your First Cloud App
Signing Up for Windows Azure
The Windows Azure Tool Set
Getting and Installing the Tools
Satisfying the Prerequisites
Getting to Know the SDK and Tools
Understanding the Development Fabric
Differentiating between the cloud and the Dev Fabric
Development Storage
Developing Your First Cloud Application
Writing the Code
Packing the Code for the Dev Fabric
Running the Code in the Dev Fabric
Running the Code in the Cloud
Packaging code for the cloud
Creating a new hosted service project
Uploading packages
Using the Visual Studio Tools
Summary
4. Service Model
Understanding Windows Azure Roles
Role Instances
Role instances and the load balancer
Controlling the number of instances
Role Size
Service Definition and Configuration
Service Definition
Service Configuration
Introducing the Service Runtime API
Accessing Configuration Settings
Understanding Endpoints
Understanding Inter-Role Communication
Subscribing to Changes
Looking at Worker Roles in Depth
Creating Worker Roles
Understanding the Worker Role Life Cycle
Understanding Worker Role Patterns
Queue-based, asynchronous processing
Caching layer
Summary
5. Managing Your Service
Common Themes Across Windows Azure Services
Windows Azure Developer Portal
Service Management API
Operations
API Authentication
Creating an X.509 Certificate
Uploading the X.509 Certificate
Making API Requests
Using Csmanage
Dealing with Upgrades
In-Place Upgrade
VIP Swap
Summary
6. Native and Non-.NET Code
The Windows Azure Sandbox
Hypervisor and Standard User Privileges
Windows Azure Partial Trust
Full Trust and Native Code
Peeking Under the Hood with a Command Shell
Building the Command Shell Proxy
Enabling Native Code Execution
Running the Command Proxy
Running Non-.NET Languages
Understanding FastCGI and PHP
What Is FastCGI?
FastCGI on Windows Azure
Enabling FastCGI mode
PHP on Windows Azure
Finding and adding a PHP FastCGI implementation
Hooking up the PHP support
Writing and running PHP
“Gotchas” with Running Native Code
Summary
7. Storage Fundamentals
Accepting the New Storage System
Windows Azure Storage Characteristics
Lots and Lots of Space
Distribution
Scalability
Replication
Consistency
RESTful HTTP APIs
Geodistribution
Pay for Play
Windows Azure Storage Services
Blob Storage
Queue Storage
Table Storage
SQL Azure
Getting Started with a Storage Account
Signing Up for a Storage Account
Picking a Geographic Location
Affinity Groups
Pricing
Working with the REST API
Understanding the RESTful API Resources
HTTP Requests and Responses
URL
Headers
HTTP method
Status codes
Building a Storage Client
Understanding Authentication and Request Signing
Using the Signing Algorithm
Creating and Uploading Stuff
Using the SDK and Development Storage
Installation and Prerequisites
Using Cloud Drive
Using the Development Storage
Summary
8. Blobs
Understanding the Blob Service
Using Blobs
Filesystem replacement
Heavily accessed data
Backup server
File-share in the cloud
Pricing
Data Model
Blob
Container
Storage account
Usage Considerations
Requests Could Fail
Changes Are Reflected Instantly
Compressed Content
Using the Blob Storage API
Using the Storage Client Library
Using Containers
Understanding Names and URIs
Creating a Container
Using an Access Policy
Listing Containers
Using Metadata
Deleting Containers
Using Blobs
Names and Paths
Creating and Deleting a Block Blob
MD5 hashes
Content-Type and Content-Encoding
Deleting a blob
Viewing a blob
Compressed Content
Reading Blobs
Conditional Reads
Listing, Filtering, and Searching for Blobs
Copying Blob
Understanding Block Blobs
Using Blocks
PUT Block
Block ID
Put BlockList
Understanding Page Blobs
Pages
Windows Azure XDrive
XDrive Internals
CDN Access and Custom Domain Names
Using Custom Domains
Summary
9. Queues
Understanding the Value of Queues
Decoupling Components
Scaling Out
Load Leveling
Windows Azure Queue Overview
Architecture and Data Model
The Life of a Message
Queue Usage Considerations
Messages can be repeated (idempotency)
Messages can show up out of order
Time skew/late delivery
Understanding Queue Operations
Creating a Queue
Using Queue Metadata
Counting Queue Messages
Listing Queues
Deleting Queues
Understanding Message Operations
Enqueuing a Message
Understanding Message TTL
Peeking at a Message
Getting Messages
Deleting Messages
Deleting and Using PopReceipts
Summary
10. Tables
Windows Azure Table Overview
Core Concepts
Understanding tables
Understanding entities
Understanding properties
Correlating to database terminology
Azure Tables Versus Traditional Databases
Denormalized data
No schema
No distributed transactions
Black box
Row size limits
Lack of support for familiar tools
ADO.NET Data Services Primer
Exposing Data Services
Consuming Data Services
DataServiceContext and DataServiceQuery
LINQ support
Table Operations
Creating Tables
Creating Entities
Querying Data
Using Partitioning
Picking the right partition key
Testing the theory
Understanding Pagination
Updating Entities
Deleting Tables
Deleting Entities
Summary
11. Common Storage Tasks
Exploring Full-Text Search
Understanding Full-Text Search
Indexing
Documents and terms
Case folding and stemming
Inverted indexes
Building an FTS Engine on Azure
Picking a data source
Setting up the project
Modeling the data
Adding a mini console
Creating the tables
Stemming
Indexing
Searching for a single term
Searching multiple terms
Ideas for improvement
Modeling Data
One-to-Many
Many-to-Many
Making Things Fast
Secondary Indexes
Entity Group Transactions
Using entity group transactions
Utilizing Concurrent Updates
Summary
12. Building a Secure Backup System
Developing a Secure Backup System
Understanding Security
Protecting Data in Motion
Protecting Data at Rest
Understanding the Basics of Cryptography
Encryption/decryption
Symmetric key algorithms
Asymmetric key algorithms (public key cryptography)
Cryptographic hash
Determining the Encryption Technique
Generating Keys
Compressing Backup Data
Encrypting Data
Generating a unique Ksym
Encrypting using AES-256
Encrypting Ksym using Kenc
Decrypting Data
Signing and Validating Data
Putting the Cryptography Together
Uploading Efficiently Using Blocks
Usage
Summary
13. SQL Azure
Creating and Using a SQL Azure Database
Creating a Database
Adding Firewall Rules
Using SQL Server Management Studio
Using ADO.NET
Differences Between SQL Azure and SQL Server
Resource Restrictions
Language/Feature Differences
Tips and Tricks
Summary
Index
About the Author
Colophon
← Prev
Back
Next →
← Prev
Back
Next →