AD導入 • シャーディングについて 今回発表に含まないこと Not included in this presentation • Detailed Approach for Each Project • Related Sub-Projects ◦ Extracting services from a monolithic system ◦ Introducing Billing API ◦ Introducing Azure AD to Admin screen • About DB Sharding
b. 共通移行期 c. 個別移行期 5. 桃園脱却で見えた次の課題 目次 Table of Contents 1. What is the Peach Garden Oath Architecture? 2. Purpose of Peach Garden Escape 3. What is the Warizan team 4. Activity of the Warizan team a. Exploration Phase b. Common Migration Phase c. Individual Migration Phase 5. The next challenge after Peach Garden Escape
Architecture? From “Romance of the Three Kingdoms”: The Oath of the Peach Garden "Even if we were not born at the same time, we hope to die at the same time."
at the same time, we hope to die at the same time." → "Even if not created at the same time, the services will go down at the same time." 桃園の誓いアーキテクチャとは? What is the Peach Garden Oath Architecture?
◦ 深夜にインフラが立ち会い • DB変更のリリース ◦ 複数サービスで同時にリリース 桃園アーキテクチャのつらみ The Pain of the Peach Garden Oath Architecture 📚 Challenges • Slow Query causes across-the board outages ◦ B toB outages affected B toC ◦ Occurred several times a month • DB change releases ◦ Infrastructure team monitors the release late at night ◦ Multiple services must release at the same time
◦ 固有情報が別サービスで利用 📚 Challenges • Development slowed down ◦ Difficult to make change decisions • Unintended use of data ◦ Seller, Discount ticket ◦ Dedicated information used in other servics 桃園アーキテクチャのつらみ The Pain of the Peach Garden Oath Architecture
桃園脱却の Enabling チームの役割 • A Team to divide the Shared Database in Business Company • The Team enabling Peach Garden Escape ServiceA / Shared DB = ServiceA DB ServiceB / Shared DB = ServiceB DB …
Actions in Exploration Phase 📚 Challenges • Unclear order of tasks • Unclear how to complete tasks ✅ 対応 • サービスチームの中に入って 一緒にプロジェクトを推進 • 依存関係の整理 • ファーストペンギンを作る ✅ Actions • Joined the Service Teams to drive the Project Together • Streamlined dependencies • Made the first use case
to own DB [Common] ◦ Office Separation ◦ User Separation • Migrate table to own DB [Unique] • Development of data syncronization function [Unique] • 共通テーブル移行 [共通] ◦ 事業者分離 ◦ ユーザー分離 • 個別テーブル移行 [個別] • データ同期機能の開発 [個別]
個別テーブル移行 [独自] • データ同期機能の開発 [独自] • Migrate shared table to own DB [Common] ◦ Office Separation ◦ User Separation • Migrate table to own DB [Unique] • Development of data syncronization function [Unique] 探索期 のプロジェクト Projects in Exploration Phase 多くのプロジェクトで利用された “共通テーブル移行 ” を説明します 一部データのみ移行対象の場合に利用 I will talk more about the Shared table migration This flow is used for partial data migration
1/2 Challenges and Actions in Common Migration Phase 1/2 ✅ したこと • ステークホルダーマップの作成 • 各サービスの定例を開催 • それぞれの桃園チャンネルの作成 📚 Challenges • Change of person in charge • Person in charge for each service is unclear • Hard to post on the general channel ✅ Actions • Created a stakeholder map • Regular meetings with each service • Created individual “Peach Garden” channels
• Create an overall stakeholder map, including other Company’s organizations • To prevent personalization, created a list of Slack Channel / mention groups
共通移行期 の課題と対応 2/2 Challenges and Actions in Common Migration Phase 2/2 ✅ したこと • 全体のプロジェクト進捗を可視化 📚 Challenges • Each service had a different process • Different task & schedule management ◦ Comprehensive management is difficult ✅ Actions • Visualized Overall Project progress
Services B and C are working on office Separation. Services A and D are working on user separation Share the knowledge between B-C and A-D Visualize the Overall Project progress
the Individual Migration Phase 1/2 📚 Challenges • Challenges are different among Services ✅ したこと • プロジェクト単位でMTGを実施 • 固有の問題なので深入りしない ◦ わり算は全体をサポート ◦ リリース日程だけ調整 ✅ Actions • Hold meetings by project • Don’t go deeply into project-uniuqe issues ◦ Warizan provides holistic support ◦ Just adjust the release schedule
Challenges and Actions in the Individual Migration Phase 2/2 📚 Challenges • Service table migration was completed in 3 months (about 250 tables). • Service data changed significantly. ✅ したこと • ステークホルダーマップをもとにデー タ利用ユーザーへの情報共有 ✅ Actions • Share changes with data users based on the Stakeholder Map
◦ 請求書の発行 ◦ 課金集計バッチの実行 • 確定申告期間中のリリース制限 桃園脱却を進める上でつらかったこと Initially unexpected usage • Discount ticket ◦ Application to multiple services ◦ Sold to unspecified entities Characteristics of services • End/beginning of month release restrictions ◦ Invoicing, Billing batch processes • Release restrictions during to tax return season What we struggled in Peach Garden Escape
• 誰に相談をすれば良いか 🌱 いまゼロから始めるとしたら 🌱 Determine the goals and deadlines • Clarify objectives 🌿 Determine the approach and owner • Office, user separation • Target scope of support • Who to consult for what If I were to start from scratch now
• 「創業当時は良い選択だった」――マ ネーフォワードのアーキテクチャ変遷、 クラウドネイティブに変革した理由 (Japanese only) 各サービスチームが全力で開発したこ と Assist by Nakade-san(CTO) • Inside the Mind of the Money Forward CTO(December, 2023) Each Service Team worked very hard. 🌈 桃園脱却を進める上でよかったこと Good Things about the Peach Garden Escape
◦ Ruby から Kotlin へ • Warizan's expertise knowledge led to establishing new service and tech teams • Many Warizan members have grown and moved on to other projects • Warizan’s next challenge ◦ Development of new service ◦ Shift from Ruby to Kotlin 🌈 わり算の変化 Changes that Happened in the Warizan Team
イベントベースでの通信 ◦ Kafka の利用推進 桃園脱却後の課題 Challenges after Peach Garden Escape • Inconsistency in Common Data ◦ Common Master • Cost rise by AWS Migration ◦ AWS cost optimization • Event-based communication ◦ Promote the Use of Kafka