SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers CAREER Boost セッションレポート(AD)

システムリプレイスのアンチパターンを踏み抜き、茨の道へ……その時、チームリーダーが学んだ教訓とは

【A-6】「非常に残念ですが、 切り戻しましょう...」 システムリプレイスのアンチパターンに立ち向かったリーダーの話

  • X ポスト
  • このエントリーをはてなブックマークに追加

リプレイスで生じた課題と、克服のために工夫したこと

 このようなリプレイスではどのような困難が生じ、河本氏はどのように乗り越えたのか。順に見ていこう。河本氏は4つの課題を挙げた。

課題1:双方向連携に利用したツールの理解が困難

 データの双方向連携には、SymmetricDSというオープンソースのRDB同期ツールを採用した。ただし日本では利用者が少なく、日本語のドキュメントもなく、ツールの理解に言語の壁が立ちはだかった。そのためデータ連携をどう実現するか、エラーが起きた時にどう対処すればいいのかでも苦労した。有償サポートを契約したものの英語のみだったので、問い合わせのコミュニケーションも苦労したという。

 そこで河本氏は変換方法調査チーム、連携実装チーム、課題解決チームと役割分担して、それぞれが割り当てられた課題に専念できるようにした。3チームに分けたことにより、効率的に課題解決が進んだ。

課題2:新旧それぞれのシステム設計とデータベース設計に対しての深い知識が必要

 データを新旧の双方向で連携するため、新旧のデータベースと新旧のアプリケーション、どちらも理解しておく必要がある。新旧データベースでテーブルやカラムが異なるため、どうマッピングするかなどが不明瞭だった。旧から新へのデータ移行も危うくなる。

 そこで河本氏はビジネスドメインのエキスパートに協力を依頼した。また設計書やER図を入手し、テーブルカラム単位のマッピングや変換表を作成した。

課題3:データの整合性を守りながら数千万行の移行処理が必要

 新システム稼働にあたり、数千万行分のデータを旧から新データベースに移行する作業が生じる。旧システムでは外部キーの制約があまりなく、不整合があるデータも散見されていた。新システムでは外部キーの制約が異なることから移行処理が中断してしまうこともあった。クラウドのリソースにも制約があり、処理が中断することや、データ移行にかかる時間が想定以上になることも判明した。

 そこで河本氏はデータを年単位で分割し、移行処理を並列化した。またクラウドのマシンスペックも可能な限り大きなものにすることで「爆速で」移行作業を終えることができた。

データ整合性を守りながら数千万行の移行処理を行った
データ整合性を守りながら数千万行の移行処理を行った

課題4:限られた停止時間の中で複雑なリリース完遂が必要

 システム移行ではよくあるケースで、週末中にリリースを完遂する必要があった。本番のリリース作業手順は複雑になっていた。またデータ移行が正しくできたか確認するところでも時間を要した。本番のリリースを無事に終えられるように、何度もリリースのリハーサルを行った。

 河本氏はリリース作業未経験者でも迷わず作業できるように、細かい手順書を用意した(手順は1200ほどあった)。データ確認を効率よく進めるためのチェック用スクリプトも用意した。万が一の事態に備えて、主担当以外のメンバーもリリースリハーサルを実施することで、リリース手順の理解を広めた。

次のページ
リリース後に切り戻しを選択せざるを得なかった理由は?

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers CAREER Boost セッションレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17156 2023/01/25 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング