1st Edition

Zen of Cloud Learning Cloud Computing by Examples on Microsoft Azure

By Haishi Bai Copyright 2015
    507 Pages 457 B/W Illustrations
    by CRC Press

    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