Cloud Architecture Patterns

Book description

If your team is investigating ways to design applications for the cloud, this concise book introduces 11 architecture patterns that can help you take advantage of cloud-platform services. You’ll learn how each of these platform-agnostic patterns work, when they might be useful in the cloud, and what impact they’ll have on your application architecture. You’ll also see an example of each pattern applied to an application built with Windows Azure.

Table of contents

  1. Cloud Architecture Patterns
  2. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  3. Preface
    1. Audience
    2. Why This Book Exists
    3. Assumptions This Book Makes
    4. Contents of This Book
    5. Building Page of Photos on Windows Azure
    6. Terminology
    7. Conventions Used in This Book
    8. Using Code Examples
    9. Safari® Books Online
    10. How to Contact Us
    11. Acknowledgments
  4. 1. Scalability Primer
    1. Scalability Defined
      1. Vertically Scaling Up
      2. Horizontally Scaling Out
      3. Describing Scalability
      4. The Scale Unit
    2. Resource Contention Limits Scalability
      1. Easing Resource Contention
    3. Scalability is a Business Concern
    4. The Cloud-Native Application
      1. Cloud Platform Defined
      2. Cloud-Native Application Defined
    5. Summary
  5. 2. Horizontally Scaling Compute Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Cloud Scaling is Reversible
        1. Cloud scaling terminology
      2. Managing Session State
        1. Session state varies by application tier
        2. Sticky sessions in the web tier
        3. Stateful node challenges
        4. Session state without stateful nodes
        5. Stateless service nodes in the service tier
      3. Managing Many Nodes
        1. Efficient management enables horizontal scaling
        2. Capacity planning for large scale
        3. Sizing virtual machines
        4. Failure is partial
        5. Operational data collection
    4. Example: Building PoP on Windows Azure
      1. Web Tier
      2. Stateless Role Instances (or Nodes)
      3. Service Tier
      4. Operational Logs and Metrics
    5. Summary
  6. 3. Queue-Centric Workflow Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Queues are Reliable
      2. Programming Model for Receiver
        1. Invisibility window and at-least-once processing
        2. Idempotent processing for repeat messages
        3. Poison messages handling for excessive repeats
      3. User Experience Implications
      4. Scaling Tiers Independently
    4. Example: Building PoP on Windows Azure
      1. User Interface Tier
      2. Service Tier
      3. Synopsis of Changes to Page of Photos System
    5. Summary
  7. 4. Auto-Scaling Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Automation Based on Rules and Signals
      2. Separate Concerns
      3. Be Responsive to Horizontally Scaling Out
      4. Don’t Be Too Responsive to Horizontally Scaling In
      5. Set Limits, Overriding as Needed
      6. Take Note of Platform-Enforced Scaling Limits
    4. Example: Building PoP on Windows Azure
      1. Throttling
      2. Auto-Scaling Other Resource Types
    5. Summary
  8. 5. Eventual Consistency Primer
    1. CAP Theorem and Eventual Consistency
    2. Eventual Consistency Examples
    3. Relational ACID and NoSQL BASE
    4. Impact of Eventual Consistency on Application Logic
      1. User Experience Concerns
      2. Programmatic Differences
    5. Summary
  9. 6. MapReduce Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. MapReduce Use Cases
      2. Beyond Custom Map and Reduce Functions
      3. More Than Map and Reduce
    4. Example: Building PoP on Windows Azure
    5. Summary
  10. 7. Database Sharding Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Shard Identification
      2. Shard Distribution
      3. When Not to Shard
      4. Not All Tables Are Sharded
      5. Cloud Database Instances
    4. Example: Building PoP on Windows Azure
      1. Rebalancing Federations
      2. Fan-Out Queries Across Federations
      3. NoSQL Alternative
    5. Summary
  11. 8. Multitenancy and Commodity Hardware Primer
    1. Multitenancy
      1. Security
      2. Performance Management
      3. Impact of Multitenancy on Application Logic
    2. Commodity Hardware
      1. Shift in Emphasis from MTBF to MTTR
      2. Impact of Commodity Hardware on Application Logic
      3. Homogeneous Hardware
    3. Summary
  12. 9. Busy Signal Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Transient Failures Result in Busy Signals
      2. Recognizing Busy Signals
      3. Responding to Busy Signals
      4. User Experience Impact
      5. Logging and Reducing Busy Signals
      6. Testing
    4. Example: Building PoP on Windows Azure
    5. Summary
  13. 10. Node Failure Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Failure Scenarios
      2. Treat All Interruptions as Node Failures
      3. Maintain Sufficient Capacity for Failure with N+1 Rule
      4. Handling Node Shutdown
        1. Node shutdown with minimal impact to user experience
        2. Node shutdown without losing partially completed work
        3. Node shutdown without losing operational data
      5. Recovering From Node Failure
        1. Shielding interactive users from failures
        2. Resuming work-in-progress on backend systems
    4. Example: Building PoP on Windows Azure
      1. Preparing PoP for Failure
        1. N+1 rule
        2. Windows Azure fault domains
        3. Upgrade domains
      2. Handling PoP Role Instance Shutdown
        1. Web role instance shutdown
        2. Worker role instance shutdown
        3. Use controlled reboots
      3. Recovering PoP From Failure
    5. Summary
  14. 11. Network Latency Primer
    1. Network Latency Challenges
    2. Reducing Perceived Network Latency
    3. Reducing Network Latency
    4. Summary
  15. 12. Colocate Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Automation Helps
      2. Cost Considerations
      3. Non-Technical Considerations
    4. Example: Building PoP on Windows Azure
      1. Affinity Groups
      2. Operational Logs and Metrics
    5. Summary
  16. 13. Valet Key Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Public Access
      2. Granting Temporary Access
      3. Security Considerations
    4. Example: Building PoP on Windows Azure
      1. Public Read Access
      2. Shared Access Signatures
    5. Summary
  17. 14. CDN Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Caches Can Be Inconsistent
    4. Example: Building PoP on Windows Azure
      1. Cost Considerations
      2. Security Considerations
      3. Additional Capabilities
    5. Summary
  18. 15. Multisite Deployment Pattern
    1. Context
      1. Cloud Significance
    2. Impact
    3. Mechanics
      1. Non-Technical Considerations in Data Center Selection
      2. Cost Implications
      3. Failover Across Data Centers
    4. Example: Building PoP on Windows Azure
      1. Choosing a Data Center
      2. Routing to the Closest Data Center
      3. Replicating User Data for Performance
      4. Replicating Identity Information for Account Owners
      5. Data Center Failover
      6. Colocation Alternatives
    5. Summary
  19. A. Further Reading
    1. Page of Photos (PoP) Sample
    2. Resources From Preface and Chapters
      1. Chapter 1
      2. Chapter 2
      3. Chapter 3
      4. Chapter 4
      5. Chapter 5
      6. Chapter 6
      7. Chapter 7
      8. Chapter 8
      9. Chapter 9
      10. Chapter 10
      11. Chapter 11
      12. Chapter 12
      13. Chapter 13
      14. Chapter 14
      15. Chapter 15
  20. Index
  21. About the Author
  22. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  23. Copyright

Product information

  • Title: Cloud Architecture Patterns
  • Author(s):
  • Release date: September 2012
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449319779