С точки зрения архитектуры и дизайна программного обеспечения, как микросервисы «складываются» (каламбур) против промежуточного программного обеспечения? Я пришел из Java, и похоже, что когда вы уходите от простого REST в качестве API и абстрагируетесь от различных слоев и параметров соединения, по крайней мере, в Java, вы почти полностью вернулись к некоторым очень старым школьным идеям. , Мы вернулись к виртуализации ... тогда как JVM уже виртуальная.
С точки зрения агностики вы можете, и я бы поспорил с преимуществами, абстрагировать RESTful API от CORBA. Или, в более Java-центре, JMS или MDB.
Когда-то EJB был большим событием в Java, затем он был признан чем-то вроде кластерного эффекта, но теперь мы вернулись к началу?
Или же микросервисы предлагают то, чего не хватает в CORBA или, что еще лучше, в MDB? Когда я читаю (TLDR) Мартина Фаулера, объясняющего микросервисы, это кажется мне хорошим решением плохой проблемы, если хотите. Или, скорее, закрытый подход, который вводит уровень сложности, только подталкивая проблему вокруг. Если сервисы действительно микро и многочисленны, то каждый из них имеет стоимость в долларах, чтобы запустить и поддерживать его.
Кроме того, если один микро сервис из множества меняет свой API, то все, что зависит от этого сервиса, ломается. Это не кажется слабо связанным, это кажется противоположностью проворной. Или я неправильно употребляю эти слова?
Конечно, между этими крайностями существует неопределенный выбор.
Акула против Гориллы ... иди! (Для педантиков, это должно быть иронично, и это совсем не мое намерение. Вопрос должен быть принят за чистую монету. Если вопрос можно улучшить, пожалуйста, сделайте это, или прокомментируйте, и я исправлю. )
Представьте себе множество микросервисов, работающих в докере, все на одной машине, разговаривающих друг с другом ... безумие. Трудно поддерживать или администрировать, и почти невозможно что-либо изменить, потому что любое изменение будет каскадным и приведет к непредвиденным ошибкам. Как это лучше, что эти сервисы разбросаны по разным машинам? И, если они распространяются, то, безусловно, некоторые очень, очень старые школьные методы решили, по крайней мере, в определенной степени, распределенные вычисления.
Почему горизонтальное масштабирование настолько распространено или, по крайней мере, желательно?
giant blob
, у нее должны быть интерфейсы, поэтому каждая часть, начинающаяся с ядра, является своего рода MS, и первым делом прежде любая команда, начавшая писать код, должна была согласовать спецификации v0.0.1.