Я досліджував архітектури мікросервісів, намагаючись отримати огляд на високому рівні щодо всіх плюсів і мінусів, про те, хто і чому, і т.д. al).
Більшість робіт Мартіна Фаулера над цією темою - це кілька років, коли мікросервіси (як домашнє ім’я в програмуванні, якщо не в загальній практиці) були ще молодими, тож я приймаю велику частину з зерном солі.
Зокрема, це одне:
Коли я чую історії про команди, що використовують архітектуру мікросервісів, я помітив загальну схему.
- Майже всі успішні історії мікросервісу почалися з моноліту, який став занадто великим і розпався
- Майже всі випадки, коли я чув про систему, яка була побудована як мікросервісна система з нуля, вона закінчилася серйозними неприємностями.
Цей зразок змусив багатьох моїх колег стверджувати, що не слід починати новий проект з мікропослугами, навіть якщо ви впевнені, що ваша заявка буде достатньо великою, щоб зробити її вартим. .
(посилання: https://martinfowler.com/bliki/MonolithFirst.html - акцент їх)
Тепер, через 3 роки, і з мікросервісами - більш повсюдний термін, чи можна погодитись, що новій системі, як правило, краще слугувати, маючи більші (менші, ніж мікролітичні, але менші, ніж монолітні) сервісні шматки для початку та виготовлення вони більш деталізовані як частина еволюційного заходу?
Або, чи є норма починати проект з нуля із зернистою архітектурою мікросервісу, на відміну від вищезазначених тверджень?
Схоже, на розумний загальний підхід, але цікавий думок громади.