Books & Videos

Table of Contents

  1. Foundations

    1. Chapter 1 Challenges and Principles

      1. Why Infrastructure as Code?
      2. What Is Infrastructure as Code?
      3. Challenges with Dynamic Infrastructure
      4. Principles of Infrastructure as Code
      5. Practices
      6. Antifragility: Beyond “Robust”
      7. Conclusion
      8. What’s Next?
    2. Chapter 2 Dynamic Infrastructure Platforms

      1. What Is a Dynamic Infrastructure Platform?
      2. Requirements for a Dynamic Infrastructure Platform
      3. Infrastructure Resources Provided by the Platform
      4. Types of Dynamic Infrastructure Platforms
      5. Deciding on a Dynamic Infrastructure Platform
      6. Mechanical Sympathy with the Cloud and Virtualization
      7. Conclusion
    3. Chapter 3 Infrastructure Definition Tools

      1. Choosing Tools for Infrastructure as Code
      2. Configuration Definition Files
      3. Working with Infrastructure Definition Tools
      4. Configuration Registries
      5. Conclusion
    4. Chapter 4 Server Configuration Tools

      1. Goals for Automated Server Management
      2. Tools for Different Server Management Functions
      3. Server Change Management Models
      4. Containers
      5. Conclusion
    5. Chapter 5 General Infrastructure Services

      1. Considerations for Infrastructure Services and Tools
      2. Sharing a Service Between Teams
      3. Monitoring: Alerting, Metrics, and Logging
      4. Service Discovery
      5. Distributed Process Management
      6. Software Deployment
      7. Conclusion
  2. Patterns

    1. Chapter 6 Patterns for Provisioning Servers

      1. Server Provisioning
      2. Patterns for Creating Servers
      3. Patterns for Bootstrapping New Servers
      4. Conclusion
    2. Chapter 7 Patterns for Managing Server Templates

      1. Stock Templates: Can’t Someone Else Do It?
      2. Provisioning Servers Using Templates
      3. The Process for Building a Server Template
      4. Origin Images
      5. Updating Server Templates
      6. Building Templates for Roles
      7. Automating Server Template Management
      8. Conclusion
    3. Chapter 8 Patterns for Updating and Changing Servers

      1. Models for Server Change Management
      2. General Patterns and Practices
      3. Patterns and Practices for Continuous Deployment
      4. Patterns and Practices for Immutable Servers
      5. Practices for Managing Configuration Definitions
      6. Conclusion
    4. Chapter 9 Patterns for Defining Infrastructure

      1. Environments
      2. Organizing Infrastructure
      3. Running Definition Tools
      4. Conclusion
  3. Practices

    1. Chapter 10 Software Engineering Practices for Infrastructure

      1. System Quality
      2. VCS for Infrastructure Management
      3. Continuous Integration (CI)
      4. Continuous Delivery (CD)
      5. Code Quality
      6. Managing Major Infrastructure Changes
      7. Conclusion
    2. Chapter 11 Testing Infrastructure Changes

      1. The Agile Approach to Testing
      2. Structuring the Test Suite: The Test Pyramid
      3. Implementing a Balanced Test Suite
      4. Managing Test Code
      5. Roles and Workflow for Testing
      6. Conclusion
    3. Chapter 12 Change Management Pipelines for Infrastructure

      1. Benefits of a Change Management Pipeline
      2. Guidelines for Designing Pipelines
      3. Basic Pipeline Designs
      4. Practices for Using a Pipeline
      5. Scaling Pipelines to More Complex Systems
      6. Techniques for Handling Dependencies Between Components
      7. Practices for Managing Interfaces Between Components
      8. Conclusion
    4. Chapter 13 Workflow for the Infrastructure Team

      1. Automate Anything That Moves
      2. Using a Local Sandbox
      3. Codebase Organization Patterns
      4. Workflow Effectiveness
      5. Conclusion
    5. Chapter 14 Continuity with Dynamic Infrastructure

      1. Service Continuity
      2. Zero-Downtime Changes
      3. Data Continuity
      4. Disaster Recovery
      5. Security
      6. Conclusion
    6. Chapter 15 Organizing for Infrastructure as Code

      1. Evolutionary Architecture
      2. Measuring Effectiveness
      3. Organize to Empower Users
      4. Governance through Continuous Change Management
      5. Conclusion: It’s Never Finished