Монолит и микросервисы обсудили в Днепре

Монолит и микросервисы обсудили в Днепре
Алексей Осипенко, CTO cimon.io, выступил на IT talk в Днепре. Он объяснил, что любое монолитное приложение рано или поздно меняет архитектуру на микросервисную. Соответственно, наступает момент в разработке приложения, когда необходимо менять стратегию разработки и начать вводить микросервисы.

Докладчик предложил ограничить искомую временную точку сверху и снизу, определив, что:

  • Однозначно, рано заниматься распилом монолита, если все члены команды все еще ориентируется в любой части приложения. Также признак своевременности монолитной архитектуры — новичок в команде может легко начать разрабатывать новый функционал сразу после ознакомления.
  • Выделять микросервисы уже становится поздновато, если возникает желание кешировать html-страницы целиком, потому что тормозят, а, чтобы ускорить, нужно переписать половину приложения, заменить ORM или вообще переписать все на другом языке, где все хорошо и приложения не тормозят.
  • Переходить на архитектуру с микросервисами еще рано, если любой из видов фаулеровских рефакторингов можно легко применить в монолитном приложении. А вот заменить монолитную архитектуру нужно было бы уже давно, если простого рефакторинга не предвидится, или вообще тяжело место найти, которое чисто по-фаулеровски можно было бы отрефакторить.

Самый главный критерий необходимости начать переходить на микросервисную архитектуру — когда стоимость добавления новой фичи начинает превосходить выгоду от этой самой фичи.

В завершении Алексей сделал вывод, что микросервисы, сервисы и программы — одно и тоже. Если вы работаете с GitHub API или со своим сервисом, который возвращает данные пользователя, — это микросервисы, просто один принадлежит вам, а второй — нет.

Фото:  https://www.flickr.com/photos/outsourcing/albums/72157683052193896