Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「非常に残念ですが、 切り戻しましょう...」 システムリプレイスのアンチパターンに 立ち向...
Search
Kawamoto Shuji
December 09, 2022
Technology
1
450
「非常に残念ですが、 切り戻しましょう...」 システムリプレイスのアンチパターンに 立ち向かったリーダーの話
2022/12/09(金)にDevelopers CAREER Boostさんで登壇した際の資料です。
Kawamoto Shuji
December 09, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
シフトライトなテスト活動を適切に行うことで、無理な開発をせず、過剰にテストせず、顧客をビックリさせないプロダクトを作り上げているお話 #RSGT2025 / Shift Right
nihonbuson
3
2.1k
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
機械学習を「社会実装」するということ 2025年版 / Social Implementation of Machine Learning 2025 Version
moepy_stats
5
1.1k
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
140
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
2.2k
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
100
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
850
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
130
My small contributions - Fujiwara Tech Conference 2025
ijin
0
1.4k
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
280
Featured
See All Featured
Being A Developer After 40
akosma
89
590k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Fireside Chat
paigeccino
34
3.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Unsuck your backbone
ammeep
669
57k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Become a Pro
speakerdeck
PRO
26
5.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
870
The Cult of Friendly URLs
andyhume
78
6.1k
Transcript
2022.12.09 株式会社うるる 河本周時 「非常に残念ですが、 切り戻しましょう...」 システムリプレイスのアンチパターンに 立ち向かったリーダーの話
Copyright © 2022 ULURU inc. All Rights Reserved. 株式会社うるる 河本 周時
プロフィール • 年齢 : 1996年生まれの26歳 • 入社 : 5年目(インターン入れると6年目) ◦ 2018年に新卒としてJoin • バックエンドエンジニアとして 複数プロダクトを経験 • 2年目にプロジェクトリーダーを経験 • 現在はチームリーダーとして従事 • バイク2台持ち ◦ Ninja400 KRT ◦ Z125 PRO
自社とサービスの紹介
Copyright © 2022 ULURU inc. All Rights Reserved. 自社の紹介
Copyright © 2022 ULURU inc. All Rights Reserved. 自社サービスの紹介
本日の発表内容について
Copyright © 2022 ULURU inc. All Rights Reserved. 本日の発表内容について •
システムリプレイスに伴い、新システムと旧システムの並行稼働を行った • 途中での切り戻しなど、さまざまな課題や困難が立ちはだかった... 私がリーダーとしてチームメンバーとともに、 どのように立ち向かったのかを紹介
Copyright © 2022 ULURU inc. All Rights Reserved. 本日の発表内容について ~アジェンダ~
• プロジェクトの背景について • プロジェクト進行上の課題と対策 • リリース後に発生した課題 • 課題から得た学びや反省について
双方向データ連携が必要になった背景について
Copyright © 2022 ULURU inc. All Rights Reserved. リプレイスについて1 •
バック/フロント/インフラ/DB全てを刷新! • 下記制約のため新旧システムの並行稼働を行うことが決定...! ①ビッグバンリリースを避けるために段階リリースを選択 ②その過程でDBを分割 ③双方向データ連携が必要になった 双方向データ連携は一般的に言われるアンチパターンですが、それを踏み抜きにいきました ! ビッグバンリリース 並行稼働
Copyright © 2022 ULURU inc. All Rights Reserved. リプレイスについて2 旧
新 データ入力側 データ閲覧側 データ入力側 データ閲覧側 リニューアル対象のシステムの新旧での設計について DB DB DB
Copyright © 2022 ULURU inc. All Rights Reserved. リプレイスについて3 旧
新 データ入力側 データ閲覧側 データ入力側 データ閲覧側 並行稼動の時のWebAppとDBの関連図 DB DB DB あとからリリース 双 方 向 連 携 が 必 要 に な っ た
プロジェクト進行上の課題と対策
Copyright © 2022 ULURU inc. All Rights Reserved. プロジェクト進行上の課題と対策 •
双方向連携に利用したツールの理解が困難 • 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 • データ整合性を守りながら数千万行の移行処理が必要 • 限られた停止時間の中で複雑なリリース完遂が必要
Copyright © 2022 ULURU inc. All Rights Reserved. プロジェクト進行上の課題と対策 •
双方向連携に利用したツールの理解が困難 • 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 • データ整合性を守りながら数千万行の移行処理が必要 • 限られた停止時間の中で複雑なリリース完遂が必要
Copyright © 2022 ULURU inc. All Rights Reserved. 双方向連携に利用したツールの理解が困難 【課題】
• SymmetricDSというオープンソースの RDB同期ツールを利用 • 日本語の文献がほぼない • 変換の実現に時間がかかった • 連携エラーの原因の特定がしづらい • 連携エラーの解消が困難 • 有償サポートが英語対応のみ SymmetricDS 公式ドキュメント
Copyright © 2022 ULURU inc. All Rights Reserved. 【対策】 役割を明確にして課題に対して専念
できる状況を作った ★変換方法調査チーム ★連携実装チーム ★課題解決チーム 双方向連携に利用したツールの理解が困難 変換方法調査チーム 連携実装チーム 課題解決チーム
Copyright © 2022 ULURU inc. All Rights Reserved. プロジェクト進行上の課題と対策 •
双方向連携に利用したツールの理解が困難 • 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 • データ整合性を守りながら数千万行の移行処理が必要 • 限られた停止時間の中で複雑なリリース完遂が必要
Copyright © 2022 ULURU inc. All Rights Reserved. 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 【課題】
• 旧DBのカラムを、新DBのどの カラムにどう変換して連携すれば良いのか 調査が必要 • カラムの型は一致しているか確認が必要 • 連携と移行が必要なテーブルとデータの洗 い出しが必要 ◦ 誰に確認すれば良いのか不明瞭 ◦ 不整合なデータの扱いが不明瞭 • 連携と移行したデータは新旧 どちらのアプリでも期待通りに 表示されるようにする必要がある 旧DB… 新DB… 旧システム… 新システム…
Copyright © 2022 ULURU inc. All Rights Reserved. 【対策】 •
ビジネスドメインのエキスパートに協 力を依頼する • 設計書やER図を取得した • テーブルカラム単位のマッピングや 変換表を作成 新旧システムの設計、ビジネスドメインの知識、 DBの制約、DB定義の差異などの理解が必要 契約周りに詳しい 新システムに詳しい 顧客データに詳しい 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要
Copyright © 2022 ULURU inc. All Rights Reserved. プロジェクト進行上の課題と対策 •
双方向連携に利用したツールの理解が困難 • 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 • データ整合性を守りながら数千万行の移行処理が必要 • 限られた停止時間の中で複雑なリリース完遂が必要
Copyright © 2022 ULURU inc. All Rights Reserved. データ整合性を守りながら数千万行の移行処理が必要 【課題】
• 外部キーの考慮が必要 • レコード量が多く、移行や変換 作業に莫大な時間を必要とする想 定 • 各種インフラリソースのスペック上の 制約があった 旧DB 新DB 移行処理 OOMで処理中断 FK守れず処理中断
Copyright © 2022 ULURU inc. All Rights Reserved. データ整合性を守りながら数千万行の移行処理が必要 【対策】
• 外部キーを考慮し、年ごとに処理を 分割できるように移行バッチを 並列化 • マシンスペックはできる限り大きくし た 並列 × マシンスペック = 爆速!!💨 旧DB 新DB 2015 2016 2017 2018 ・・・ ・・・
Copyright © 2022 ULURU inc. All Rights Reserved. プロジェクト進行上の課題と対策 •
双方向連携に利用したツールの理解が困難 • 新旧それぞれのシステム設計とDB設計に対しての深い知識が必要 • データ整合性を守りながら数千万行の移行処理が必要 • 限られた停止時間の中で複雑なリリース完遂が必要
Copyright © 2022 ULURU inc. All Rights Reserved. 限られた停止時間の中で複雑なリリース完遂が必要 【課題】
• リリース時間の制約があった • 反映の前後関係が複雑 • データ確認に時間がかかる • 複数回の時間をかけたリリース リハーサルが必要
Copyright © 2022 ULURU inc. All Rights Reserved. 限られた停止時間の中で複雑なリリース完遂が必要 【対策】
• リリース作業未経験者でも迷わずにでき るレベルで細かい手順書を用意 (1200手順ほど) • データ確認をなるべく自動化できるように チェック用のスクリプトを用意した • リリースリハーサルは、もしもに備えて、 主担当以外のメンバーも実施して手順の 理解に努めた 手順書 自動化スクリプト
ここまでにさまざまな課題や困難を乗り越えてきて ようやくリリースができました!🎉🥳🎉
段階リリースの第1弾が終わり、 第2弾のリリースに向けてやっと順調に プロジェクトが進んでいくと思っていたら...
「非常に残念ですが、 切り戻しましょう...」
Copyright © 2022 ULURU inc. All Rights Reserved. 切り戻しの理由 双方向連携の遅延が発生し、サービスの強みとなる
「速報性」が失われてしまった
リリース後に発生した課題と対策
Copyright © 2022 ULURU inc. All Rights Reserved. リリース後に発生した課題と対策 •
解消が難しいエラーが発生 • リリース後に連携遅延が発生し、サービスの売りである速報性が失われる
Copyright © 2022 ULURU inc. All Rights Reserved. リリース後に発生した課題と対策 •
解消が難しいエラーが発生 • リリース後に連携遅延が発生し、サービスの売りである速報性が失われる
Copyright © 2022 ULURU inc. All Rights Reserved. 解消が難しいエラーが発生 【課題】
• 本番リリースをした後にエラーが頻 発 • 開発用環境で再現しないため原因 の追求が困難 • 解消するにはDBにデータパッチを 流す必要がある • 一度エラーが発生すると後続処理が 止まるため解消まで時間をかけられ ない WAKKAわっかんない...🥺 (※WAKKAは双方向連携プロジェクト名 )
Copyright © 2022 ULURU inc. All Rights Reserved. 解消が難しいエラーが発生する 【対策】
• エラーの対応方法をリスト化し、誰で も対応をスムーズにできるようにした • エラーを解消した後、できる限り原因 調査を行った • 根本解決できるものに関しては 手を打ち続けた アラート 対応方法まとめシート
Copyright © 2022 ULURU inc. All Rights Reserved. リリース後に発生した課題と対策 •
解消が難しいエラーが発生 • リリース後に連携遅延が発生し、サービスの売りである速報性が失われる
Copyright © 2022 ULURU inc. All Rights Reserved. リリース後に連携遅延が発生し、サービスの売りである速報性が失われる 旧
新 遅 延 発 生 顧客 速 報 性 が 失 わ れ た サイト サイト DB DB クラウドワーカー
Copyright © 2022 ULURU inc. All Rights Reserved. 【対策】 •
マシンスペックを上げる • データ連携順序の変更 • データ連携SQLのチューニング リリース後に連携遅延が発生し、サービスの売りである速報性が失われる
Copyright © 2022 ULURU inc. All Rights Reserved. リリース後に連携遅延が発生し、サービスの売りである速報性が失われる それでも解決はしませんでした...
Copyright © 2022 ULURU inc. All Rights Reserved. なので一旦切り戻しを行うことで仕切り直しをし、 影響を最小限に抑えるやり方を経た上でリリースを完了させました!
結果として現在双方向連携は役割を果たしました....! リリース後に連携遅延が発生し、サービスの売りである速報性が失われる
もし同じ取り組みをするなら
Copyright © 2022 ULURU inc. All Rights Reserved. もし同じ取り組みをするなら •
双方向連携する際に意識すると良いこと ◦ 双方向連携するツールの事前検証を入念に行う ◦ ステークホルダーを巻き込んで進める ◦ データ移行する際は、並列処理が可能な設計をする ◦ データ移行に耐えうるマシンスペックを事前に検証しておく ◦ リリース手順書は誰が行っても迷わないようにする ◦ リリースリハーサルは複数回行う
Copyright © 2022 ULURU inc. All Rights Reserved. もし同じ取り組みをするなら ビッグバンリリースのリスクと、
新旧並行稼働に伴う双方向データ連携のリスクを並べて、 よく検討した上で方針決定できると幸せです! (双方向連携を伴う並行稼働は本当に辛かったです ...)
Copyright © 2022 ULURU inc. All Rights Reserved. ビッグバンリリースと双方向データ連携のリスク 【ビッグバンリリースのリスク】
• 動作確認にかなり時間がかかる • 切り戻しが困難になる • 不具合の切り分けが大変 【双方向データ連携のリスク】 • 過去データの移行が大変 • データ不整合が生じる可能性がある • 利用ツールの検証に時間がかかる • データ連携が遅延すると影響大 • 不具合調査に時間がかかる
Copyright © 2022 ULURU inc. All Rights Reserved. ビッグバンリリースと双方向データ連携のリスク 【ビッグバンリリースのリスク】
• 動作確認にかなり時間がかかる • 切り戻しが困難になる • 不具合の切り分けが大変 【双方向データ連携のリスク】 • 過去データの移行が大変 • データ不整合が生じる可能性がある • 利用ツールの検証に時間がかかる • データ連携が遅延すると影響大 • 不具合調査に時間がかかる 赤字になっているのが見えていなかったリスクです
Copyright © 2022 ULURU inc. All Rights Reserved. もし同じ取り組みをするなら もし双方向データ連携を伴う並行稼働をする場合は、
我々と同じ失敗をしないようにしていただければ幸いです!
Appendix
None