O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Cloud Native Patterns

Book Description

With 25 years of experience under her belt, Cornelia Davis teaches you the practices and patterns that set cloud-native applications apart. With realistic examples and expert advice for working with apps, data, services, routing, and more, she shows you how to design and build software that functions beautifully on modern cloud platforms. As you read, you will start to appreciate that cloud-native computing is more about the how and why rather than the where.

Table of Contents

  1. Copyright
  2. Brief Table of Contents
  3. Table of Contents
  4. Foreword
  5. Preface
  6. Acknowledgments
  7. About this book
  8. About the author
  9. About the cover illustration
  10. Part 1. The cloud-native context
    1. Chapter 1. You keep using that word: Defining “cloud-native”
      1. 1.1. Today’s application requirements
      2. 1.2. Introducing cloud-native software
      3. 1.3. Cloud-native and world peace
      4. Summary
    2. Chapter 2. Running cloud-native applications in production
      1. 2.1. The obstacles
      2. 2.2. The enablers
      3. Summary
    3. Chapter 3. The platform for cloud-native software
      1. 3.1. The cloud(-native) platform evolution
      2. 3.2. Core tenets of the cloud-native platform
      3. 3.3. Who does what?
      4. 3.4. More cloud-native platform capabilities
      5. Summary
  11. Part 2. Cloud-native patterns
    1. Chapter 4. Event-driven microservices: It’s not just request/response
      1. 4.1. We’re (usually) taught imperative programming
      2. 4.2. Reintroducing event-driven computing
      3. 4.3. My global cookbook
      4. 4.4. Introducing Command Query Responsibility Segregation
      5. 4.5. Different styles, similar challenges
      6. Summary
    2. Chapter 5. App redundancy: Scale-out and statelessness
      1. 5.1. Cloud-native apps have many instances deployed
      2. 5.2. Stateful apps in the cloud
      3. 5.3. HTTP sessions and sticky sessions
      4. 5.4. Stateful services and stateless apps
      5. Summary
    3. Chapter 6. Application configuration: Not just environment variables
      1. 6.1. Why are we even talking about config?
      2. 6.2. The app’s configuration layer
      3. 6.3. Injecting system/environment values
      4. 6.4. Injecting application configuration
      5. Summary
    4. Chapter 7. The application lifecycle: Accounting for constant change
      1. 7.1. Having empathy for operations
      2. 7.2. Single-app lifecycle, multiple-instance lifecycles
      3. 7.3. Coordinating across different app lifecycles
      4. 7.4. Let’s see this in action: Credential rotation and app lifecycle
      5. 7.5. Dealing with ephemeral runtime environments
      6. 7.6. Visibility of app lifecycle state
      7. 7.7. Serverless
      8. Summary
    5. Chapter 8. Accessing apps: Services, routing, and service discovery
      1. 8.1. The service abstraction
      2. 8.2. Dynamic routing
      3. 8.3. Service discovery
      4. Summary
    6. Chapter 9. Interaction redundancy: Retries and other control loops
      1. 9.1. Request retries
      2. 9.2. Fallback logic
      3. 9.3. Control loops
      4. Summary
    7. Chapter 10. Fronting services: Circuit breakers and API gateways
      1. 10.1. Circuit breakers
      2. 10.2. API gateways
      3. 10.3. The service mesh
      4. Summary
    8. Chapter 11. Troubleshooting: Finding the needle in the haystack
      1. 11.1. Application logging
      2. 11.2. Application metrics
      3. 11.3. Distributed tracing
      4. Summary
    9. Chapter 12. Cloud-native data: Breaking the data monolith
      1. 12.1. Every microservice needs a cache
      2. 12.2. Moving from request/response to event driven
      3. 12.3. The event log
      4. 12.4. Event sourcing
      5. 12.5. We’re just scratching the surface
      6. Summary
  12. Patterns used in cloud-native applications
  13. Index
  14. List of Figures
  15. List of Tables
  16. List of Listings