Cloud Native Patterns

Book description

Cloud Native Patterns is your guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. This book presents a mental model for cloud-native applications, along with the patterns, practices, and tooling that set them apart.

About the Technology

Cloud platforms promise the holy grail: near-zero downtime, infinite scalability, short feedback cycles, fault-tolerance, and cost control. But how do you get there? By applying cloud native designs, developers can build resilient, easily adaptable, web-scale distributed applications that handle massive user traffic and data loads. Learn these fundamental patterns and practices, and you’ll be ready to thrive in the dynamic, distributed, virtual world of the cloud.

About the Book

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.

What's Inside

  • The lifecycle of cloud-native apps
  • Cloud-scale configuration management
  • Zero downtime upgrades, versioned services, and parallel deploys
  • Service discovery and dynamic routing
  • Managing interactions between services, including retries and circuit breakers

About the Reader

Requires basic software design skills and an ability to read Java or a similar language.

About the Author

Cornelia Davis is Vice President of Technology at Pivotal Software. A teacher at heart, she’s spent the last 25 years making good software and great software developers.

We interviewed Cornelia as a part of our Six Questions series. Check it out here.

This book fills a gap between theory and practice...entertaining and educational.
- From the Foreword by Gene Kim, coauthor of The Phoenix Project

The book’s focus on real world challenges makes this an essential manual for modern day projects.
- David Schmitz, Senacor Technologies

Demystifies the process of building self-healing, distributed, and resilient web applications with low operational maintenance.
- Raveesh Sharma, Stellapps Technologies

A direct and definitive guide to cloud native, with real-life experience driving the narrative. A must-read for practicing engineers who want to feel like a native in the cloud.
- Shanker Janakiraman, Urjanet

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

Product information

  • Title: Cloud Native Patterns
  • Author(s): Cornelia Davis
  • Release date: May 2019
  • Publisher(s): Manning Publications
  • ISBN: 9781617294297