You are previewing DevOps: A Software Architect’s Perspective.
O'Reilly logo
DevOps: A Software Architect’s Perspective

Book Description

DevOps promises to accelerate the release of new software features and improve monitoring after systems are placed into operation. However, DevOps has crucial implications for system design and architecture that most previous books ignore. In DevOps: A Software Architect's Perspective, three world-class software architects address these issues head-on, helping organizations deploy DevOps more efficiently, avoid common problems, and drive more value.

The authors begin by reviewing DevOps' impact on every phase of the development cycle, including build, test, deployment, and post-deployment monitoring and observation. For each phase, they systematically identify issues, tools, team practices, and key tradeoffs associated with preparing for DevOps and using it effectively.

Next, they turn to cross-cutting concerns that transcend a single function, offering practical insights into compliance, cloud environments, human and process performance, reliability, repeatability, and more. Throughout, they offer real-world case studies, detailed references, practical examples, and convenient checklists. You'll find indispensable guidance for addressing key questions like:

  • How can I design new systems to work more effectively with DevOps?

  • How do I address culture and communication problems between Dev and Ops?

  • How do I integrate DevOps with agile methods and TDD?

  • What are the best ways to handle specific issues such as failure detection and upgrade planning?

  • Table of Contents

    1. Cover Page
    2. About This eBook
    3. Title Page
    4. Copyright Page
    5. Contents
    6. Preface
    7. Previewing the Book
    8. Acknowledgments
    9. Legend
    10. Part One: Background
      1. Chapter 1. What Is DevOps?
        1. 1.1 Introduction
        2. 1.2 Why DevOps?
        3. 1.3 DevOps Perspective
        4. 1.4 DevOps and Agile
        5. 1.5 Team Structure
        6. 1.6 Coordination
        7. 1.7 Barriers
        8. 1.8 Summary
        9. 1.9 For Further Reading
      2. Chapter 2. The Cloud as a Platform
        1. 2.1 Introduction
        2. 2.2 Features of the Cloud
        3. 2.3 DevOps Consequences of the Unique Cloud Features
        4. 2.4 Summary
        5. 2.5 For Further Reading
      3. Chapter 3. Operations
        1. 3.1 Introduction
        2. 3.2 Operations Services
        3. 3.3 Service Operation Functions
        4. 3.4 Continual Service Improvement
        5. 3.5 Operations and DevOps
        6. 3.6 Summary
        7. 3.7 For Further Reading
    11. Part Two: The Deployment Pipeline
      1. Chapter 4. Overall Architecture
        1. 4.1 Do DevOps Practices Require Architectural Change?
        2. 4.2 Overall Architecture Structure
        3. 4.3 Quality Discussion of Microservice Architecture
        4. 4.4 Amazon’s Rules for Teams
        5. 4.5 Microservice Adoption for Existing Systems
        6. 4.6 Summary
        7. 4.7 For Further Reading
      2. Chapter 5. Building and Testing
        1. 5.1 Introduction
        2. 5.2 Moving a System Through the Deployment Pipeline
        3. 5.3 Crosscutting Aspects
        4. 5.4 Development and Pre-commit Testing
        5. 5.5 Build and Integration Testing
        6. 5.6 UAT/Staging/Performance Testing
        7. 5.7 Production
        8. 5.8 Incidents
        9. 5.9 Summary
        10. 5.10 For Further Reading
      3. Chapter 6. Deployment
        1. 6.1 Introduction
        2. 6.2 Strategies for Managing a Deployment
        3. 6.3 Logical Consistency
        4. 6.4 Packaging
        5. 6.5 Deploying to Multiple Environments
        6. 6.6 Partial Deployment
        7. 6.7 Rollback
        8. 6.8 Tools
        9. 6.9 Summary
        10. 6.10 For Further Reading
    12. Part Three: Crosscutting Concerns
      1. Chapter 7. Monitoring
        1. 7.1 Introduction
        2. 7.2 What to Monitor
        3. 7.3 How to Monitor
        4. 7.4 When to Change the Monitoring Configuration
        5. 7.5 Interpreting Monitoring Data
        6. 7.6 Challenges
        7. 7.7 Tools
        8. 7.8 Diagnosing an Anomaly from Monitoring Data—the Case of Platformer.com
        9. 7.9 Summary
        10. 7.10 For Further Reading
      2. Chapter 8. Security and Security Audits
        1. 8.1 What Is Security?
        2. 8.2 Threats
        3. 8.3 Resources to Be Protected
        4. 8.4 Security Roles and Activities
        5. 8.5 Identity Management
        6. 8.6 Access Control
        7. 8.7 Detection, Auditing, and Denial of Service
        8. 8.8 Development
        9. 8.9 Auditors
        10. 8.10 Application Design Considerations
        11. 8.11 Deployment Pipeline Design Considerations
        12. 8.12 Summary
        13. 8.13 For Further Reading
      3. Chapter 9. Other Ilities
        1. 9.1 Introduction
        2. 9.2 Repeatability
        3. 9.3 Performance
        4. 9.4 Reliability
        5. 9.5 Recoverability
        6. 9.6 Interoperability
        7. 9.7 Testability
        8. 9.8 Modifiability
        9. 9.9 Summary
        10. 9.10 For Further Reading
      4. Chapter 10. Business Considerations
        1. 10.1 Introduction
        2. 10.2 Business Case
        3. 10.3 Measurements and Compliance to DevOps Practices
        4. 10.4 Points of Interaction Between Dev and Ops
        5. 10.5 Summary
        6. 10.6 For Further Reading
    13. Part Four: Case Studies
      1. Chapter 11. Supporting Multiple Datacenters
        1. 11.1 Introduction
        2. 11.2 Current State
        3. 11.3 Business Logic and Web Tiers
        4. 11.4 Database Tier
        5. 11.5 Other Infrastructure Tools
        6. 11.6 Datacenter Switch
        7. 11.7 Testing
        8. 11.8 Summary
        9. 11.9 For Further Reading
      2. Chapter 12. Implementing a Continuous Deployment Pipeline for Enterprises
        1. 12.1 Introduction
        2. 12.2 Organizational Context
        3. 12.3 The Continuous Deployment Pipeline
        4. 12.4 Baking Security into the Foundations of the CD Pipeline
        5. 12.5 Advanced Concepts
        6. 12.6 Summary
        7. 12.7 For Further Reading
      3. Chapter 13. Migrating to Microservices
        1. 13.1 Introduction to Atlassian
        2. 13.2 Building a Platform for Deploying Microservices
        3. 13.3 BlobStore: A Microservice Example
        4. 13.4 Development Process
        5. 13.5 Evolving BlobStore
        6. 13.6 Summary
        7. 13.7 For Further Reading
    14. Part Five: Moving Into the Future
      1. Chapter 14. Operations as a Process
        1. 14.1 Introduction
        2. 14.2 Motivation and Overview
        3. 14.3 Offline Activities
        4. 14.4 Online Activities
        5. 14.5 Error Diagnosis
        6. 14.6 Monitoring
        7. 14.7 Summary
        8. 14.8 For Further Reading
      2. Chapter 15. The Future of DevOps
        1. 15.1 Introduction
        2. 15.2 Organizational Issues
        3. 15.3 Process Issues
        4. 15.4 Technology Issues
        5. 15.5 What About Error Reporting and Repair?
        6. 15.6 Final Words
        7. 15.7 For Further Reading
    15. References
    16. About the Authors
    17. Index