«Распределённые системы. Паттерны и парадигмы для масштабируемых и надёжных систем на основе Kubernetes», Брендан Бёрнс
Тяжесть — это хорошо. Тяжесть — это надёжно. (с) Борис Бритва
В последнее время меня увлекают книги по надёжности систем. Эта тема очень обширная, и её интересно изучать, потому что знания по надёжности постоянно пригождаются в работе.
Поэтому я с большим удовольствием прочитал новую, недавно вышедшую книгу Брендана Бёрнса — «Распределённые системы». Мне было интересно узнать, какие такие паттерны распределённых систем на базе Kubernetes автор предлагает использовать.
⭐️ О чём книга
Книга посвящена паттернам, которые можно применять при использовании Kubernetes для создания масштабируемых и удобных в эксплуатации распределённых систем. Автор адаптирует стандартные паттерны проектирования для применения в Кубере.
В книге раскрываются следующие темы: ➡️ Паттерны для одного узла (пода) системы ➡️ Паттерны для обслуживающих систем ➡️ Паттерны систем пакетных вычислений
⭐️ 3 идеи из книги 🟡Один из самых простых и полезных паттернов — Sidecar. Суть его в том, что мы можем «подцепить» к поду ещё один контейнер, содержащий любую нужную нам функциональность. Например, этот контейнер может парсить логи другого контейнера и отправлять их в систему логирования. Некоторые другие паттерны в книге основаны на Sidecar.
🟡При проектировании контейнеров важно понимать, возможна ли ситуация множественной обработки. В частности, в системах пакетной обработки может возникнуть ситуация, когда один и тот же чанк данных возьмут в обработку несколько рабочих машин. Это нужно учитывать при проектировании системы.
🟡Добавление кэша в систему часто приводит к тому, что система оказывается намертво зависима от него. Часто это выглядит так: добавили кэш для ускорения, постепенно нагрузка растёт — и в какой-то момент система просто ляжет в случае отказа кэша. Я как-то в работе «развязывал» такой узелок и могу сказать, что это крайне нетривиальная задача.
⭐️ Мои впечатления
Книга оказалась достаточно интересной. Местами я ехидно хихикал с того, как автор переизобретает названия паттернов банды четырёх и некоторые другие термины (например, retry storm он окрестил «грохочущим стадом»). Тем не менее, изложенные в книге паттерны и способы их применения полезны и применимы на практике. Отдельный плюс — спеки, которые можно скопировать себе и поиграться при желании.
В книге есть и некоторые спорные моменты. Например, автор в одной главе рассказывает, как дорого стоят FaaS-вычисления при частом вызове, а в другой предлагает использовать их для сервиса аутентификации с немаленькой такой нагрузкой.
Но в целом книга интересная и хорошо написана. Рекомендую к прочтению сильным инженерам и тем, кто хочет такими стать. Тимлидам тоже не повредит :)
Все мои обзоры книг доступны по тегу #обзор_книги и в этом посте.
➖➖➖➖➖➖➖➖➖➖➖ 📝 @ulshinblog
В этом посте были ссылки, но мы их удалили по правилам Сетки