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

保育・教育施設の業務省力化を提供する Webサービスの改善と技術的負債解消への取り組み ー マイクロサービスへの挑戦 ー

保育・教育施設の業務省力化を提供する Webサービスの改善と技術的負債解消への取り組み ー マイクロサービスへの挑戦 ー

More Decks by コドモン開発チーム

Transcript

  1. 11 本日話す内容 1 2 3 なぜマイクロサービスアーキテクチャへ移行しているか • 取り組んでいる理由 • 移行戦略

    実際にどんな感じでやっているのか • 開発の進め方(XP) • 事例紹介:資料管理サービスの移行 やってみての感想・学び これからについて 4
  2. 12 本日話す内容 1 なぜマイクロサービスアーキテクチャへ移行しているか • 取り組んでいる理由 • 移行戦略 実際にどんな感じでやっているのか •

    開発の進め方(XP) • 事例紹介:資料管理サービスの移行 やってみての感想・学び これからについて 2 3 4
  3. 18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 なぜマイクロサービスアーキテクチャへ移行しているか •

    Aを修正したら関係ないと考えていたBに影響が出る • 複数ブランチ運用による複雑度の増加 • リリース後に1箇所不具合が見つかると、全てがロールバックされてしまう • リリース調整のチーム間コミュニケーションの増加 • どこか1箇所で問題が発生すると、システム全体に波及してしまう
  4. 19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 なぜマイクロサービスアーキテクチャへ移行しているか •

    Aを修正したら関係ないと考えていたBに影響が出る • 複数ブランチ運用による複雑度の増加 • リリース後に1箇所不具合が見つかると、全てがロールバックされてしまう • リリース調整のチーム間コミュニケーションの増加 • どこか1箇所で問題が発生すると、システム全体に波及してしまう 安定してユーザーに価値を届け続けることが難しい状態に
  5. 20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 なぜマイクロサービスアーキテクチャへ移行しているか •

    Aを修正したら関係ないと考えていたBに影響が出る • 複数ブランチ運用による複雑度の増加 • リリース後に1箇所不具合が見つかると、全てがロールバックされてしまう • リリース調整のチーム間コミュニケーションの増加 • どこか1箇所で問題が発生すると、システム全体に波及してしまう 安定してユーザーに価値を届け続けることが難しい状態に 開発チームの機動力低下
  6. 23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスの利点

    • 独立してデプロイ可能 • 耐障害性の向上 • 特定箇所のみスケール可能 • チームの自律性向上 • 技術選定の機会を得られる
  7. 24 CONFIDENTIAL - © 2022 CoDMON Inc. 24 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスの利点

    • 独立してデプロイ可能 • 耐障害性の向上 • 特定箇所のみスケール可能 • チームの自律性向上 • 技術選定の機会を得られる 「ユーザーに安定して素早く価値を届け続ける」
  8. 28 CONFIDENTIAL - © 2022 CoDMON Inc. 28 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスアーキテクチャへの移行に

    会社として取り組むのは初めての挑戦 社内にナレッジも溜まっていない 経験者も少ない どれくらい時間かかるかも予想しづらい 「ユーザに安定して素早く価値を届け続ける」ことが 実現できる可能性があることはわかっている でも、
  9. 29 CONFIDENTIAL - © 2022 CoDMON Inc. 29 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスアーキテクチャへの移行に

    会社として取り組むのは初めての挑戦 社内にナレッジも溜まっていない 経験者も少ない どれくらい時間かかるかも予想しづらい 「ユーザに安定して素早く価値を届け続ける」ことが 実現できる可能性があることはわかっている でも、
  10. 30 CONFIDENTIAL - © 2022 CoDMON Inc. 30 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスアーキテクチャへの移行に

    会社として取り組むのは初めての挑戦 社内にナレッジも溜まっていない 経験者も少ない どれくらい時間かかるかも予想しづらい 「ユーザに安定して素早く価値を届け続ける」ことが 実現できる可能性があることはわかっている でも、
  11. 31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスアーキテクチャへの移行に

    会社として取り組むのは初めての挑戦 社内にナレッジも溜まっていない 経験者も少ない どれくらい時間かかるかも予想しづらい 「ユーザに安定して素早く価値を届け続ける」ことが 実現できる可能性があることはわかっている でも、
  12. 32 CONFIDENTIAL - © 2022 CoDMON Inc. 32 なぜマイクロサービスアーキテクチャへ移行しているか マイクロサービスアーキテクチャへの移行に

    会社として取り組むのは初めての挑戦 社内にナレッジも溜まっていない 経験者も少ない どれくらい時間かかるかも予想しづらい 全体の戦略を立てるために不確実性を減らす必要があった
  13. 34 CONFIDENTIAL - © 2022 CoDMON Inc. 34 なぜマイクロサービスアーキテクチャへ移行しているか ビジネス視点

    ・新規ユーザー獲得に繋がる ・契約維持に繋がる ・プロダクトの活用速度が上がる ・重大なトラブルを防止できる etc. 技術視点 ・ドメイン複雑度 ・他サービスとの依存度 ・データ移行の必要性 ・スケーリングの必要度合い etc. ✖ 改修可能性を上げることで 事業成長につながるか 改修難易度と移行難易度
  14. 39 CONFIDENTIAL - © 2022 CoDMON Inc. 39 なぜマイクロサービスアーキテクチャへ移行しているか ドメイン複雑度

    モバイルリリース データ移行 他サービス依存度 シフト 高 無 無 低 資料 低 有 有 低
  15. 48 CONFIDENTIAL - © 2022 CoDMON Inc. 48 実際にどんな感じでやっているのか:開発の進め方 システムのアーキテクチャだけでなく、

    開発手法でもユーザーに安定して価値を 届け続けることにアプローチしたかった
  16. 50 CONFIDENTIAL - © 2022 CoDMON Inc. 50 実際にどんな感じでやっているのか:開発の進め方 プラクティス

    人間性 経済性 相互利益 自己相似性 改善  ふりかえり 流れ 機会 冗長性 失敗 品質 ベイビーステップ 責任の引き受け 多様性 チーム全体 計画ゲーム 小さなリリース 受け入れテスト 共同所有 持続可能なペース メタファー 継続的インテグレーション テスト駆動開発 ペアプログラミング リファクタリング シンプルな設計 価値 コミュニケーション シンプリシティ フィードバック 勇気 リスペクト 原則
  17. 51 CONFIDENTIAL - © 2022 CoDMON Inc. 51 実際にどんな感じでやっているのか:開発の進め方 Robert

    C.Martin (著), 角 征典 (翻訳), 角谷 信太郎 (翻訳) 「Clean Agile 基本に立ち戻れ」KADOKAWA 47ページ
  18. 52 CONFIDENTIAL - © 2022 CoDMON Inc. 52 実際にどんな感じでやっているのか:開発の進め方 Robert

    C.Martin (著), 角 征典 (翻訳), 角谷 信太郎 (翻訳) 「Clean Agile 基本に立ち戻れ」KADOKAWA 47ページ • 全てのプラクティスを取り入れる • 守破離の守を大切にする “一度にひとつだけのプラクティスを選んでも改善は見られるだろう。 だが、組み合わせて使うようになれば、劇的な改善が見られるはずだ。 プラクティスの相互作用が、その効果を増幅させるのである。” Kent Beck, Cynthia Andres, 角 征典(訳) 「エクストリーム・プログラミング」オーム社 34 ページ
  19. 53 CONFIDENTIAL - © 2022 CoDMON Inc. 53 実際にどんな感じでやっているのか:開発の進め方 Robert

    C.Martin (著), 角 征典 (翻訳), 角谷 信太郎 (翻訳) 「Clean Agile 基本に立ち戻れ」KADOKAWA 47ページ • 全てのプラクティスを取り入れる • 守破離の守を大切にする “一度にひとつだけのプラクティスを選んでも改善は見られるだろう。 だが、組み合わせて使うようになれば、劇的な改善が見られるはずだ。 プラクティスの相互作用が、その効果を増幅させるのである。” Kent Beck, Cynthia Andres, 角 征典(訳) 「エクストリーム・プログラミング」オーム社 34 ページ
  20. 55 CONFIDENTIAL - © 2022 CoDMON Inc. 55 実際にどんな感じでやっているのか:開発の進め方 ユーザーストーリーの

    受け入れ条件について 認識を合わせる ペアでTDDを 実践しながら進める リモートリポジトリにPush ローカルでテストが 通ることを確認 受け入れテストを記述 CI上でテスト実行 ステージング環境で確認 サイクルを回し続ける 本番環境にデプロイ
  21. 56 CONFIDENTIAL - © 2022 CoDMON Inc. 56 実際にどんな感じでやっているのか:開発の進め方 ユーザーストーリーの

    受け入れ条件について 認識を合わせる ペアでTDDを 実践しながら進める リモートリポジトリにPush ローカルでテストが 通ることを確認 受け入れテストを記述 CI上でテスト実行 ステージング環境で確認 サイクルを回し続ける 本番環境にデプロイ
  22. 60 CONFIDENTIAL - © 2022 CoDMON Inc. 60 実際にどんな感じでやっているのか:開発の進め方 •

    開発する時の運用がシンプルに ◦ コンフリクトを早めに検知できる(修正も小さい) ◦ Mainブランチをpullしてくればよいという状況が作れる トランクベース開発によるメリット
  23. 61 CONFIDENTIAL - © 2022 CoDMON Inc. 61 実際にどんな感じでやっているのか:開発の進め方 トランクベース開発

    ペアプログラミング 常にソースコードがレビューされている テスト駆動開発 コードがシンプルでテストが存在して いる 受け入れテスト ストーリー毎の受け入れ条件を定義している 継続的インテグレーション 頻繁に統合し、テストが通るか確認している
  24. 64 CONFIDENTIAL - © 2022 CoDMON Inc. 64 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon S3
  25. 65 CONFIDENTIAL - © 2022 CoDMON Inc. 65 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon S3 Amazon CloudFront
  26. 66 CONFIDENTIAL - © 2022 CoDMON Inc. 66 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon Aurora 新サービス ECS Fargate 資料管理サービス AWS Fargate Amazon SQS Publisher Subscriber データ同期バッチ Amazon S3 Amazon S3 Amazon S3 AWS Fargate Amazon CloudFront
  27. 67 CONFIDENTIAL - © 2022 CoDMON Inc. 67 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon Aurora 新サービス ECS Fargate 資料管理サービス AWS Fargate Amazon SQS Publisher Subscriber データ同期バッチ Amazon S3 Amazon S3 Amazon S3 AWS Fargate Amazon CloudFront
  28. 69 CONFIDENTIAL - © 2022 CoDMON Inc. 69 実際にどんな感じでやっているのか:事例紹介 バックエンド

    Kotlin 扱うドメインを型で表現できる 初導入ではあるが、メンバーの経験があった E2Eテスト Gauge + Playwright 仕様をマークダウン形式で表現できる Chrome + FireFox + Safariのテストができる CI/CD GitHub Actions インフラ ECS 容易にスケールできる Dockerとの相性 フロントエンド Nuxt.js 社内にナレッジが溜まっていた フロントで新しい技術を取り入れるのは リスクが高いと判断 技術スタック
  29. 71 CONFIDENTIAL - © 2022 CoDMON Inc. 71 実際にどんな感じでやっているのか:事例紹介 •

    現行システムと疎結合にしたい • ビッグバンリリースを避けたい • リプレイス後のプロダクトは容易に運用できるように • 今回はAPI・DB・フロントを切り出しました リプレイスのアプローチ
  30. 72 CONFIDENTIAL - © 2022 CoDMON Inc. 72 実際にどんな感じでやっているのか:事例紹介 リプレイスのアプローチ

    リリースしてからユーザーに数年使っていただいていたため、 何が真に求められるかが解像度高くわかっていた
  31. 73 CONFIDENTIAL - © 2022 CoDMON Inc. 73 実際にどんな感じでやっているのか:事例紹介 APIとDBのみを移行する選択肢もありましたが、資料サービスに関して

    は変えたい仕様があり、このタイミングで変えたほうがリプレイス後に 変えるより効率的だと判断しました。 リプレイスのアプローチ リリースしてからユーザーに数年使っていただいていたため、 何が真に求められるかが解像度高くわかっていた
  32. 75 CONFIDENTIAL - © 2022 CoDMON Inc. 75 実際にどんな感じでやっているのか:事例紹介 Strangler

    patternとは • 移行対象のサービスを稼働させつつ、 横で代行となるサービスを構築する • 並行稼働しながら徐々に 新サービスに切り替える https://microservices.io/patterns/refactoring/strangler-application.html
  33. 76 CONFIDENTIAL - © 2022 CoDMON Inc. 76 実際にどんな感じでやっているのか:事例紹介 •

    最初から本番環境へ小さくリリースすることができる トラフィックを切り替えるまで影響がない Strangler patternのメリット
  34. 77 CONFIDENTIAL - © 2022 CoDMON Inc. 77 実際にどんな感じでやっているのか:事例紹介 •

    最初から本番環境へ小さくリリースすることができる トラフィックを切り替えるまで影響がない Strangler patternのメリット
  35. 78 CONFIDENTIAL - © 2022 CoDMON Inc. 78 実際にどんな感じでやっているのか:事例紹介 •

    カナリアリリース 徐々に実際のユーザーにリリースできる Strangler patternのメリット
  36. 79 CONFIDENTIAL - © 2022 CoDMON Inc. 79 実際にどんな感じでやっているのか:事例紹介 •

    カナリアリリース 徐々に実際のユーザーにリリースできる Strangler patternのメリット
  37. 80 CONFIDENTIAL - © 2022 CoDMON Inc. 80 実際にどんな感じでやっているのか:事例紹介 •

    カナリアリリース 徐々に実際のユーザーにリリースできる Strangler patternのメリット
  38. 81 CONFIDENTIAL - © 2022 CoDMON Inc. 81 実際にどんな感じでやっているのか:事例紹介 •

    フェイルセーフ 新規サービスで問題が発覚したら、 旧サービスにすぐにロールバックできる Strangler patternのメリット
  39. 82 CONFIDENTIAL - © 2022 CoDMON Inc. 82 実際にどんな感じでやっているのか:事例紹介 •

    フェイルセーフ 新規サービスで問題が発覚したら、 旧サービスにすぐにロールバックできる Strangler patternのメリット
  40. 84 CONFIDENTIAL - © 2022 CoDMON Inc. 84 実際にどんな感じでやっているのか:事例紹介 •

    データマイグレーション • 施設向けサービス • 保護者アプリ
  41. 86 CONFIDENTIAL - © 2022 CoDMON Inc. 86 実際にどんな感じでやっているのか:事例紹介 •

    ストック型のサービス、蓄積された過去の資料を 閲覧・編集できる必要がある データマイグレーションが必要な理由
  42. 87 CONFIDENTIAL - © 2022 CoDMON Inc. 87 実際にどんな感じでやっているのか:事例紹介 •

    ストック型のサービス、蓄積された過去の資料を 閲覧・編集できる必要がある • 過去の資料は旧データベースを見るという選択肢もあったが、 サービスの関係は疎結合にしたかった データマイグレーションが必要な理由
  43. 88 CONFIDENTIAL - © 2022 CoDMON Inc. 88 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon S3 Amazon Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon CloudFront
  44. 89 CONFIDENTIAL - © 2022 CoDMON Inc. 89 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon S3 Amazon CloudFront
  45. 90 CONFIDENTIAL - © 2022 CoDMON Inc. 90 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス AWS Fargate Amazon SQS Publisher Subscriber データ同期バッチ Amazon S3 AWS Fargate Amazon Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon CloudFront
  46. 91 CONFIDENTIAL - © 2022 CoDMON Inc. 91 実際にどんな感じでやっているのか:事例紹介 Amazon

    Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 EC2 保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス AWS Fargate Amazon SQS Publisher Subscriber データ同期バッチ Amazon S3 AWS Fargate Amazon CloudFront
  47. 93 CONFIDENTIAL - © 2022 CoDMON Inc. 93 実際にどんな感じでやっているのか:事例紹介 テストの概要

    自動テスト(Gauge)+手動テストで移行バッチを担保する テスト観点 自動テスト • 移行したデータがS3やDBに入っているか • 資料の状態の組み合わせなど網羅的に確認 • 移行失敗によるロールバックの確認 手動テスト • データ移行前後の表示崩れがないかを確認 • 移行バッチ実行による負荷のテスト • 各種設定の確認(SQS,Datadog(log)など)
  48. 101 CONFIDENTIAL - © 2022 CoDMON Inc. 101 実際にどんな感じでやっているのか:事例紹介 •

    アプリのリリースと独立できる 同期状態にして嬉しかったこと
  49. 102 CONFIDENTIAL - © 2022 CoDMON Inc. 102 実際にどんな感じでやっているのか:事例紹介 •

    アプリのリリースと独立できる • システムをメンテナンスモードにする必要がない 同期状態にして嬉しかったこと
  50. 103 CONFIDENTIAL - © 2022 CoDMON Inc. 103 実際にどんな感じでやっているのか:事例紹介 •

    アプリのリリースと独立できる • システムをメンテナンスモードにする必要がない • 旧サービスと新サービスの並行稼働が可能になった 同期状態にして嬉しかったこと
  51. 105 CONFIDENTIAL - © 2022 CoDMON Inc. 105 実際にどんな感じでやっているのか:事例紹介 EC2

    保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon S3 移行前 Amazon Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon CloudFront
  52. 106 CONFIDENTIAL - © 2022 CoDMON Inc. 106 実際にどんな感じでやっているのか:事例紹介 Amazon

    Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 EC2 保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon S3 移行後 Amazon CloudFront
  53. 107 CONFIDENTIAL - © 2022 CoDMON Inc. 107 実際にどんな感じでやっているのか:事例紹介 •

    フィーチャーフラグ 社内ユーザーのみが見えるようにし、本番に継続的にデプロイしていく 施設向けサービス並行稼働
  54. 108 CONFIDENTIAL - © 2022 CoDMON Inc. 108 実際にどんな感じでやっているのか:事例紹介 •

    フィーチャーフラグ 社内ユーザーのみが見えるようにし、本番に継続的にデプロイしていく 施設向けサービス並行稼働 featureName hoge fuga
  55. 109 CONFIDENTIAL - © 2022 CoDMON Inc. 109 実際にどんな感じでやっているのか:事例紹介 •

    カナリアリリース 失敗したとしても小さく失敗するように 施設向けサービス並行稼働
  56. 110 CONFIDENTIAL - © 2022 CoDMON Inc. 110 実際にどんな感じでやっているのか:事例紹介 •

    カナリアリリース 失敗したとしても小さく失敗するように 施設向けサービス並行稼働 betaFacilities 1 2
  57. 112 CONFIDENTIAL - © 2022 CoDMON Inc. 112 実際にどんな感じでやっているのか:事例紹介 Amazon

    Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 EC2 保護者向けサービス Amazon Aurora モノリス EC2 施設向けサービス Amazon S3 移行前 Amazon CloudFront モバイル アプリ
  58. 113 CONFIDENTIAL - © 2022 CoDMON Inc. 113 実際にどんな感じでやっているのか:事例紹介 Amazon

    Aurora 新サービス ECS Fargate 資料管理サービス Amazon S3 Amazon S3 Amazon Aurora モノリス Amazon S3 移行後 Amazon CloudFront EC2 保護者向けサービス EC2 施設向けサービス モバイル アプリ
  59. 114 CONFIDENTIAL - © 2022 CoDMON Inc. 114 実際にどんな感じでやっているのか:事例紹介 •

    フィーチャーフラグ フィーチャーフラグを利用し、 アプリリリースを行わずにロールバックできるように • フェイルセーフ 新画面でエラーが発生した際は、旧画面を見れるように • 段階リリース AppleとAndroidの機能を利用して実施 安全なリリースに向けて
  60. 115 CONFIDENTIAL - © 2022 CoDMON Inc. 115 実際にどんな感じでやっているのか:事例紹介 •

    フェイルセーフ ◦ 500エラーが発生した時にそれをユーザー に知らせ、旧画面への遷移を用意 安全なリリースに向けて
  61. 116 CONFIDENTIAL - © 2022 CoDMON Inc. 116 実際にどんな感じでやっているのか:事例紹介 •

    データマイグレーション 並行運用できるようにデータ同期を行った。網羅性の高い自動テストがあることで、 不具合修正や細かな仕様変更に対し、回帰的なテストが行えた • 施設向けサービス 常時同期でデータ移行をしていたため、新旧サービスを並行稼働させることができ、 一気に移行するということを回避したカナリアリリースを行い、 少しずつ適応施設を増やしていった • 保護者アプリ フィーチャーフラグ・フェイルセーフ・段階リリースを利用し、 安全を担保した状態でリリース まとめ
  62. 118 CONFIDENTIAL - © 2022 CoDMON Inc. 118 実際にどんな感じでやっているのか:事例紹介 •

    Aを修正したら関係ないと考えていたBに影響が出る   • 複数ブランチ運用による複雑度の増加   • リリース後に1箇所デグレが起きると全てが戻ってしまう   • リリース調整のチーム間コミュニケーションの増加   • どこか一箇所に問題があると、システム全体に波及してしまう  
  63. 119 CONFIDENTIAL - © 2022 CoDMON Inc. 119 実際にどんな感じでやっているのか:事例紹介 •

    Aを修正したら関係ないと考えていたBに影響が出る  →影響は資料サービス内に閉じている • 複数ブランチ運用による複雑度の増加  →トランクベース開発による複雑度の低下 • リリース後に1箇所デグレが起きると全てが戻ってしまう  →他のサービスの影響を受けない • リリース調整のチーム間コミュニケーションの増加  →独立してデプロイできる • どこか一箇所に問題があると、システム全体に波及してしまう  →資料サービス内だけに閉じており、他の影響も受けない
  64. 121 CONFIDENTIAL - © 2022 CoDMON Inc. 121 やってみての感想・学び •

    XP導入による恩恵 資料サービスは安全に素早くリリースができる状態になった。 ペアプログラミングにより属人化がなくなり、 メンバーそれぞれが得意分野で力を発揮しつつ、他の分野においても成長できた。 • 自動テストを初期から入れたので安全に進めることができた テスト作成に時間を投資し続けることについては、強い気持ちが必要。 途中で書かないほうが早いのではと感じる時が来たりする。 (今はチームメンバ全員が書いて良かったと思っています) • 既存サービスとの関わりが難しい 既存サービスの仕様や制約の調査を行うことが大切。 リプレイスがユーザーの業務に影響を与えないように、トラブルがあった場合もすぐに切り戻せ る体制を作っておく。 • 初動の加速が重要 初めて作成する基盤が多かったこともあり、プロジェクト完了に8ヶ月間を費やした。 今回の経験を蓄えたイネイブリングチームを作ることで、次回以降の初動を早めていきたい。
  65. 122 CONFIDENTIAL - © 2022 CoDMON Inc. 122 やってみての感想・学び •

    XP導入による恩恵 資料サービスは安全に素早くリリースができる状態になった。 ペアプログラミングにより属人化がなくなり、 メンバーそれぞれが得意分野で力を発揮しつつ、他の分野においても成長できた。 • 自動テストを初期から入れたので安全に進めることができた テスト作成に時間を投資し続けることについては、強い気持ちが必要。 途中で書かないほうが早いのではと感じる時が来たりする。 (今はチームメンバ全員が書いて良かったと思っています) • 既存サービスとの関わりが難しい 既存サービスの仕様や制約の調査を行うことが大切。 リプレイスがユーザーの業務に影響を与えないように、トラブルがあった場合もすぐに切り戻せ る体制を作っておく。 • 初動の加速が重要 初めて作成する基盤が多かったこともあり、プロジェクト完了に8ヶ月間を費やした。 今回の経験を蓄えたイネイブリングチームを作ることで、次回以降の初動を早めていきたい。
  66. 123 CONFIDENTIAL - © 2022 CoDMON Inc. 123 やってみての感想・学び •

    XP導入による恩恵 資料サービスは安全に素早くリリースができる状態になった。 ペアプログラミングにより属人化がなくなり、 メンバーそれぞれが得意分野で力を発揮しつつ、他の分野においても成長できた。 • 自動テストを初期から入れたので安全に進めることができた テスト作成に時間を投資し続けることについては、強い気持ちが必要。 途中で書かないほうが早いのではと感じる時が来たりする。 (今はチームメンバ全員が書いて良かったと思っています) • 既存サービスとの関わりが難しい 既存サービスの仕様や制約の調査を行うことが大切。 リプレイスがユーザーの業務に影響を与えないように、トラブルがあった場合もすぐに切り戻せ る体制を作っておく。 • 初動の加速が重要 初めて作成する基盤が多かったこともあり、プロジェクト完了に8ヶ月間を費やした。 今回の経験を蓄えたイネイブリングチームを作ることで、次回以降の初動を早めていきたい。
  67. 124 CONFIDENTIAL - © 2022 CoDMON Inc. 124 やってみての感想・学び •

    XP導入による恩恵 資料サービスは安全に素早くリリースができる状態になった。 ペアプログラミングにより属人化がなくなり、 メンバーそれぞれが得意分野で力を発揮しつつ、他の分野においても成長できた。 • 自動テストを初期から入れたので安全に進めることができた テスト作成に時間を投資し続けることについては、強い気持ちが必要。 途中で書かないほうが早いのではと感じる時が来たりする。 (今はチームメンバ全員が書いて良かったと思っています) • 既存サービスとの関わりが難しい 既存サービスの仕様や制約の調査を行うことが大切。 リプレイスがユーザーの業務に影響を与えないように、トラブルがあった場合もすぐに切り戻せ る体制を作っておく。 • 初動の加速が重要 初めて作成する基盤が多かったこともあり、プロジェクト完了に8ヶ月間を費やした。 今回の経験を蓄えたイネイブリングチームを作ることで、次回以降の初動を早めていきたい。
  68. 125 CONFIDENTIAL - © 2022 CoDMON Inc. 125 やってみての感想・学び •

    XP導入による恩恵 資料サービスは安全に素早くリリースができる状態になった。 ペアプログラミングにより属人化がなくなり、 メンバーそれぞれが得意分野で力を発揮しつつ、他の分野においても成長できた。 • 自動テストを初期から入れたので安全に進めることができた テスト作成に時間を投資し続けることについては、強い気持ちが必要。 途中で書かないほうが早いのではと感じる時が来たりする。 (今はチームメンバ全員が書いて良かったと思っています) • 既存サービスとの関わりが難しい 既存サービスの仕様や制約の調査を行うことが大切。 リプレイスがユーザーの業務に影響を与えないように、トラブルがあった場合もすぐに切り戻せ る体制を作っておく。 • 初動の加速が重要 初めて作成する基盤が多かったこともあり、プロジェクト完了に8ヶ月間を費やした。 今回の経験を蓄えたイネイブリングチームを作ることで、次回以降の初動を早めていきたい。
  69. 127 CONFIDENTIAL - © 2022 CoDMON Inc. 127 これからについて ドメイン複雑度

    モバイルリリース データ移行 他サービス依存度 シフト 高 無 無 低 資料 低 有 有 低 ???(next…) 高 有 有 高
  70. 128 CONFIDENTIAL - © 2022 CoDMON Inc. 128 これからについて •

    複雑なトランザクションの管理 • マイクロサービス間の連携自動テスト(CDC) • 初動の高速化(イネイブリングチーム) • リプレイスの複線化
  71. 132 CONFIDENTIAL - © 2022 CoDMON Inc. 132 なぜマイクロサービスアーキテクチャへ移行しているか 「ユーザーに安定して素早く価値を届け続ける」

    マイクロサービスだけでなく、 モノリスのリファクタリングや モジュラーモノリス化も進めています そのために
  72. 133 CONFIDENTIAL - © 2022 CoDMON Inc. 133 なぜマイクロサービスアーキテクチャへ移行しているか https://tech.codmon.com/ent

    ry/2022/06/28/134446 https://speakerdeck.com/co dmoninc/ji-shu-de-fu-zhai-ni xiang-kihe-isok-keruzi-shi-h asukirufu-noguang-garinimox i-garuhua