Architecting for Scale. How to Maintain High Availability and Manage Risk in the Cloud. 2nd Edition - Helion
ISBN: 978-14-920-5712-3
stron: 268, Format: ebook
Data wydania: 2020-02-28
Księgarnia: Helion
Cena książki: 194,65 zł (poprzednio: 226,34 zł)
Oszczędzasz: 14% (-31,69 zł)
Every day, companies struggle to scale critical applications. As traffic volume and data demands increase, these applications become more complicated and brittle, exposing risks and compromising availability. With the popularity of software as a service, scaling has never been more important.
Updated with an expanded focus on modern architecture paradigms such as microservices and cloud computing, this practical guide provides techniques for building systems that can handle huge quantities of traffic, data, and demand—without affecting the quality your customers expect. Architects, managers, and directors in engineering and operations organizations will learn how to build applications at scale that run more smoothly and reliably to meet the needs of customers.
- Learn how scaling affects the availability of your services, why that matters, and how to improve it
- Dive into a modern service-based application architecture that ensures high availability and reduces the effects of service failures
- Explore the Single Team Owned Service Architecture paradigm (STOSA)—a model for scaling your development organization in tandem with your application
- Understand, measure, and mitigate risk in your systems
- Use the cloud to build highly scalable applications
Osoby które kupowały "Architecting for Scale. How to Maintain High Availability and Manage Risk in the Cloud. 2nd Edition", wybierały także:
- Terraform w praktyce. Kurs video. Architektura serverless i us 164,31 zł, (59,15 zł -64%)
- Microsoft Azure. Kurs video. Zostań administratorem systemów IT 169,00 zł, (76,05 zł -55%)
- Amazon Web Services (AWS). Kurs video. Zostań administratorem systemów IT 199,00 zł, (89,55 zł -55%)
- Flutter i Dart. Receptury. Tworzenie chmurowych aplikacji full stack 69,00 zł, (34,50 zł -50%)
- AWS dla architekt 139,00 zł, (69,50 zł -50%)
Spis treści
Architecting for Scale. How to Maintain High Availability and Manage Risk in the Cloud. 2nd Edition eBook -- spis treści
- Forewords
- Foreword for Second Edition
- Foreword for First Edition
- Preface
- Who Should Read This Book
- Why I Wrote This Book
- A Word on Scale Today
- Whats New in the Second Edition
- Using the Cloud
- Services Versus Microservices
- Modern Digital Customer Experiences
- Navigating This Book
- Tenet 1. Availability: Maintaining Availability in Modern Applications
- Tenet 2. Modern Application Architecture: Using Services
- Tenet 3. Organization: Scaling Your Organization for Modern Applications
- Tenet 4. Risk: Risk Management for Modern Applications
- Tenet 5. Cloud: Utilizing the Cloud
- Online Resources
- Conventions Used in This Book
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Tenet 1. Availability: Maintaining Availability in Modern Applications
- 1. Understanding, Measuring, and Improving Your Availability
- Availability Versus Reliability
- What Causes Poor Availability?
- Measuring Availability
- The Nines
- Planned Outages Are Still Outages
- Availability by the Numbers
- Improving Your Availability When It Slips
- Measure and Track Your Current Availability
- Automate Your Manual Processes
- Automated deploys
- Configuration management
- Change experiments and high frequency changes
- Automated change sanity testing
- Improve Your Systems
- Keep on Top of Availability in Your Changing and Growing Application
- Five Focuses to Improve Application Availability
- Focus #1: Build with Failure in Mind
- Design
- Dependencies
- Customers
- Focus #2: Always Think About Scaling
- Focus #3: Mitigate Risk
- Focus #4: Monitor Availability
- Focus #5: Respond to Availability Issues in a Predictable and Defined Way
- Focus #1: Build with Failure in Mind
- Being Prepared
- 2. Two Mistakes HighHaving Room to Recover from Mistakes
- Two Mistakes High
- Scenario #1: Losing a Node
- Scenario #2: Problems During Upgrades
- Scenario #3: Data Center Resiliency
- Then how many servers do you need?
- Scenario #4: Hidden Shared Failure Types
- Scenario #5: Failure Loops
- Managing Your Applications
- The Space Shuttle
- Two Mistakes High
- II. Tenet 2. Modern Application Architecture: Using Services
- 3. Using Services
- The Monolith Application Versus the Service-Based Application
- The Ownership Benefit
- The Scaling Benefit
- Splitting into Services
- What Should Be a Service?
- Dividing into Services
- Guideline #1: Specific Business Requirements
- Guideline #2: Distinct and Separable Team Ownership
- Separate team for security reasons
- Guideline #3: Naturally Separable Data
- Guideline #4: Shared Capabilities/Data
- Mixed Reasons
- Going Too Far
- Finding the Right Balance
- The Monolith Application Versus the Service-Based Application
- 4. Services and Data
- Stateless ServicesServices Without Data
- Stateful ServicesServices with Data
- Data Partitioning
- Timely Handling of Growing Pains
- 5. Dealing with Service Failures
- Cascading Service Failures
- Responding to a Service Failure
- Predictable Response
- Understandable Response
- Reasonable Response
- Determining Failures
- Appropriate Action
- Graceful Degradation
- Graceful Backoff
- Fail as Early as Possible
- Customer-Caused Problems
- Provide service limits
- Summary
- III. Tenet 3. Organization: Scaling Your Organization for Modern Applications
- 6. Service OwnershipSTOSA
- Single Team Owned Service Architecture
- Advantages of a STOSA Application and Organization
- What Does It Mean to Own a Service?
- Using Core Teams and Services
- Summary
- 7. Service Tiers
- Application Complexity
- What Are Service Tiers?
- Assigning Service Tier Labels to Services
- Tier 1
- Tier 2
- Tier 3
- Tier 4
- Assigning Service Tier Labels to Services
- Example: Online Store
- Using Service Tiers
- Expectations
- Responsiveness
- Dependencies
- Critical dependency
- Noncritical dependency
- Summary
- 8. Service-Level Agreements
- What Are SLAs?
- External Versus Internal SLAs
- Why Are Internal SLAs Important?
- SLAs as trust
- Why Are Internal SLAs Important?
- SLAs for Problem Diagnosis
- Performance Measurements for SLAs
- Limit SLAs
- Top Percentile SLAs
- SLA Conditionals
- How Many and Which Internal SLAs?
- Why Internal SLAs Are Important
- IV. Tenet 4. Risk: Risk Management for Modern Applications
- 9. Using Risk Management When Architecting for Scale
- Identify Risk
- Remove Worst Offenders
- Mitigate
- Review Regularly
- Managing Risk Summary
- Likelihood Versus Severity
- The Top 10 List: Low Likelihood, Low Severity Risk
- The Order Database: Low Likelihood, High Severity Risk
- Custom Fonts: High Likelihood, Low Severity Risk
- T-Shirt Photos: High Likelihood, High Severity Risk
- The Risk Matrix
- Scope of the Risk Matrix
- Creating the Risk Matrix
- Brainstorming the list
- Set the likelihood and severity fields
- Risk item details
- Mitigation plan
- Triggered plan
- Using the Risk Matrix for Planning
- Maintaining the Risk Matrix
- Risk Mitigation
- Recovery Plans
- Disaster Recovery Plans
- Improving Our Risk Situation
- Identify Risk
- 10. Game Days
- Staging Versus Production Environments
- Staging/Test Environments
- Production Environments
- Concerns with Running Game Days in Production
- Summary
- Staging Versus Production Environments
- 11. Building Systems with Reduced Risk
- Technique #1: Introduce Redundancy
- Idempotent Interfaces
- Redundancy Improvements That Increase Complexity
- Technique #2: Understand Independence
- Technique #3: Manage Security
- Technique #4: Encourage Simplicity
- Technique #5: Build in Self-Repair
- Technique #6: Standardize on Operational Processes
- Summary
- Technique #1: Introduce Redundancy
- V. Tenet 5. Cloud: Utilizing the Cloud
- 12. Getting Started Architecting for Scale with the Cloud
- Six Levels of Cloud Maturity
- Level 1: Experimenting with the Cloud
- Level 2: Securing the Cloud
- Level 3: Using Servers and Applications in the Cloud
- Level 4: Enabling Value-Added Managed Services
- Level 5: Enabling Cloud-Unique Services
- Level 6: Cloud All In
- Organization Versus Application Maturity Level
- Cloud Adoption Mistakes
- Trap #1: Not Trusting Cloud Security
- Trap #2: Performing Cloud Migration via Lift-and-Shift
- Trap #3: The Lure of ServerlessDepending Too Much on the Hype
- When and How to Use Multiple Clouds
- Defining What We Mean by Multiple Clouds
- Joint cloud applications
- Selective cloud applications
- Single cloud applications
- Which Model? Which Cloud?
- Defining What We Mean by Multiple Clouds
- The Cloud in Summary
- Six Levels of Cloud Maturity
- 13. Five Industry Trends Changed by the Cloud
- What Has Changed in the Cloud?
- Change #1: Acceptance of Microservice-Based Architectures
- Change #2: Smaller, More Specialized Cloud Services
- Change #3: Greater Focus on the Application
- Change #4: The Micro Startup
- Change #5: Security and Compliance Has Matured
- Change Continues
- What Has Changed in the Cloud?
- 14. Types of SaaS and Tenancy
- Comparing Managed Hosting and Different Types of SaaS
- Managed Hosting
- Multi-Tenant SaaS
- Single-Tenant SaaS
- Mixing Different Types of SaaS
- Common SaaS Characteristics
- SaaS Versus Managed Hosting
- Summary
- Comparing Managed Hosting and Different Types of SaaS
- 15. Distributing Your Application in the AWS Cloud
- AWS Architecture
- AWS Region
- AWS Availability Zone
- Data Center
- Architecture Overview
- Availability Zones Are Not Data Centers
- Maintaining Location Diversity for Availability Reasons
- AWSMapping Availability Zones in Multiple Accounts
- Distributing Your Application
- AWS Architecture
- 16. Managed Infrastructure
- Structure of Cloud-Based Services
- Raw Resource
- Where you can see the impact of using raw resources
- Server-Based Managed Resource
- Where you can see the impact of using server-based managed resources
- Serverless Managed Resource
- Why serverless?
- Raw Resource
- Implications of Using Managed Versus Non-Managed Resources
- Summary
- Structure of Cloud-Based Services
- 17. Cloud Resource Allocation
- Usage-Based Resources Allocation
- Allocated-Capacity Resource Allocation
- Changing Allocations
- Automated Allocation of Resource Capacity
- Issues with Automatic Allocation
- Dynamic Allocation, Dynamic Cost
- Reserved capacity
- Pros and Cons of Usage-Based Versus Allocated-Capacity
- 18. Serverless and Functions as a Service
- Example Application #1: Event Processing
- Example Application #2: Mobile Backend
- Example Application #3: Internet of Things Data Intake
- Advantages and Disadvantages of FaaS
- Serverless Hype and the Future of FaaS
- 19. Edge Computing
- Edge Computing Today
- Why We Care
- What Should Be in the Edge Versus the Cloud?
- How Do We Decide? The Driverless Car
- Edge Scaling Isnt the Same as Cloud Scaling
- Criteria for Using Edge Versus Cloud
- Eight Keys to Success in the Edge
- #1: Be Smart About What Goes on the Edge
- #2: Dont Ignore DevOps Principles in the Edge
- #3: Nail a Highly Distributed Deployment Strategy
- #4: Reduce Versioning as Much as Possible
- #5: Reduce Per Node Provisioning and Configuration Options
- #6: Scaling Is an Edge Issue, Not Just a Cloud Issue
- #7: Nail Monitoring and Analytics
- #8: The Edge Is Not Magic
- Edge Computing Overall
- 20. Geographic Impact on Using the Cloud
- Cloud Matters Everywhere, But at Different Levels
- Replacement Mentality Impacts How You Adopt Cloud
- Which Cloud Is Most Important?
- Important Technologies Differ
- Data Sovereignty Is Universal
- My Take
- VI. Conclusion
- 21. Putting It All Together
- Tenet #1Availability
- Tenet #2Architecture
- Tenet #3Organization
- Tenet #4Risk
- Tenet #5Cloud
- Architecting for Scale
- Index