Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Год от года обретая новых сторонников, облачно-ориентированные и микросервисные архитектуры стали основой современного IT. Такой переход значительно повлиял и на структуру коммуникаций. Теперь приложения часто подключаются друг к другу по сети, и это происходит с помощью технологий межпроцессной коммуникации. Одной из наиболее популярных и эффективных технологий такого рода является gRPC, но информации о ней не хватает. Так было, пока не вышла эта книга! Наконец архитекторы и разработчики смогут подробно разобраться, как технология gRPC устроена «под капотом», и для этого не придется разгребать десятки устаревших ссылок в поисковике.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 204
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчики О. Сивченко, С. Черников
Технический редактор Н. Хлебина
Литературный редактор Н. Хлебина
Художники В. Мостипан, Г. Синякина (Маклакова)
Корректоры Н. Гринчик, Е. Павлович
Верстка Г. Блинов
Касун Индрасири, Данеш Курупу
gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes. — СПб.: Питер, 2021.
ISBN 978-5-4461-1737-6
© ООО Издательство "Питер", 2021
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
В наши дни приложения часто «общаются» между собой по компьютерным сетям, используя технологии межпроцессного взаимодействия. gRPC — это разновидность межпроцессного взаимодействия, основанная на высокопроизводительных удаленных вызовах процедур (remote procedure calls, RPC) и предназначенная для создания распределенных приложений и микросервисов. Благодаря появлению микросервисов и облачно-ориентированных приложений популярность gRPC растет экспоненциально.
Наблюдая за распространением gRPC, мы чувствовали, что разработчикам необходимо полномасштабное руководство по данной технологии, которое можно использовать в качестве основного справочника на каждом этапе цикла разработки gRPC-приложений. На просторах Интернета gRPC посвящено множество материалов и примеров кода (документация, блоги, статьи, презентации и т.д.), но при этом отсутствует единый ресурс, пригодный для создания полноценных приложений. К тому же очень сложно найти информацию о внутреннем устройстве протокола gRPC и о том, как он работает.
Чтобы исправить ситуацию, мы написали эту книгу. Она поможет вам разобраться в основах gRPC, понять отличия данного протокола от традиционных средств межпроцессного взаимодействия, изучить практические методы коммуникации по gRPC и научиться создавать gRPC-приложения на Go и Java. Здесь вы узнаете, как устроена эта технология, как развертывать gRPC-приложения в промышленных условиях и как gRPC интегрируется в Kubernetes и облачную экосистему в целом.
Эта книга ориентирована прежде всего на разработчиков, которые занимаются созданием распределенных приложений и микросервисов с помощью разных технологий межпроцессного взаимодействия. Такие разработчики должны разбираться в основах gRPC, понимать, когда и как следует использовать данный протокол, иметь представление о рекомендуемых методиках развертывания gRPC-сервисов в промышленных условиях и т.д. Кроме того, представленный материал будет весьма полезен архитекторам, которые внедряют микросервисную или облачно-ориентированную архитектуру и проектируют механизмы взаимодействия сервисов: gRPC сравнивается с аналогичными технологиями и даются рекомендации о том, когда его стоит использовать, а когда — нет.
Мы исходим из того, что разработчики и архитекторы, читающие данную книгу, имеют общее представление о распределенных вычислениях, включая методы межпроцессного взаимодействия, сервис-ориентированную архитектуру (service-oriented architecture, SOA) и микросервисы.
Эта книга написана так, что теоретический материал объясняется на примерах из реальной жизни. Мы активно используем демонстрационный код на Go и Java, чтобы читатель мог сразу получить практический опыт применения концепций, с которыми знакомится. Мы разделили эту книгу на восемь глав.
• В главе 1 вы получите общее представление об основах gRPC и сможете сравнить эту технологию с аналогичными разновидностями межпроцессного взаимодействия, такими как REST, GraphQL и прочими механизмами RPC.
• На страницах главы 2 вы получите свой первый практический опыт создания полноценного gRPC-приложения на Go или Java.
• В главе 3 вы исследуете методы работы с gRPC на реальных примерах.
• Если вы уже имеете опыт использования gRPC и хотите узнать, как устроена эта технология, то глава 4 для вас. Здесь мы пройдемся по каждому этапу взаимодействия сервера и клиента и покажем, как gRPC работает на уровне сети.
• В главе 5 вы изучите некоторые из самых важных расширенных возможностей gRPC, такие как использование перехватчиков, работа с метаданными, мультиплексирование, балансировка нагрузки и т.д.
• В главе 6 вы досконально изучите методы защиты коммуникационных каналов и узнаете, как аутентифицировать пользователей и управлять их доступом к gRPC-приложениям.
• В главе 7 мы пройдемся по всему циклу разработки gRPC-приложений. Будут рассмотрены тестирование, интеграция с CI/CD, развертывание и запуск в Docker и Kubernetes, а также мониторинг.
• В главе 8 мы обсудим некоторые полезные вспомогательные компоненты, разработанные с расчетом на gRPC. Большинство из этих проектов подходит для создания реальных gRPC-приложений.
Все примеры кода и дополнительные материалы доступны для скачивания по адресу grpc-up-and-running.github.io. Мы настоятельно рекомендуем использовать код, представленный в данном репозитории, по ходу чтения. Это позволит вам лучше понять концепции, с которыми вы знакомитесь.
Эти примеры кода поддерживаются и обновляются с учетом последних версий библиотек, зависимостей и инструментов разработки. Иногда содержимое репозитория может немного отличаться от кода, приведенного в книге. Если вы заметили некие расхождения (как отрицательные, так и положительные) в наших листингах, то мы очень просим вас оформить запрос на включение изменений (pull request, PR).
Вы можете использовать представленные здесь примеры кода в собственных программах и документации. Если вы не воспроизводите существенную часть кода, то связываться с нами не нужно. Это, например, касается ситуаций, когда вы включаете в свою программу несколько фрагментов кода, которые приводятся в данной книге. Однако на продажу или распространение примеров из книг издательства O’Reilly требуется отдельное разрешение. Цитировать книгу и приводить примеры кода при ответе на вопрос вы можете свободно. Но если хотите включить существенную часть приведенного здесь кода в документацию своего продукта, то вам следует связаться с нами.
Мы приветствуем, но не требуем отсылки на оригинал. Отсылка обычно состоит из названия, имени автора, издательства, ISBN и копирайта. Например: «gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes», Касун Индрасири и Данеш Куруппу (Питер). Copyright 2020 Kasun Indrasiri and Danesh Kuruppu, 978-5-4461-1737-6.
Если вам кажется, что ваше обращение с примерами кода выходит за рамки добросовестного использования или условий, перечисленных выше, то можете обратиться к нам по адресу [email protected].
В этой книге используются следующие условные обозначения.
Курсив
Курсивом выделены новые термины.
Моноширинный шрифт
Используется для листингов программ, а также внутри абзацев для обозначения таких элементов, как переменные и функции, базы данных, типы данных, переменные среды, операторы и ключевые слова, имена файлов и их расширения.
Моноширинный жирный шрифт
Показывает команды или другой текст, который пользователь должен ввести самостоятельно.
Моноширинный курсивный шрифт
Показывает текст, который должен быть заменен значениями, введенными пользователем, или значениями, определяемыми контекстом.
Шрифт без засечек
Используется для обозначения URL, адресов электронной почты, названий кнопок, каталогов.
Этот рисунок указывает на совет или предложение.
Такой рисунок указывает на общее замечание.
Этот рисунок указывает на предупреждение.
Выражаем признательность научным редакторам этой книги, Жюльену Андрю, Тиму Реймонду и Райану Микеле. Кроме того, мы хотели бы поблагодарить старшего редактора Мелиссу Поттер за ее советы и поддержку, а также нашего редактора Райана Шоу за всю оказанную им помощь. И конечно же, мы говорим спасибо всему сообществу gRPC, которое создало этот замечательный проект с открытым исходным кодом.
Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.