You are previewing Hardening Azure Applications.
O'Reilly logo
Hardening Azure Applications

Book Description

Learn what it takes to build large scale, mission critical applications -hardened applications- on the Azure cloud platform.

This 208 page book covers the techniques and engineering principles that every architect and developer needs to know to harden their Azure/.NET applications to ensure maximum reliability and high availability when deployed at scale. While the techniques are implemented in .NET and optimized for Azure, the principles here will also be valuable for users of other cloud-based development platforms.

Applications come in a variety of forms, from simple apps that can be built and deployed in hours to mega-scale apps that need significantly higher engineering rigor and robust organizations to deliver them. How do you build such massively scalable applications to keep pace with traffic demands while always being ‘online’ with five 9's availability?

The authors take you step by step through the process of evaluating and building applications with the appropriate hardness attributes. For example, it is easy to say that an application should be available "all the time", but it is very important to understand what each level of 9 for availability means and the resulting implications on engineering and resources. The book explains the details required for developers and IT Pros to get it right in Azure.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Dedication
  5. Contents at a Glance
  6. Contents
  7. About the Authors
  8. About the Technical Reviewers
  9. Acknowledgments
  10. Foreword
  11. Additional Foreword
  12. Introduction
  13. Chapter 1: Introducing the Cloud Computing Platform
    1. Cloud and Platform
    2. Relevance of the Cloud Platform
    3. Cloud Platform Benefits
    4. Your Application and Cloud Platform Matchup
      1. Does Your Application Belong on the Cloud Platform?
    5. On-premises and Cloud Platform Integration
    6. Heterogeneity of the Cloud Platform
    7. Trust and Security
    8. Cloud Platform Services
      1. Compute Services
      2. Networking
      3. Storage and Data Services
      4. App Services
    9. Summary
  14. Chapter 2: Cloud Applications
    1. Cloud Application and Platforms
      1. What’s aaS?
      2. Platform Types
      3. Infrastructure-as-a-Service (IaaS)
      4. Platform-as-a-Service (PaaS)
      5. Software-as-a-Service (SaaS)
    2. Other Cloud Application Platforms
      1. Cloud Web Services
      2. Cloud Managed Services
    3. Cloud Application Deployment Models
      1. Public Cloud Platform
      2. Private Cloud
      3. Hybrid Cloud
    4. Summary
  15. Chapter 3: Hardened Cloud Applications
    1. Hardened Applications
    2. Hello World vs. Real World?
    3. Real-World and Hardened Applications
      1. Availability
      2. Reliability
      3. Scalability
      4. Recoverability
      5. Security
      6. Low Latency
    4. Modern Organization
      1. Engineering
      2. Support
    5. Summary
  16. Chapter 4: Service Fundamentals: Instrumentation, Telemetry, and Monitoring
    1. Instrumentation
      1. Best practices for Designing the Instrumentation
      2. High-value and High-volume Data
      3. Event Tracing
      4. Azure Diagnostics
    2. Telemetry
      1. Best Practices for Designing Telemetry
    3. Monitoring
      1. Typical Monitoring Solutions
      2. Best Practices for Designing Monitoring
    4. Vendor and Third-Party Solutions
    5. Summary
  17. Chapter 5: Key Application Experiences: Latency, Scalability, and Throughput
    1. Latency
      1. Factors That Affect Latency
      2. Best Practices
    2. Scalability
      1. Scaling Up
      2. Scaling Out
      3. Best Practices
    3. Throughput
      1. Best Practices
    4. Summary
  18. Chapter 6: Failures and Their Inevitability
    1. Case Studies of Major Cloud Service Failures
      1. Azure Blob Storage Failure
      2. Amazon Web Services Failure
    2. Measuring Failures
    3. Failure Categories
      1. Hard Failure
      2. Soft Failure
      3. Gray Failures
    4. Preparing for Failure
      1. Design for Failure and a Quick Recovery
      2. Minimizing Human Error
    5. Summary
  19. Chapter 7: Failures and Recovery
    1. Design Best Practices
      1. Failure Domains
      2. Loose Coupling
      3. Scale-Out to More, and for Cheaper
    2. Testing Best Practices
      1. Sandboxing
      2. Scenario Testing
    3. Failure-Detection Strategies
      1. IaaS Virtual Infrastructure
      2. PaaS Application
      3. Databases
      4. Storage
      5. Network
    4. Strategies for Recovery
      1. Dev-Test-Ops Organization
      2. Remote Script Execution
    5. Summary
  20. Chapter 8: High Availability, Scalability, and Disaster Recovery
    1. High Availability
      1. Asynchronous Messaging
      2. Atomic and Idempotent Services
      3. Graceful Degradation
      4. Offline Access
    2. Scalability
      1. Implementation Patterns
    3. Disaster Recovery
      1. PaaS—SQL Offering
      2. PaaS—Storage
      3. IaaS—SQL Server as a Virtual Machine Offering
    4. Summary
  21. Chapter 9: Availability and Economics of 9s
    1. Economics of 9s
    2. Economics of (Non)-Availability
    3. Computing Availability
    4. Monitoring Availability
    5. Enforcing Availability via SLA
    6. Designing for SLA
      1. Redundant System
      2. Cold Standby System
      3. Warm Standby System
      4. Automatic Failover System
      5. Always Available System
    7. Economics of Downtime and Availability
      1. Downtime Costs
      2. Availability Costs
    8. Summary
  22. Chapter 10: Securing Your Application
    1. Security
      1. Controls
      2. Operational Security
      3. Platform Security
    2. Compliance
      1. Azure and Compliance
      2. Compliance for Your Application
    3. Privacy and Data Security
      1. Platform Services
      2. Platform Operations
      3. Role and Responsibilities
    4. Cloud Application Security
      1. Application Vulnerabilities
      2. Building Secure Applications
    5. Summary
  23. Chapter 11: The Modernization of Software Organizations
    1. The Impetus
    2. The Goal—MVP
    3. Modernization
      1. People
      2. Process
      3. Tooling
      4. Management Behaviors
    4. Summary
  24. Index