13 апреля 2020

Теоретический не минимум по микросервисам

Всем привет.

Решил для себя систематизировать список литературы, которые прочитал по теме распределённых систем и, в частности, микросервисов.
Единственная тема, которая осталась не до конца изученной - это SRE и инструменты деплоймента. Скорее всего напишу отдельный пост по этой теме.

Основная проблема микросервисов в том, что люди часто начинают их строить не до конца осознавая какие проблемы им придётся решать.
Один из больнючих вопросов - это консистентность данных, наличие которой надо доказывать с математической жестокостью к себе, чуть ли не по шагам анализируя все сценарии, которые могут произойти после каждого действия. Обработка отказов - ещё один черт из табакерки, который начнёт выпрыгивать из разных непредсказуемых мест. Ну и на сладкое - это копание в кишочках всяких оркестраторов, чтобы понять какие гарантии насчёт zero downtime они вам дают. А потом вы начнёте задумываться как делать миграции баз данных и бэкапы в условиях распределённых систем ...
И закончиться это может осознанием того, что некоторые вещи, которые спокойно делаются в рамках одного процесса, не могут быть надёжно реализованы в принципе в реальных распределённых системах (чего только стоит один замечательный срач насчёт того, почему распределенные блокировки на базе Redis - говно и как они ничего не стоят в плане заявляемых гарантий) или цена будет такой, что сами проклянете тот миг, когда захотели "в эти самые микросервисы" податься.
В общем, это приключение только для крепких духом.

Сразу оставим за скобками вопросы понимания того как работают сети, linux, docker, как профилировать окружение (диск, сеть, память, cpu) с помощью разных тулов.
Без этих знаний дальше лучше вам вообще не читать, ну или вернуться к этой замечательной статье, как только изучите этот необходимый минимум, который вам обязательно пригодится когда ваша система уйдёт в прод.

В общем, если вы не готовы погружаться в весь этот хардкор - спокойно оставайтесь пилить фичи в своём уютном монолите и не комплексуйте. Поверьте, не со всеми монстрами, которые ждут вас в этом новом мире, вы захотите иметь дело. Но если вам всё-таки хочется узнать, насколько глубока кроличья нора, то welcome под кат.