Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems
Book information
Description
This is the book for Gophers who want to learn how to build distributed systems. You know the basics of Go and are eager to put your knowledge to work. Build distributed services that are highly available, resilient, and scalable. This book is just what you need to apply Go to real-world situations. Level up your engineering skills today. Take your Go skills to the next level by learning how to design, develop, and deploy a distributed service. Start from the bare essentials of storage handling, then work your way through networking a client and server, and finally to distributing server instances, deployment, and testing. All this will make coding in your day job or side projects easier, faster, and more fun. Create your own distributed services and contribute to open source projects. Build networked, secure clients and servers with gRPC. Gain insights into your systems and debug issues with observable services instrumented with metrics, logs, and traces. Operate your own Certificate Authority to authenticate internal web services with TLS. Automatically handle when nodes are added or removed to your cluster with service discovery. Coordinate distributed systems with replicated state machines powered by the Raft consensus algorithm. Lay out your applications and libraries to be modular and easy to maintain. Write CLIs to configure and run your applications. Run your distributed system locally and deploy to the cloud with Kubernetes. Test and benchmark your applications to ensure they're correct and fast. Dive into writing Go and join the hundreds of thousands who are using it to build software for the real world. Cover Table of Contents Acknowledgments Introduction Who This Book Is For What’s in This Book Online Resources Part I—Get Started 1. Let's Go How JSON over HTTP Services Fits into Distributed Systems Set Up the Project Build a Commit Log Prototype Build a JSON over HTTP Server Run Your Server Test Your API What You Learned 2. Structure Data with Protocol Buffers Why Use Protocol Buffers? Install the Protocol Buffer Compiler Define Your Domain Types as Protocol Buffers Compile Protocol Buffers Work with the Generated Code What You Learned 3. Write a Log Package The Log Is a Powerful Tool How Logs Work Build a Log What You Learned Part II—Network 4. Serve Requests with gRPC What Is gRPC? Goals When Building a Service Define a gRPC Service Compile with the gRPC Plugin Implement a gRPC Server Register Your Server Test a gRPC Server and Client What You Learned 5. Secure Your Services Secure Services in Three Steps Authenticate the Server with TLS Authenticate the Client with Mutual TLS Authentication Authorize with Access Control Lists What You Learned 6. Observe Your Systems Three Types of Telemetry Data Make Your Service Observable What You Learned Part III—Distribute 7. Server-to-Server Service Discovery Why Use Service Discovery? Embed Service Discovery Discover Services with Serf Request Discovered Services and Replicate Logs Test Discovery and the Service End-to-End What You Learned 8. Coordinate Your Services with Consensus What Is Raft and How Does It Work? Implement Raft in Our Service Multiplex to Run Multiple Services on One Port What You Learned 9. Discover Servers and Load Balance from the Client Three Load-Balancing Strategies Load Balance on the Client in gRPC Make Servers Discoverable Resolve the Servers Route and Balance Requests with Pickers Test Discovery and Balancing End-to-End What You Learned Part IV—Deploy 10. Deploy Applications with Kubernetes Locally What Is Kubernetes? Install kubectl Use Kind for Local Development and Continuous Integration Write an Agent Command-Line Interface Build Your Docker Image Configure and Deploy Your Service with Helm Advertise Raft on the Fully Qualified Domain Name What You Learned 11. Deploy Applications with Kubernetes to the Cloud Create a Google Kubernetes Engine Cluster Create Custom Controllers with Metacontroller Deploy to the Internet What You Learned Index – SYMBOLS – – DIGITS – – A – – B – – C – – D – – E – – F – – G – – H – – I – – J – – K – – L – – M – – N – – O – – P – – R – – S – – T – – U – – V – – W – – Z –
Similar books
Distributed Services with Go
2021 · EPUB
Distributed Services with Go
EPUB
Distributed Services with Go
2021 · EPUB
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36
2010 · PDF
THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.
1858 · PDF