Микросервисы / распределенные системы
3.71K subscribers
105 photos
1 video
21 files
306 links
Мысли, новости и ссылки по распределенным система и распределенной разработке.

Если есть вопросы или предложения, пишите @sergey486
Download Telegram
Взялся перевести статью «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 #перевод