Reusable Elements for Designing Cloud-Native Applications
Bilgin Ibryam, Roland Huß
Kubernetes#
Patterns#
Cloud-Native#
developers#
principles#
The way developers design, build, and run software has changed significantly with the evolution of microservices and containers. These modern architectures offer new distributed primitives that require a different set of practices than many developers, tech leads, and architects are accustomed to. With this focused guide, Bilgin Ibryam and Roland Huss provide common reusable patterns and principles for designing and implementing cloud native applications on Kubernetes.
Each pattern includes a description of the problem and a Kubernetes-specific solution. All patterns are backed by and demonstrated with concrete code examples. This updated edition is ideal for developers and architects familiar with basic Kubernetes concepts who want to learn how to solve common cloud native challenges with proven design patterns.
You'll explore:
Table of Contents
Chapter 1. Introduct ion
Part I. Foundational Patterns
Chapter 2. Predictable Demands
Chapter 3. Declarative Deployment
Chapter 4. Health Probe
Chapter 5. Managed Lifecycle
Chapter 6. Automated Placement
Part II. Behavioral Patterns
Chapter 7. Batch Job
Chapter 8. Periodic Job
Chapter 9. Daemon Service
Chapter 10. Singleton Service
Chapter 11. Stateless Service
Chapter 12. Stateful Service
Chapter 13. Service Discovery
Chapter 14. Self Awareness
Part Ill. Structural Patterns
Chapter 15. lnit Container
Chapter 16. Sidecar
Chapter 17. Adapter
Chapter 18. Ambassador
Part IV. Configuration Patterns
Chapter 19. EnvVar Configuration
Chapter 20. Configuration Resource
Chapter 21 . Immutable Configuration
Chapter 22. Configuration Template
Part V. Security Patterns
Chapter 23. Process Containment
Chapter 24. Network Segmentation
Chapter 25. Secure Configuration
Chapter 26. Access Control
Part VI. Advanced Patterns
Chapter 27. Controller
Chapter 28. Operator
Chapter 29. Elastic Scale
Chapter 30. Image Builder
Who This Book Is For
This book is for developers who want to design and develop cloud native applications and use Kubernetes as the platform. It is most suitable for readers who have some basic familiarity with containers and Kubernetes concepts and want to take it to the next level. However, you don’t need to know the low-level details of Kubernetes to understand the use cases and patterns. Architects, consultants, and other technical personnel will also benefit from the repeatable patterns described here.
The book is based on use cases and lessons learned from real-world projects. It is an accumulation of best practices and patterns after years of working in this space. We want to help you understand the Kubernetes-first mindset and create better cloud native applications—not reinvent the wheel. It is written in a relaxed style and is similar to a series of essays that can be read independently.
Bilgin Ibryam is a principal architect at Red Hat and committer at Apache for Camel, OFBiz, and Isis projects. He is a blogger, speaker, open-source enthusiast and the author of Camel Design Patterns and Instant Apache Camel Message Routing books. In his day-to-day job, Bilgin enjoys mentoring, training and leading teams to be successful with application integration, distributed systems, microservices, devops, and cloud-native applications.
Roland Huss is a senior principal software engineer and architect for Red Hat OpenShift Serverless. He has been a developer for over 25 years now. However, he has never forgotten his roots as a system administrator. Roland is an active Knative contributor and member of Knative's technical oversight committee. He developed the JMX-HTTP bridge Jolokia and popular Maven plugins for Docker, Kubernetes and OpenShift.