Cloud Native Infrastructure

Book description

Cloud native infrastructure is more than servers, network, and storage in the cloud—it is as much about operational hygiene as it is about elasticity and scalability. In this book, you’ll learn practices, patterns, and requirements for creating infrastructure that meets your needs, capable of managing the full life cycle of cloud native applications.

Justin Garrison and Kris Nova reveal hard-earned lessons on architecting infrastructure from companies such as Google, Amazon, and Netflix. They draw inspiration from projects adopted by the Cloud Native Computing Foundation (CNCF), and provide examples of patterns seen in existing tools such as Kubernetes.

With this book, you will:

  • Understand why cloud native infrastructure is necessary to effectively run cloud native applications
  • Use guidelines to decide when—and if—your business should adopt cloud native practices
  • Learn patterns for deploying and managing infrastructure and applications
  • Design tests to prove that your infrastructure works as intended, even in a variety of edge cases
  • Learn how to secure infrastructure with policy as code

Publisher resources

View/Submit Errata

Table of contents

  1. Introduction
    1. Who Should Read This Book
    2. Why We Wrote This Book
    3. Navigating This Book
    4. Online Resources
    5. Conventions Used in This Book
    6. O’Reilly Safari
    7. How to Contact Us
    8. Acknowledgments
      1. Justin Garrison
      2. Kris Nova
  2. 1. What Is Cloud Native Infrastructure?
    1. Cloud Native Benefits
    2. Servers
    3. Virtualization
    4. Infrastructure as a Service
    5. Platform as a Service
    6. Cloud Native Infrastructure
    7. What Is Not Cloud Native Infrastructure?
    8. Cloud Native Applications
      1. Microservices
      2. Health Reporting
      3. Telemetry Data
      4. Resiliency
      5. Declarative, Not Reactive
    9. How Do Cloud Native Applications Impact Infrastructure?
    10. Conclusion
  3. 2. When to Adopt Cloud Native
    1. Applications
    2. People
    3. Systems
    4. Business
    5. When You Don’t Need Cloud Native Infrastructure
      1. Technical Limitations
      2. Business Limitations
    6. Conclusion
  4. 3. Evolution of Cloud Native Deployments
    1. Representing Infrastructure
      1. Infrastructure as a Diagram
      2. Infrastructure as a Script
      3. Infrastructure as Code
      4. Infrastructure as Software
    2. Deployment Tools
      1. Idempotency
      2. Handling Failure
    3. Conclusion
  5. 4. Designing Infrastructure Applications
    1. The Bootstrapping Problem
    2. The API
    3. The State of the World
    4. The Reconciler Pattern
      1. Rule 1: Use a Data Structure for All Inputs and Outputs
      2. Rule 2: Ensure That the Data Structure Is Immutable
      3. Rule 3: Keep the Resource Map Simple
      4. Rule 4: Make the Actual State Match the Expected State
    5. The Reconciler Pattern’s Methods
      1. Example of the Pattern in Go
    6. The Auditing Relationship
      1. Using the Reconciler Pattern in a Controller
    7. Conclusion
  6. 5. Developing Infrastructure Applications
    1. Designing an API
    2. Adding Features
    3. Deprecating Features
    4. Mutating Infrastructure
    5. Conclusion
  7. 6. Testing Cloud Native Infrastructure
    1. What Are We Testing?
    2. Writing Testable Code
      1. Validation
      2. Entering Your Codebase
    3. Self-Awareness
    4. Types of Tests
      1. Infrastructure Assertions
      2. Integration Testing
      3. Unit Testing
      4. Mock Testing
      5. Chaos Testing
    5. Monitoring Infrastructure
    6. Conclusion
  8. 7. Managing Cloud Native Applications
    1. Application Design
    2. Implementing Cloud Native Patterns
    3. Application Life Cycle
      1. Deploy
      2. Run
      3. Retire
    4. Application Requirements on Infrastructure
      1. Application Runtime and Isolation
      2. Resource Allocation and Scheduling
      3. Environment Isolation
      4. Service Discovery
      5. State Management
      6. Monitoring and Logging
      7. Metrics Aggregation
      8. Debugging and Tracing
    5. Conclusion
  9. 8. Securing Applications
    1. Policy as Code
      1. Deployment Gating
      2. Conformity Testing
      3. Compliance Testing
      4. Activity Testing
    2. Auditing Infrastructure
    3. Immutable Infrastructure
    4. Conclusion
  10. 9. Implementing Cloud Native Infrastructure
    1. Where to Focus for Change
      1. People
      2. Architecture
      3. Chaos Management
      4. Applications
    2. Predicting the Future
    3. Conclusion
  11. A. Patterns for Network Resiliency
    1. Load Balancing
    2. Load Shedding
    3. Service Discovery
    4. Retries and Deadlines
    5. Circuit Breaking
      1. TLS and Auth
      2. Routing (Ingress and Egress)
      3. Insight and Monitoring
  12. B. Lock-in
    1. Lock-in Is Unavoidable
      1. Technology Lock-in
      2. Vendor Lock-in
    2. Lock-in Is a Risk
    3. Don’t Outsource Thinking
  13. C. Box: Case Study
  14. Index

Product information

  • Title: Cloud Native Infrastructure
  • Author(s): Justin Garrison, Kris Nova
  • Release date: November 2017
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781491984307