Ho studiato architetture di microservizi cercando di ottenere una panoramica di alto livello di tutti i pro e i contro, perché e perché, molte informazioni che sto leggendo / guardando provengono da ThoughtWorks (Martin Fowler, Neal Ford, et al).
La maggior parte del lavoro di Martin Fowler sull'argomento ha pochi anni, quando Microservices (come nome familiare nella programmazione, se non in medicina generale) era ancora giovane, quindi ne prendo gran parte con un granello di sale.
Una cosa in particolare è questa:
Mentre ascolto storie di team che usano un'architettura di microservizi, ho notato uno schema comune.
- Quasi tutte le storie di successo del microservizio sono iniziate con un monolite che è diventato troppo grande e rotto
- Quasi tutti i casi in cui ho sentito parlare di un sistema che è stato costruito da zero come un sistema di microservizi, è finito in guai seri.
Questo schema ha portato molti dei miei colleghi a sostenere che non dovresti iniziare un nuovo progetto con microservizi, anche se sei sicuro che la tua applicazione sarà abbastanza grande da renderlo utile. .
(rif: https://martinfowler.com/bliki/MonolithFirst.html - enfatizza la loro)
Ora, 3 anni dopo e con i microservizi un termine più onnipresente, è generalmente piacevole che un nuovo sistema sia in genere meglio servito da blocchi di servizio più grandi (-hanno microservizio-ma-più piccolo del monolito) per iniziare e fare loro più granulari come parte di una misura evolutiva?
Oppure, c'è una norma per iniziare un progetto da zero con un'architettura granulare a microservizi, in contrasto con le affermazioni sopra?
Sembra un approccio generale sano, ma curioso dei pensieri della comunità.