1st Edition
Zen of Cloud Learning Cloud Computing by Examples on Microsoft Azure
Zen of Cloud: Learning Cloud Computing by Examples on Microsoft Azure provides comprehensive coverage of the essential theories behind cloud computing and the Windows Azure cloud platform. Sharing the author’s insights gained while working at Microsoft’s headquarters, it presents nearly 70 end-to-end examples with step-by-step guidance on implementing typical cloud-based scenarios.
The book is organized into four sections: cloud service fundamentals, cloud solutions, devices and cloud, and system integration and project management. Each chapter contains detailed exercises that provide readers with the opportunity to develop valuable hands-on skills in cloud service development.
- Explains how to prepare for Microsoft Azure development and how to use Microsoft Azure Management Portal
- Provides best practices for designing cloud-based applications
- Includes online access to updated examples and answers to the exercises
Beginners can use this book as a guide in their journey through cloud computing. Experienced cloud developers will benefit from the specific examples and detailed guidance on implementing typical cloud-based scenarios. The examples cover a range of application types and technologies with varying levels of difficulties.
Supplying comprehensive coverage of the Windows Azure cloud platform, the book provides a practical understanding and powerful tips that readers can immediately apply to their own work—making it ideal for cloud system developers, architects, and IT professionals. Organized into easily digestible sessions, it is also ideal for use in instructional settings.
CLOUD COMPUTING FUNDAMENTALS
Overview of Cloud Computing
History
Essence of Cloud Computing
Elasticity
On and Off Mode
Rapid-Growth Mode
Availability
Fault Domain
Update Domain
Scalability
Microsoft Azure Overview
IaaS (Infrastructure as a Service)
PaaS (Platform as a Service)
SaaS (Software as a Service)
Cost Calculation
Preparing the Development Environment for Microsoft Azure
Subscribe to Microsoft Azure
Install Software Development Kit
Introduction of Microsoft Azure Management Portal
Sign In
Page Layout
Summary
Building Websites on the Cloud
Microsoft Azure Websites
Website Deployment and Upgrade
Integration with Source Control Systems
Scaling of Websites
Vertical Scaling
Horizontal Scaling
Autoscaling
Migrating Existing ASP.NET Website
Azure Websites Runtime Environment
Data Storage
Session States
Website Gallery
Website Configuration
Website Diagnostics and Monitoring
Website Diagnostics
Website Monitoring
Custom Domain Names
Summary
Cloud Service Fundamentals
Microsoft Azure Cloud Services
Cloud Services and Roles
Role
Cloud Service
Basic Steps of Cloud Service Deployment
Cloud Service Deployments and Upgrades
Incremental Updates (Update Domain Walk)
Simultaneous Updates
Multiple Deployment Environments
Instances and Load Balancing
Instances
Load Balancing
Configuration File and Definition File
Cloud Service Definition File (.csdef)
Cloud Service Configuration File (.cscfg)
Summary
Advanced Cloud Service
Endpoint Types
Input Endpoint
Internal Endpoint
InstanceInput Endpoint
Worker Role
Worker Role Application Scenarios
Inter-Role Communications
Options for Inter-Role Communication
Role Lifecycle
Process of Deploying and Launching a Role Instance
Role Instance Statuses
Startup Tasks
Defining Startup Tasks
Startup Task Properties
Diagnostics and Debug
Debugging Locally
Microsoft Azure Diagnostics
IntelliTrace
Monitoring Cloud Service
Developer Community
Summary
Data Storage: Relational Database
Microsoft Azure Data Storage Solutions
SQL Database Overview
Differences between an SQL Database and an SQL Server
SQL Database Management and Optimization
SQL Server Management Studio
Microsoft SQL Server Data Tools
Dynamic Management Views
Query Optimization
Data Sync and Migration
Data-Tier Application
Data Sync
Periodically Backup Your SQL Databases
Use MySQL Database
Microsoft Azure Store
Purchasing MySQL Service
Other Means to Run MySQL
Summary
Data Storage: Storage Services
Local Storage
Overview of Microsoft Azure Storage Services
Microsoft Azure Storage Account
Provisioning a Windows Storage Account
Storage Account Access Keys
Using BLOB Storage
Blob Storage Overview
Block BLOB and Page BLOB
ETag and Snapshots
REST API
Shared Access Signature and Stored Access Policies
BLOB Update, Copy, and Lease
Error Handling
Using Table Storage
Table Storage Overview
Optimizing Data Partition
Query Table Data
Other Operations
Batch Operations
Dynamic Table Entities
Shared Access Signatures
Use Queue Storage
Queue Storage Overview
Programmatically Operate Queues
Monitor Storage Accounts
Configure Storage Service Monitoring
Cost of Service Monitoring
Summary
Virtual Machines and Virtual Networks
Microsoft Azure IaaS
Disk Images and Virtual Disks
Virtual Machine Communications
Virtual Machine Endpoints
Virtual Machines under the Same Cloud Service
Virtual Networks
Virtual Networks Overview
Point-to-Site Virtual Network
Site-to-Site Virtual Network
ExpressRoute
Summary
CLOUD SOLUTIONS
Cloud Solution Architecture
Client/Server
Characteristics of Client/Server Architecture
Benefits
Shortcomings
Client/Server Architecture on Cloud
Multitenant System Design
Migrating Client/Server Systems to Cloud
Client/Server Systems on Microsoft Azure
Mobile Clients
Browser/Server
Characteristics of Browser/Server Architecture
Browser/Server Architecture on Cloud
Difficulties of Adapting an Existing Single-Tenant Browser/Server Application for Multitenancy
Host Single-Tenant Systems on Microsoft Azure for Multiple Tenants
n-Tiered Architecture
Characteristics of n-Tiered Architecture
n-Tier, MVC, and MVVM
Microsoft Azure Service Bus Queue
Implementing n-Tiered Services on Microsoft Azure
Distributed System
Message-Based Connections
Relayed Connections
Summary
High-Availability Design
Availability
High-Availability Techniques
Redundancy
Load Balancing
Failover
Load Balancing and Health Probe
Competing Consumers
Loose Coupling
Dynamic Load Balancing
Dynamic Scaling
Failover
Case Study: High-Availability Service Bus Entities
Background
Segmented Message Pipelines
Paired Namespaces
Conclusion
Summary
High-Reliability Design
Reliability, Availability, and Maintainability
Reliability
Maintainability
Relationships between Availability, Reliability, and Maintainability
Embracing Failures
Failures in Operation
Failures in State Management
Failures in System Design and Implementation
Transient Errors
Transient Fault Handling Application Block
Design for Reliability
Single Point of Failure
Writing Reliable Code
Summary
High-Performance Design
Microsoft Azure In-Role Cache
Overview
Deployment Options
Cache Features
Concurrency Modes
Local Cache
Session State
Microsoft Azure Cache Service
Overview
Cache Service versus In-Role Cache
Managing Cache Clusters on Microsoft Azure Management Portal
Memcache Support
Future of Azure Cache
Microsoft Azure CDN
Asynchronous Operations and Parallel Operations
Summary
Claim-Based Architecture
Claim-Based Authentication and Authorization
Basic Authentication and Authorization Process
Authentication and WIF
Authentication Broker
Introduction to Microsoft Azure AD
Managing Microsoft Azure Tenants and Users
Graph API
Microsoft Azure AD New Features
Azure Authentication Library
Microsoft Azure Active Directory Premium
Summary
DEVICES AND CLOUD
Mobile Service
Mobile Service Overview
Push Notifications
Push Notification Overview
Scheduler and API
Summary
Internet of Things
IoT Overview
Radio Frequency Identification
Artificial Intelligence Equipment
Wearable Devices
Wireless Sensor Network
Devices and Cloud
Importance of Devices for Cloud
Importance of Cloud for Devices
Challenges of IoT.NET Micro Framework
.NET Micro Framework Overview
.NET Gadgeteer Overview
Device Integration Sample Scenario
Summary
SYSTEM INTEGRATION AND PROJECT MANAGEMENT
Message-Based System Integration
System Integration
Integration by Data
Shared Business Functions
Enterprise Service Bus
Message-Based System Integration
Content-Based Routing
Priority Queue
Request/Response
Dead Letter Queue
Event-Driven Consumer
Advanced Message Queuing Protocol
AMQP Overview
AMQP Adoption
Advantages of Message-Based Integration
Loose Coupling
Dynamic Extension
Asynchronous Communication
Centralized Management
Summary
Source Control and Tests with Visual Studio Online
Create a Visual Studio Online Account
Source Control with Visual Studio Online
Create and Use Unit Tests
Create and Use Load Tests
Summary
Scripting and Automation
Microsoft Azure PowerShell Cmdlets
Preparing a Microsoft Azure PowerShell Cmdlets Environment
Managing Virtual Machines
Managing Cloud Services
Managing Microsoft Azure Websites
Other Cmdlets
Microsoft Azure Cross-Platform Command Line Tools
Installing the Command Line Tools
Getting Started with the Command Line Tools
Microsoft Azure Management API
Summary
Azure and DevOps
DevOps Overview
Everything Is Code
Everyone Is a Developer
Every Day Is Release Day
VM Agent and VM Extensions
VM Agent
VM Extensions
Custom Script Extension
DSC, Puppet, and Chef
New Portal
Zen of Cloud
Bibliography
Index
Biography
Haishi Bai is a Principal Software Engineer at Microsoft Azure. He wrote his first program when he was 12, and ever since, the world has been all about software and services. In his 20 years of professional life, he’s been engaged in various areas ranging from finance to public safety, and he’s taken on different roles such as architect, development lead, and project manager. He’s also a passionate educator who loves to share his knowledge. He’s the author of 8 cloud computing books (including this one). He runs a technical blog at http://blog.haishibai.com that focuses on cloud technologies. He’s also a volunteer teacher teaching Java in high schools.
This book by Haishi Bai provides a detailed introduction to cloud computing, in general, and to Microsoft Azure, in particular. Haishi Bai has had an extensive and successful career in information systems, which brought him from the Northeast of China to Beijing and then finally to Silicon Valley and to the Microsoft Head Office in Redmond as a Microsoft Azure evangelist. His experience in the rise and fall of e-business, boom of social networks, and rise of cloud computing provides him a deep understanding of the pros and cons in cloud computing.
This book explains the various concepts of Azure in a logical and clear manner. ... The book consists of 69 complete end-to-end examples that provide step-by-step guidance on implementing typical cloud-based scenarios. The examples cover a wide range of application types and technologies with different levels of difficulties. ... The book also provides practical tips and tricks that you can apply to your own work.
—Pierre Masai, CIO of Toyota Motor Europe