2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

システムリプレイスに伴うデータ移行やスキーマ変更との付き合い方

Last updated at Posted at 2022-02-08

システムリプレイスに伴うデータ移行の方法

既存システムをマイクロサービスへと切り分ける際、
DBに保存されているデータの移行に苦労したため振り返りの備忘録です。

DMSによるデータ同期を選択

システム切り替えでのサービス停止をさけるため、
DMSで更新を同期し、既存システムのデータを新システムへと流し込む選択をしました。

image.png

MSK + ECSでスキーマ変更に対応

テーブル定義自体に更新があったため、
データ同期と同時に、MSK + ECSでデータの加工を行っています。

image.png

発生した課題

当初、アプリケーション構築の1ストーリーとして計画しましたが
手順、計画ともに課題があり難航しました。

検証までにかかる時間が長い

全てのデータが作成されるまで検証が行えず、検証実施まで数日の待ち時間が発生します。

image.png

実施段階では、要求仕様時点で洗いもれのレコードや、
本番環境特有の不具合など、想定以上の手戻りが発生しています。

進捗の推移が何度でも0に戻る

通常の開発業務では不具合が検知された場合、タスクを積んでゴールを更新しますが、
データ移行では不備が見つかるたび、0から再作成が必要です。

image.png
image.png

データ移行やスキーマ変更との付き合い方

やっておいて良かった点、次回以降取り入れたい点です。

テストコード作成

1タスクの認識だったためテストはローカルでの確認のみでしたが、
デバッグ設定の解除漏れによる再作成などが発生したため
テストコード書いておくべきだったと思います。

スキーマ変更とテーブル同期の分離

データ加工とテーブル同期を完全に分離していたため、
移行先DBの構築進捗やステータスに引きずられず作業が実施できました。

image.png

アプリケーション構築とのプロジェクト分離

DB定義後から着手可能で、結合テストまでに完了していればいいため
アプリケーション開発とは完全に切り分けて計画した方が
予備工数を設定しやすくなりそうです。

image.png

採用PR

弊社で一緒に働く仲間を募集しています。
全てのオタクを幸せにしたい方、是非ご覧ください!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?