/note/tech

At a past company, the head of engineering and the principal engineers decided...

At a past company, the head of engineering and the principal engineers decided to break our Ruby on Rails application into a Go microservices mesh.

They created very detailed design documents and architecture diagrams. They went all out and used Kubernetes, gRPC, service templates, the whole shebang.

The whole senior engineering leadership came from Amazon, where they were used to each team owning a distinct service. They tried to apply that model directly. But our issues were with code ownership and poor domain modeling.

The entire application could have run on just a handful of EC2 instances.

What was the result?

Five years later, 70% of the application is still running on the Ruby on Rails monolith. Never completed the migration. But now they have to maintain two systems.

None of the original leadership works there anymore.

@yatish_me

翻訳:

以前勤めていた会社で、エンジニアリング責任者とプリンシパルエンジニアは、Ruby on Rails アプリケーションを Go のマイクロサービスメッシュに分割することを決定しました。

彼らは非常に詳細な設計書とアーキテクチャ図を作成しました。Kubernetes、gRPC、サービステンプレートなど、あらゆるツールを駆使して徹底的に取り組みました。

シニアエンジニアリングリーダー陣は全員 Amazon 出身で、各チームがそれぞれ独立したサービスを所有することに慣れていました。彼らはそのモデルをそのまま適用しようとしましたが、コードの所有権とドメインモデリングの不備が問題でした。

アプリケーション全体を、ほんの数個の EC2 インスタンスで実行できたはずです。

結果はどうなったでしょうか?

5年経った今でも、アプリケーションの70%は依然として Ruby on Rails モノリス上で稼働しています。移行は完了していません。しかも、今では2つのシステムを維持管理しなければなりません。

元のリーダー陣はもう誰もそこで働いていません。

MEMO: