Найти в Дзене
Путь программиста

Микросервисы: начало

Сегодня с утра начала читать "Микросервисы. Паттерны разработки и рефакторинга" Ричардсона. Моменты, когда в IT можно учиться, просто читая книгу, - неуловимы и прекрасны.

Я прочитала наверное первые страниц 70 и на них технических подробностей было немного, но автор обещал исправиться в дальнейшем (завтра посмотрим).

Вот важные моменты из первой части книги, которые мне удалось законспектировать (очень брифли).

1) У микросервисов много преимуществ. Например, такие:

  • техническая разнородность (можно смело менять язык программирования, внедрять новые технологические решения, менять способы хранения данных, ведь вы работаете с небольшим изолированным сервисом);
  • устойчивость (можно изолировать проблему, ведь если вы используете архитектуру микросервисов, то у вас есть "перегородки" (читай - границы сервисов), которые не позволят упасть всей программе, если в одном из сервисов закрался баг);
  • масштабирование (у больших монолитных сервисов может возникать проблема ограниченной производительности. На помощь приходят микросервисы!)
  • простота развертывания (можно развертывать обновленный микросервис независимо от остальной системы, и это, правда, кайф).

Это не все преимущества, но, ин май хамбл опинион, это - сильные аргументы в пользу микросервисов.

2) Есть и другие технологии декомпозиции, и они хорошо знакомы даже такой начинашке, как я. Это разбиение на библиотеки, которое накладывает ограничения, например, связанные с технологической однородностью (библиотеки, как правило, должны быть написаны на одном языке или запускаться на одной платформе). Другой способ - модульная декомпозиция, опять же проигрывающая архитектуре микросервисов по причинам, указанным в пункте 1.

3) Архитектор ПО, работающий с микросервисами - это градостроитель. Вот здесь у него будет промышленная зона, а здесь - зеленый парк.

4) Начиная постигать идею микросервисов, помни две священные концепции: слабая связанность (ну а как иначе, ведь одна из главных фишек микросервисов - возможность вносить изменения в одном сервисе, не переписывая код всего проекта) и сильное зацепление ("нужно найти в нашей проблемной области границы, которые помогут обеспечить нахождение связанного поведения в одном месте").

Я бы читала дальше, но мне позвонили и сказали, что нужно ехать за кормом для собаки.

Ну, нужно и нужно.