Взялся перевести статью «Microservices: The Evolution and Extinction of Web Services?» за авторством Luciano Baresi и Martin Garriga со своими дополнениями (__курсивом__). Это не дословный перевод, а перессказ, так что кое-что будет опущено, а кое-что наоборот раскрыто глубже (где это требуется для понимания обозначенных тезисов). Статья длинная, хочу проверить, замотивирует ли меня публикация в этот канал к тому, чтобы довести перевод до конца 🙂 Здесь буду публиковать кусочки по мере готовности, а затем все выложу в блог. Приглашаю к конструктивному обсуждению в комментарии. Буду выкладывать под тегом #msaevolutionwspub1 .. 2,3 ——— Microservices: The Evolution and Extinction of Web Services? Luciano Baresi and Martin Garriga Abstract Еще 20 лет назад SOA и Web Services были на пике популярности. Это был самый настоящий хайп. Особенность хайпа в том, что его применяют ради хайпа, а не для пользы дела, в массе своей даже не разобравшись в сути явления или технологии. Такое положение дел привело к тому, что количество определений и трактовок SOA и Web Services было примерно равно количеству внедрений 🙂 Это, в свою очередь, приводило к тому, что проблема подгонялась под решение. Сегодня то же самое происходит с микросервисами. Авторы статьи исследуют эволюционный путь от SOA к микросервисам на основе анализа литературы, как академической, так и научно-популярной. __Подгонка проблемы под решение выглядит примерно так: «мы решили распилить монолит на микросервисы, ____как обосновать это бизнесу____?».__ __Здесь «решение» уже выбрано, осталось найти под него проблему, а если проблем нет, то ~~создать~~придумать её __🙂 Введение Основная мысль заключается в том, что при широком внедрении SOA появились и новые стандарты: WSDL, BPEL, целью которых было убрать барьеры между системами в гетерогенной среде с целью снижения сложности решения задач интеграции. На практике такие решения оказались несостоятельными, главным образом из-за невозможности (by design) своевременно реагировать на постоянно меняющиеся бизнес-требования [1]. Сегодня то же с микросервисами. Авторы акцентируют внимание, что определение микросервисов как «SOA done right» не вполне корректно, потому что в микросервисах фокус смещается с reuse и composition на independence, replaceability и autonomy. В таком случае сервисы становятся микро с точки зрения их вклада в приложение, а не по количеству строк кода. Авторы определяют следующие, определяющие микросервисы, свойства [2]: - Независимо понимаемые - Независимо реализуемые - Независимо развертываемые - Возможность одновременного сосуществование нескольких версий одного сервиса - При необходимости –  изменение топологии в режиме реального времени - Отдельный микросервис может быть изменен без влияния на работу других микросервисов __Независимое понимание - это важнейшее свойство. Оно означает ровно то, что если мы что-то можем полностью понять в рамках одного сервиса, значит нет протечек абстракции (функциональности) из одного сервиса в другой. В противном случае для понимания как реализуется некая «атомарная» бизнес-возможность придется изучит несколько микросервисов.__ Рамках статьи авторы преследуют три цели: - Продемонстрировать эволюционный взгляд на движение от SOA к микросервисам - Обсудить текущие проблемы с микросервисами [1] P. Lemberger, M. Morel, __Why Has SOA Failed So Often? __(Wiley, London, 2013), pp. 207–218. https://doi.org/10.1002/9781118562017.app3 [2] S. Newman, __Building Microservices __(O’Reilly Media, Sebastopol, 2015) #msaevolutionwspub1 #msaevolutionwspub #перевод