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 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
About the Author
Matthew Titmus is a seasoned veteran of the software development industry. Since teaching himself to build virtual worlds in LPC, he's earned a surprisingly-relevant degree in molecular biology, written tools to analyze terabyte-sized datasets at a high energy physics laboratory, developed an early web development framework from scratch, wielded distributed computing techniques to analyze cancer genomes, and pioneered machine learning techniques for linked data.He was an early adopter and advocate of both cloud-native technologies in general and the Go language in particular. For the past four years he has specialized in helping companies migrate monolithic applications into a containerized, cloud-native world, allowing them to transform the way their services are developed, deployed, and managed. He is passionate about what it takes to make a system production quality, and has spent a lot of time thinking about and implementing strategies for observing and orchestrating distributed systems.Matthew lives on Long Island with the world's most patient woman, to whom he is lucky to be married, and the world's most adorable boy, by whom he is lucky to be called "dad".