Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevelopersIO DayOne モノリスかマイクロサービスか、その選択に迷っている人へ...

Ryo Yoshii
April 11, 2023

DevelopersIO DayOne モノリスかマイクロサービスか、その選択に迷っている人へ届けたい話

2023年4月11日に開催されたクラスメソッド株式会社のイベント、DevelopersIO DayOne で発表したスライドです。
「モノリスかマイクロサービスか、その選択に迷っている人へ届けたい話」をマイクロサービス導入ステップやチーム作りの観点から解説しました。

Ryo Yoshii

April 11, 2023
Tweet

More Decks by Ryo Yoshii

Other Decks in Technology

Transcript

  1. 4 自己紹介 経歴 HWエンジニア → 中小SIer → ERPコンサル → Jul

    2018 クラスメソッド Jul 2020 ネクストモード Apr 2022 クラスメソッド Follow Me https://twitter.com/YoshiiRyo1 Community OpsJAWS JAWS-UG GameTech専門支部 好きな言葉 No human labor is no human error. Ryo Yoshii 吉井 亮
  2. 6 今日話さないこと start Q Q Q Q Q Q Q

    Q Q Q Q Q Q Monolith Micro Service YES NO
  3. 24 導入する前に 1. マイクロサービス化して達成したいことは何? a. エンドユーザーへのメリットは? 2. 別の方法はなかったのか? a. モノリス、モジュラーモノリス

    b. リファクタしてまでやるか? 3. KPI は? a. 「やって良かった」と言いたい b. 定性的、定量的、定期的なレビュー
  4. 25 分散システムの罠にハマらないように 1. ネットワークは信頼できる 2. レイテンシはゼロである 3. 帯域幅は無限である 4. ネットワークは安全である

    5. トポロジは変化しない 6. 管理者は1人である 7. 転送コストはゼロである 8. ネットワークは均質である App Sales App Payment App Order App User
  5. 27 The Twelve-Factor App の理解 I. コードベース II. 依存関係 III.

    設定 IV. バックエンドサービス V. ビルド、リリース、実行 VI. プロセス VII. ポートバインディング VIII. 並行性 IX. 廃棄容易性 X. 開発/本番一致 XI. ログ XII. 管理プロセス https://12factor.net/ja/
  6. 28 マイクロサービス導入へのステップ 1. おおきな泥だんごに含まれているビジネス機能を特定する 2. ビジネス機能をランク付けする 競争上優位になるコア機能 > 支援的機能 >

    3rd Party に置き換え可能 3. 重要ではなくなっているビジネスルールと機能 4. どの機能を優先的に抽出するか 5. 最初の機能を抽出する方法を決定 6. 1~5を繰り返し、増分的に実現していく
  7. 29 マイクロサービス導入へのステップ マイクロサービス App Sales App Payment App Order App

    User モジュラーモノリス App Sales Payment Order User ビジネス機能
  8. 30 マイクロサービスへの移行パターン ストラングラーパターン Monolith Code MicroService Sales Payment Order User

    機能を移行する 移行対象 を識別する ELBなど 呼び出しを リダイレクト /payment /*
  9. 40 例 縦割りが強い組織でのコンウェイの法則 App A App B App C App

    D DB DB システム 組織 DBA App B 使いたい チーム App C 使いたい チーム App D 使いたい チーム App A 使いたい チーム 超えられない壁 超えられない壁 超えられない壁 超えられない壁 超えられないライセンス
  10. 41 組織を改善する例 コミュニケーション改善 Front Team Backend Team DBA Team スキルのサイロ化

    スキルのサイロ化 スキルのサイロ化 スキルのサイロ化 機能横断的なスキルとビジネス機能 Backend Team が コミュニケーションハブ App A Front Eng. Backend Eng. DBA App B Front Eng. Backend Eng. DBA App C Front Eng. Backend Eng. DBA App D Front Eng. Backend Eng. DBA
  11. 52 マイクロサービスに合った文化 • 市場投入までの時間を減らす Better than Nothing. EC サイトを作るとしたらどの程度の完成度でリリースしますか・・・ 40%

    : ログインオンライン決済のみ実装して1ヶ月でリリース 80% : ショッピングカート・在庫管理を実装して2ヶ月でリリース 100% : レコメンド機能・クーポン機能などオンラインショピングに必要な機能が揃えて4ヶ月でリリース https://dev.classmethod.jp/articles/knqyf263-oss-better-than-nothing-awsdevday/
  12. 60 参考にした書籍 ~Thanks~ ▪ モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド Sam Newman 著、島田 浩二 訳 ▪

    要件最適アーキテクチャ戦略 Vaughn Vernon 原著 Tomasz Jaskuła 原著 株式会社クイープ 翻訳 株式会社クイープ 監修
  13. 62