「マイクロサービス」化は「モジュラーモノリス」のプロセスを経て実現する
近年、マイクロサービスはスケーラビリティを高める銀の弾丸として語られることが多い。しかし、巨大なシステムの中で業務ドメインの境界が曖昧なまま物理的にサービスを分割してしまえば、ネットワークを介した複雑で遅い依存関係を生み出すだけであり、システムは以前よりもさらに脆弱になってしまう。
楽天カードの事例は、マイクロサービス化という理想へ向かうための現実的なアプローチとして、まずは単一のコードベース内でモジュール間の結合度を下げ、凝集度を高める「モジュラーモノリス」のプロセスがあることを示している。
また、DDDの導入に対する実践的なアプローチも示唆に富んでいる。深見氏のチームは、高度なドメインモデリングの議論から入るのではなく、バリューオブジェクトなどの実装レベルの戦術的パターンから適用を開始した。これにより、「ルールを集約する足場」を機械的に構築し、そこから徐々に業務知識を育んでいくというボトムアップのアプローチを取ったのである。これは、泥臭い現場の状況に合わせた極めて現実的な技術的負債の返済戦略である。
小さなリファクタリングの実践こそが、未来の柔軟で強靭なシステムにつながる
巨大なレガシーシステムを前にしたとき、その圧倒的な複雑さと制約の多さに「無理だ」と立ちすくんでしまうかもしれない。金融系システムという極めて制約の厳しい環境下で戦う深見氏も、当初は似たような思いを抱いていた。
しかし、最初は孤独で地道なコードの整理であっても、テストが書かれ、システムが安全に変更できる環境が整っていくにつれて、周囲の認知が変わり、賛同する仲間が増え、やがてはそれが組織全体の公式な目標として掲げられるまでのムーブメントへと発展していく。
深見氏は締めくくりとして「今できる一歩から始めていって、その一歩は小さいのですが積み重ねていくと、大きな変化が起きるのではないか」と訴えた。小さなリファクタリングの実践こそが、巨大なモノリスを整頓し、未来の柔軟で強靭なシステムへとつながる。そんなメッセージの込められた、力強いセッションだった。
