In una precedente azienda, il responsabile dell'ingegneria e gli ingegneri principali decisero di suddividere la nostra applicazione Ruby on Rails in una rete di microservizi Go.
Hanno creato documenti di design e diagrammi architetturali molto dettagliati. Hanno dato il massimo e hanno utilizzato Kubernetes, gRPC, modelli di servizio, tutto il necessario.
Tutta la leadership ingegneristica senior proveniva da Amazon, dove erano abituati a ogni team che possedeva un servizio distinto. Hanno cercato di applicare direttamente quel modello. Ma i nostri problemi riguardavano la proprietà del codice e una scarsa modellazione del dominio.
L'intera applicazione avrebbe potuto funzionare su solo un pugno di istanze EC2.
Qual è stato il risultato?
Cinque anni dopo, il 70% dell'applicazione è ancora in esecuzione sul monolite Ruby on Rails. La migrazione non è mai stata completata. Ma ora devono mantenere due sistemi.
Nessuno dei leader originali lavora più lì.