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
Yusuke Kishino
June 18, 2024
Programming
1
290
リアーキテクチャのアンチパターンとその対策 〜ラクスルの場合〜
Yusuke Kishino
June 18, 2024
Tweet
Share
More Decks by Yusuke Kishino
See All by Yusuke Kishino
RAKSULに見るアーキテクチャの変遷 - 複数サービス展開への道
yusukekishino
2
500
ROSCAFE TECH NIGHT #2 〜今、CTO / VPoEに求められる事とは?〜
yusukekishino
0
300
Other Decks in Programming
See All in Programming
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2k
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.3k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
160
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
38k
dchart: charts from deck markup
ajstarks
3
940
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
450
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
440
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
640
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
1k
Cap'n Webについて
yusukebe
0
160
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
150
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.9k
A designer walks into a library…
pauljervisheath
210
24k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
45
GraphQLとの向き合い方2022年版
quramy
50
14k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
180
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
720
Facilitating Awesome Meetings
lara
57
6.7k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
リアーキテクチャのアンチパターンとその対策 〜ラクスルの場合〜 ラクスル株式会社 ラクスル事業本部 CTO 岸野 友輔 2024.06.18 Ver.1.0.0
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential これまでの経歴
• 2017年:東京工業大学卒 • 2017-2020年: ラクスル サーバーサイドエンジニア • 2021-2023年: ダンボールワン サーバーサイドエンジニア/CTO • 2023年-現在: ラクスル事業本部CTO ◦ 共通基盤プロダクト構築の推進など これまでやってきた技術 • Ruby/Go/PHP 岸野 友輔(Kishino Yusuke) サーバーサイドエンジニア 趣味:ゲーム, 自転車, 料理
© RAKSUL, inc. All rights reserved. 今日のテーマ 3 本日のイベントの前身となる 5/22に行われたイベントで語りきれなかったことを中心に、ラクスル
のアーキテクチャの変遷と踏んでしまったアンチパターンについてお話しします 前回のイベントレポートはこちら!
© RAKSUL, inc. All rights reserved. ラクスルってどんなサービス? 4
© RAKSUL, inc. All rights reserved. 5 ラクスル事業について 印刷EC事業に始まり『広告(集客支援)事業』『ノベルティ・グッズ事業』 『ダンボール・梱包材事業』『アパレル・ユニフォーム事業』などを展開している事業体
ダンボール・梱包資材の 受発注プラットフォーム ノベルティ・グッズの 受発注プラットフォーム +非公開の事業群 アパレル・ユニフォームの 受発注プラットフォーム
© RAKSUL, inc. All rights reserved. ラクスル事業のサービス・アーキテクチャの変遷 6
© RAKSUL, inc. All rights reserved. 印刷のラクスルの始まり - 1サービス・ 1プロダクト
サービス 2013年 印刷ECである「ラクスル 」リリース 7 アーキテクチャ PHPで作られたモノリシックなシステム DB
© RAKSUL, inc. All rights reserved. 複数サービスの始まり - 複数サービス・ 1プロダクト
サービス 2015年 印刷ECサイトのラクスルを拡張 する形で集 客支援サービス (新聞折込やポスティング )開始 8 アーキテクチャ モノリスを拡張 しながらサービスを拡大 設計が苦しく なり始めマイクロサービス化を検討 DB New
© RAKSUL, inc. All rights reserved. マイクロサービス化の始まり - 複数サービス・ 1プロダクト
サービス 2015年 印刷ECサイトのラクスルを拡張 する形で集 客支援サービス (新聞折込やポスティング )開始 9 アーキテクチャ 一部マイクロサービス化 を開始(DBを共有するアン チパターンを踏む) DB New
© RAKSUL, inc. All rights reserved. マルチプロダクトの始まり - 複数サービス・複数プロダクト サービス
紙への印刷から大きく異なる「 ノベルティ 」や「アパレ ル」のECを展開 10 アーキテクチャ 印刷ECが拡張の限界 を迎えたため新規でのサービス を別プロダクト として構築していく方針へ 共通基盤 として決済基盤 が構築される 共通の認証機能 は印刷ECにくっついたまま 認証 決済基盤 認証 New New New
© RAKSUL, inc. All rights reserved. M&Aの発生 - 複数サービス・複数プロダクト・ M&A
サービス 梱包材ECの「ダンボールワン 」と ハンコECの「ハンコヤドットコム 」がM&Aによりグ ループイン シナジーの創出 が求められる アーキテクチャ M&Aを想定していなかった アーキテクチャに対してシナ ジー創出の戦略の元に ID連携や決済の連携 が求めら れる このままでは耐えられない ... 11 認証 決済基盤 認証 New New IDはどうする? 決済は繋げられる?
© RAKSUL, inc. All rights reserved. ラクスル事業のサービス・アンチパターン 12
© RAKSUL, inc. All rights reserved. マイクロサービス化の始まり - 複数サービス・ 1プロダクト
サービス 2015年 印刷ECサイトのラクスルを拡張 する形で集 客支援サービス (新聞折込やポスティング )開始 13 アーキテクチャ 一部マイクロサービス化 を開始(DBを共有するアン チパターンを踏む) DB New
© RAKSUL, inc. All rights reserved. もう少し詳細に 14 EC DB
EC機能本体 旧 新 印刷発注 API 印刷原価 計算 原価 DB 切り出し 切り出し
© RAKSUL, inc. All rights reserved. 抱えている課題 15 EC DB
EC機能本体 旧 新 印刷発注 API 印刷原価 計算 原価 DB DBを共有 同一テーブルを複数 のアプリケーションか ら参照 実際に切り出せたのは 一部商材のみ
© RAKSUL, inc. All rights reserved. モノリスからマイクロサービス化へのパターン 16 DB アプリケーションを先に分ける
モノリス 新 DB DBを先に分ける モノリス 新DB DB 同時に分ける モノリス 新DB 新 メリット ・短期的にはマイクロサービス化の恩恵を 受けやすい デメリット ・DBを共有したままにすると徐々に辛くなる ・テーブルスキーマの変更に複数のアプリ ケーションが追従しなくてはならない メリット ・データを軸に切り分け方を探索し易い ・比較的切り戻しし易い デメリット ・短期的なメリットは薄い メリット ・切り分け方が明確であれば一度に理想状 態に移行できる デメリット ・難易度が高い ・一発できれいに切り分けられない ・設計・開発に時間がかかるので最初に恩恵 を受けられるまでの時間軸が長い
© RAKSUL, inc. All rights reserved. 課題にどう向き合っているか 17 EC DB
EC機能本体 旧 新 印刷発注 API 印刷原価 計算 原価 DB 印刷発注基盤 DB 印刷発注 基盤 廃止する方針 一定辛みを伴うが再度責務を切り直し印刷のラクスルだけでなく他サービスからも利用できるような形でリアーキテクチャ 以前のマイクロサービス化で得られた知見を元にあるべき姿で作り直し中 → もともとのマイクロサービス化は無駄では無かった 移行のやりきり
© RAKSUL, inc. All rights reserved. まとめ・学び • 当時の判断としては必ずしも間違っているわけではなかった ◦
拡張の難しいレガシーコードに変更を加えるより、コードを切り出したほうが短期的にはリリー スが速かった ◦ ベンチャーにおいて速さは重要 • アンチパターンとしては共有DBをそのままにし続けてしまったこと ◦ 2重メンテ、3重メンテが頻発する結果に • マイクロサービス化を進めるのであればゴール設定は重要 ◦ 中途半端になってしまうと事態は悪化する ◦ あるべき姿を描き、あるべきに向けたステップを明確化してからスタートすべし 18
© RAKSUL, inc. All rights reserved. WE ARE HIRING!