十分に成長しきったモノリシックなシステムを、マイクロサービスに分割していくことなんて本当にできるのだろうか。何度もチャレンジして、思うように行かないことの方が多かった気がする。特定の技術手法を使用していると、著しくサービス分割の阻害を受けるようなことはあると思う。例えば、私の場合はDjangoを用いたWebシステムを構築することが多い。そこで抽象モデルを継承したモデルの実装をしている場合や、Django REST Frameworkを用いてシリアライザーやViewSetを継承して実装する手法を使用している場合、HTTPのリクエストを受信した時やデータベースを操作する時に、一体何が起きるのかということを把握できなくなり、もはやシステム分割は遥か彼方の辿りつくことのできない場所のようにも感じる。当然、道筋も見えない。ソースコードを見て、そして目を閉じ、少しだけ想いを馳せて、1行も修正することなくファイルを閉じる。この繰り返しだ。マイクロサービスを念頭に置くのであれば、あらかじめそれを前提にして、アンチパターンを踏まないように実装したモノリスとして、成長させる必要があるように思える。そう考えるとマイクロサービス化可能モノリスアンチパターンのようなものを、自分の中でしっかり持っておきたいが、まだ明確なものは見えていない。機会があれば、整理して文章化したい。
モノリスのマイクロサービス移行について雑多に考える
所要時間: 約 2分