Книги и журналы » Компьютерная литература » Программирование (книги)
Distributed Services with Go / Распределённые сервисы с GoГод издания: 2021
Автор: Travis Jeffery
Издательство: The Pragmatic Bookshelf
ISBN: 978-1-68050-760-7
Язык: Английский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 245
Описание: This book is for intermediate to advanced developers who want to learn how to build distributed services. I’ve geared the book toward Go programmers, and prior Go experience will help, but you don’t have to be an expert. This book shows you how to build distributed services, and the concepts are the same regardless of what language you use. So if you’re writing distributed services in Go, you can take full advantage of this book; if not, you can apply the ideas I present here in any language.
We will design, develop, and deploy a distributed service to explore what Go can do. We’ll develop and deploy the service in layers: from the bare essentials of storage handling, to the networking of a client and server, to distributing server instances, deployment, and testing. I divided this book into four parts that parallel those layers.
[hr]
Эта книга предназначена для разработчиков среднего и продвинутого уровня, которые хотят научиться создавать распределенные сервисы. Я ориентировал книгу на программистов на Go. И хотя предыдущий опыт работы с Go поможет, вам не обязательно быть экспертом. В этой книге показано, как создавать распределенные службы, и концепции остаются теми же, независимо от того, какой язык вы используете. Поэтому, если вы пишете распределенные сервисы на Go, вы можете воспользоваться всеми преимуществами этой книги; если нет, вы можете применить представленные здесь идеи на любом языке.
Мы спроектируем, разработаем и развернем распределенный сервис, чтобы изучить возможности Go. Мы разработаем и развернем сервис поэтапно: от элементарных операций с хранилищем до организации сети клиента и сервера, распределения экземпляров сервера, развертывания и тестирования. Я разделил книгу на четыре части, соответствующие этим слоям.
[spoiler="Примеры страниц"]

[/spoiler]
[spoiler="Оглавление"]
Part I — Get Started[hr]
In
Chapter 1, Let’s Go, on page 3, we’ll kick off our project by building a simple JSON over HTTP commit log service.
In
Chapter 2, Structure Data with Protocol Buffers, on page 13, we’ll set up our protobufs, generate our data structures, and set up automation to quickly generate our code as we make changes.
In
Chapter 3, Write a Log Package, on page 23, we’ll build a commit log library that’ll serve as the heart of our service, storing and looking up data.
Part II — Network[hr]
In
Chapter 4, Serve Requests with gRPC, on page 55, we’ll set up gRPC, define our server and client APIs in protobuf, and build our client and server.
In
Chapter 5, Secure Your Services, on page 75, we’ll make our connections secure by authenticating our server with SSL/TLS to encrypt data exchanged between client and server and by authenticating requests with access tokens.
In
Chapter 6, Observe Your Systems, on page 99, we’ll make our service observable by adding logs, metrics, and tracing.
Part III — Distribute[hr]
In
Chapter 7, Server-to-Server Service Discovery, on page 113, we’ll build discovery into our service to make server instances aware of each other.
In
Chapter 8, Coordinate Your Services with Consensus, on page 141, we’ll add consensus to coordinate the efforts of our servers and turn them into a cluster.
In
Chapter 9, Discover Servers and Load Balance from the Client, on page 171, we’ll code discovery in our gRPC clients so they discover and connect to the servers with client-side load balancing.
Part IV — Deploy[hr]
In
Chapter 10, Deploy Applications with Kubernetes Locally, on page 193, we’ll set up Kubernetes locally and run a cluster on your local machine. And we’ll prepare to deploy to the cloud.
In
Chapter 11, Deploy Applications with Kubernetes to the Cloud, on page 219, we’ll create a Kubernetes cluster on Google Cloud’s Kubernetes Engine and deploy our service to the cloud so that people on the Internet can use it.
[/spoiler]