«Распределённые системы. Паттерны и парадигмы для масштабируемых и надёжных систем на основе Kubernetes», Брендан Бёрнс

Тяжесть — это хорошо. Тяжесть — это надёжно. (с) Борис Бритва

В последнее время меня увлекают книги по надёжности систем. Эта тема очень обширная, и её интересно изучать, потому что знания по надёжности постоянно пригождаются в работе.

Поэтому я с большим удовольствием прочитал новую, недавно вышедшую книгу Брендана Бёрнса — «Распределённые системы». Мне было интересно узнать, какие такие паттерны распределённых систем на базе Kubernetes автор предлагает использовать.

⭐️ О чём книга

Книга посвящена паттернам, которые можно применять при использовании Kubernetes для создания масштабируемых и удобных в эксплуатации распределённых систем. Автор адаптирует стандартные паттерны проектирования для применения в Кубере.

В книге раскрываются следующие темы: ➡️ Паттерны для одного узла (пода) системы ➡️ Паттерны для обслуживающих систем ➡️ Паттерны систем пакетных вычислений

⭐️ 3 идеи из книги 🟡Один из самых простых и полезных паттернов — Sidecar. Суть его в том, что мы можем «подцепить» к поду ещё один контейнер, содержащий любую нужную нам функциональность. Например, этот контейнер может парсить логи другого контейнера и отправлять их в систему логирования. Некоторые другие паттерны в книге основаны на Sidecar.

🟡При проектировании контейнеров важно понимать, возможна ли ситуация множественной обработки. В частности, в системах пакетной обработки может возникнуть ситуация, когда один и тот же чанк данных возьмут в обработку несколько рабочих машин. Это нужно учитывать при проектировании системы.

🟡Добавление кэша в систему часто приводит к тому, что система оказывается намертво зависима от него. Часто это выглядит так: добавили кэш для ускорения, постепенно нагрузка растёт — и в какой-то момент система просто ляжет в случае отказа кэша. Я как-то в работе «развязывал» такой узелок и могу сказать, что это крайне нетривиальная задача.

⭐️ Мои впечатления

Книга оказалась достаточно интересной. Местами я ехидно хихикал с того, как автор переизобретает названия паттернов банды четырёх и некоторые другие термины (например, retry storm он окрестил «грохочущим стадом»). Тем не менее, изложенные в книге паттерны и способы их применения полезны и применимы на практике. Отдельный плюс — спеки, которые можно скопировать себе и поиграться при желании.

В книге есть и некоторые спорные моменты. Например, автор в одной главе рассказывает, как дорого стоят FaaS-вычисления при частом вызове, а в другой предлагает использовать их для сервиса аутентификации с немаленькой такой нагрузкой.

Но в целом книга интересная и хорошо написана. Рекомендую к прочтению сильным инженерам и тем, кто хочет такими стать. Тимлидам тоже не повредит :)

Все мои обзоры книг доступны по тегу #обзор_книги и в этом посте.

➖➖➖➖➖➖➖➖➖➖➖ 📝 @ulshinblog


В этом посте были ссылки, но мы их удалили по правилам Сетки

«Распределённые системы. Паттерны и парадигмы для масштабируемых и надёжных систем на основе Kubernetes», Брендан Бёрнс
Тяжесть — это хорошо. Тяжесть — это надёжно | Сетка — социальная сеть от hh.ru «Распределённые системы. Паттерны и парадигмы для масштабируемых и надёжных систем на основе Kubernetes», Брендан Бёрнс
Тяжесть — это хорошо. Тяжесть — это надёжно | Сетка — социальная сеть от hh.ru