In einem früheren Unternehmen entschieden der Leiter der Technik und die leitenden Ingenieure, unsere Ruby on Rails-Anwendung in ein Go-Mikroservices-Netzwerk aufzuteilen.
Sie erstellten sehr detaillierte Entwurfsdokumente und Architekturdiagramme. Sie gaben alles und verwendeten Kubernetes, gRPC, Servicetemplates, das volle Programm.
Die gesamte senior technische Führung kam von Amazon, wo sie daran gewöhnt waren, dass jedes Team einen eigenen Dienst besitzt. Sie versuchten, dieses Modell direkt anzuwenden. Aber unsere Probleme lagen im Code-Eigentum und in der schlechten Domänenmodellierung.
Die gesamte Anwendung hätte auf nur einer Handvoll EC2-Instanzen laufen können.
Was war das Ergebnis?
Fünf Jahre später läuft 70 % der Anwendung immer noch auf dem Ruby on Rails-Monolithen. Die Migration wurde nie abgeschlossen. Aber jetzt müssen sie zwei Systeme warten.
Keiner der ursprünglichen Führungskräfte arbeitet dort noch.