AWS Dev Day 2023 Tokyo レガシーシステム
もこ(門別)さん
モダンアプリケーション開発のコンサルティングをやっている
「システムを塩漬けする」いい言葉だな~
引っ越ししたら、マンション名が25文字で横文字・記号ありで大変つらい問題
あらゆるECサイトで入力がはじかれる
モダナイズのパターン分類
Refactoring
ほとんどの場合においてコストが低く収まる
既存コードによっては難易度が非常に高くなることがある
Big Bang, Rewrite, Relase
一から作り直す!!
リリースがとにかくだるいし、完成までの時間が大きすぎる
Strangler Fig Pattern
既存システムの機能毎に徐々に変えていく
切り戻し可能なように、前段にプロキシをおいて新旧システムにルーティングする
リスクが低く、成功体験も小さく積みやすい
DBも入れ替えていく場合はチョットダルイ
マイクロサービスを将来的にやりたい場合、それを見据えたモジュラーモノリスという手法を取り入れていくとよい!
ブログ機能なら /blog ディレクトリに分けて実装する・・ような感じ
段階的モダナイズで取れる手段
既存システムに手を加えられる場合
既存システムから新APIを呼ぶ
既存システムから新DBに書き込みを行う
加えられない場合
新システムから既存APIを呼ぶ
テストは絶対に書く
単体テストの話
小さいリリースを繰り返す
ルーティングで分ける
Feature Flag を使う
小さいリリースは成功体験になる
成功体験はチームのレベルを向上させる
実際問題、これらをうまく回すのはとても大変・・
なので、組織の中にリードエンジニアが最低一人はいることが必要