What do Docker, Kubernetes, and Prometheus have in common? All of these cloud native technologies are written in the Go programming language. This practical book shows you how to use Go’s strengths to develop cloud native services that are scalable and resilient, even in an unpredictable environment. You’ll explore the composition and construction of these applications, from lower-level features of Go to mid-level design patterns to high-level architectural considerations.
Each chapter builds on the lessons of the last, walking intermediate to advanced developers through Go to construct a simple but fully featured distributed key-value store. You’ll learn best practices for adopting Go as your cloud native development language for solving cloud native management and deployment issues.
- Learn how cloud native applications differ from other software architectures
- Understand how Go can solve the challenges of designing scalable, distributed services
- Leverage Go’s lower-level features, such as channels and goroutines, to implement a reliable cloud native service
- Explore what "service reliability" is and what it has to do with "cloud native"
- Apply a variety of patterns, abstractions, and tooling to build and manage complex distributed systems
Table of Contents
- I. Going Cloud Native
- 1. What Is a “Cloud Native” Application?
- 2. Why Go Rules the Cloud Native World
- II. Cloud Native Go Constructs
3. Go Language Foundations
- Collections: Arrays, Slices, and Maps
- Control Structures
- Error Handling
- Putting the Fun in Functions: Variadics and Closures
- Structs, Methods, and Interfaces
- The Good Stuff: Concurrency
- 4. Cloud Native Patterns
5. Building a Cloud Native Service
- Let’s Build A Service!
- Generation 0: The Core Functionality
- Generation 1: The Monolith
- Generation 2: Persisting Resource State
- Generation 3: Implementing Transport Layer Security
- Containerizing Our Key-Value Store
6. It’s All About Dependability
- What’s the Point of Cloud Native?
- It’s All About Dependability
- What Is Dependability and Why Is It So Important?
- Achieving Dependability
- The Continuing Relevance of the Twelve-Factor App
- Title: Cloud Native Go
- Release date: May 2021
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781492076261