Що стосується архітектури та дизайну програмного забезпечення, то як мікросервіси "складаються" (призначені каламбури) проти проміжного програмного забезпечення? Я приїжджаю з Java, і здається, що, як ви віддаляєтесь від прямої програми REST як API, і абстрагуєтесь від різних шарів та параметрів підключення, принаймні на Java, ви майже повернулися до повного кола до деяких дуже старих шкільних ідей . Ми повернулися до віртуалізації ... коли JVM вже віртуальний.
Агностично, ви можете, і я можу стверджувати свої переваги, абстрагуючи RESTful API на CORBA. Або, більш орієнтованим на Java, JMS або MDB.
Свого часу EJB була великою справою в Java, тоді вона була визнана трохи кластерним eff, але тепер ми повернулися до початку?
Або пропонують мікросервіси те, чого бракує CORBA, а ще краще, MDB? Коли я читаю (TLDR) Мартіна Фаулера, що пояснює мікросервіси, це вважає мене гарним рішенням поганої проблеми, якщо ви хочете. А точніше, закритий підхід, який вводить рівень складності, лише розсуваючи проблему. Якщо послуги справді є мікро- та численними, то для запуску та утримання кожного з них має долар.
Крім того, якщо одна мікросервіс серед багатьох змінює свій API, то все, що залежить від цієї служби, порушується. Це не здається вільно поєднаним, здається навпаки спритним. Або я зловживаю цими словами?
Звичайно, між цими крайнощами існує невизначена кількість варіантів.
Акула проти горили ... йди! (Для педантичності це означає бути іронічним, і це зовсім не мій намір. Питання має бути прийнято за номінал. Якщо питання можна вдосконалити, будь ласка, зробіть це, або прокоментуйте, і я виправлю. )
Уявіть безліч мікросервісів, що працюють у докері, все на одній машині, спілкуючись один з одним ... божевілля. Складно підтримувати чи адмініструвати, а поруч неможливо ніколи щось змінити, оскільки будь-яка зміна стане каскадом і спричинить непередбачувані помилки. Як якось краще, що ці служби розкидані по різних машинах? І якщо вони розподілені, то, безумовно, деякі дуже, дуже старі шкільні методи вирішили, принаймні, до певної міри, розподілили обчислення.
Чому горизонтальне масштабування настільки поширене або хоча б бажане?
giant blob
, як вона повинна мати інтерфейси, тому кожна частина, починаючи з ядра, є своєрідною MS, і перше, що раніше будь-яка команда почала писати код, щоб узгодити специфікації v0.0.1.