Skip to main content
創 る 、
学 べ る 、
カ サ レ ア ル 。
マイクロサービスアーキテクチャへの
モチベーション整理と
その複雑性に対する落としどころ
株式会社カサレアル
伊東 良(Ryo Ito)
ビジネスソリューション技術部
ソリューション開発1課 課長代理
Copyright 2024 CASAREAL,Inc. All rights reserved. 2
自己紹介
主にECサイトや会員管理系システムの設計/開発、
保守/運用、デザインやインフラ系も含めて幅広く
何でも屋さん的なポジションで担当。
フルサイクルエンジニア
ラーニングサービス
クラウドネイティブ
推進支援サービス
ビジネスソリューション
サービス
Copyright 2024 CASAREAL,Inc. All rights reserved. 3
カサレアルの紹介
技術者育成
オープン研修
カスタムメイド研修
新入社員研修
技術定着化ワークショップ
オリジナル教材販売
プロフェッショナル
サービス
クラウドネイティブ推進支援
GitLabソリューション
導入トレーニング
受託開発・SES
システム構築サービス
開発支援サービス
パッケージサービス
全体像から理解するクラウドネイティブ基礎 仮想インスタンス、Docker、
Kubernetes
サーバーレスアプリケーション開発 Lambda、
API Gateway、認証(Cognito)
レガシーアプリのコンテナ環境への移行 永続化/ボリューム、KubeDB Operator、
RDS・
EFS
マネージドサービスで始めるCI/CD パイプラインアズコード、CodePipeline、
CodeBuild
マイクロサービスアーキテクチャにおけるトランザクション入門 結果整合性、メッセージブローカー、SAGA、
CQRS
動的なクラウドネイティブ環境のメトリクス監視入門 Prometheus、
Grafana、
cAdvisor
Kubernetesにおける運用基本操作 スケーリング、サービスメッシュ、コンテナセキュリティ
Terraform、
Ansible を使ったIaC入門 インフラストラクチャアズコード、Terraform、
Ansible
クラウドネイティブ環境におけるログ
収集・分析のためElastic Stack入門
Elasticsearch、
Kibana、
Beats、
Logstash
マイクロサービス概要 マイクロサービスアーキテクチャ
学習範囲
Copyright 2024 CASAREAL,Inc. All rights reserved. 4
コース
カサレアルの紹介
クラウドネイティブ道場
目次
Copyright 2024 CASAREAL,Inc. All rights reserved. 5
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
≒落としどころ
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 6
Copyright 2024 CASAREAL,Inc. All rights reserved. 6
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
マイクロサービスへのモチベーション
Copyright 2024 CASAREAL,Inc. All rights reserved. 7
様々な課題の解決
ビジネスの成熟にあわせたシステムの改善や拡張をしたい
DevOpsの文化を浸透させたい
クラウドネイティブ技術の恩恵を得たい
技術的負債(EOL対応、レガシーの保守性など)を解消したい
引用元:https://licensecounter.jp/devops-hub/blog/casareal/
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 8
Copyright 2024 CASAREAL,Inc. All rights reserved. 8
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
マイクロサービスについておさらい
Copyright 2024 CASAREAL,Inc. All rights reserved. 9
9つの主な特徴
※2014年にJames Lewis氏・Martin Fowler氏より発表
①:Componentization via Services(サービスを通じたコンポーネント化)
②:Organized around Business Capabilities(ビジネス遂行能力に基づいた組織)
③:Products not Projects(プロジェクトではなくプロダクト)
④:Smart endpoints and dumb pipes(スマートエンドポイントとシンプルな通信)
⑤:Decentralized Governance(分散統治)
⑥:Decentralized Data Management(分散データ管理)
⑦:Infrastructure Automation(インフラの自動化)
⑧:Design for failure(障害発生を前提とした設計)
⑨:Evolutionary Design(進化的な設計)
引用元:https://martinfowler.com/articles/microservices.html
マイクロサービスについておさらい
Copyright 2024 CASAREAL,Inc. All rights reserved. 10
開発(Dev)において考慮すべきポイント
User Interface
サービスの分割
データの管理
各サービス間の連携
チームの統制
①:サービスを通じた
コンポーネント化
⑨:進化的な設計
⑥:分散データ管理
④:スマートエンド
ポイントと
シンプルな通信
②:ビジネス遂行能力に
基づいた組織整理
⑤:分散統治
マイクロサービスについておさらい
Copyright 2024 CASAREAL,Inc. All rights reserved. 11
運用(Ops)において考慮すべきポイント
設計
製造
テスト
リリース
運用監視
運用監視~設計
テスト~リリース
設計~製造~テスト
⑧:障害発生を前提
とした設計
⑦:インフラの自動化
③:プロジェクト
ではなく
プロダクト
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 12
Copyright 2024 CASAREAL,Inc. All rights reserved. 12
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
マイクロサービスは複雑
Copyright 2024 CASAREAL,Inc. All rights reserved. 13
狭義のマイクロサービスと広義のマイクロサービス
狭義のマイクロサービス
アプリケーションを小さな単位
(マイクロサービス)に分割する
広義のマイクロサービス
必要なアーキテクチャ、プロセス、
ツール、環境、組織を整える
小さなサービスを複数個作ることが目的
ではなく、プロダクトの全体を見渡して
仕組みを整えていくことが重要
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 14
Copyright 2024 CASAREAL,Inc. All rights reserved. 14
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
モジュラーモノリスの登場
Copyright 2024 CASAREAL,Inc. All rights reserved. 15
Modular Monoliths • Simon Brown • GOTO 2018
引用元:https://gotober.com/2018/sessions/515/modular-monoliths
Pros Cons
◆ サービスやモジュールの境界が明確で
あれば独立した運用が可能
◆ マイクロサービスの複雑性を緩和
◆ 将来的にマイクロサービスへ移行が容易
◆ モノリスであるが故のデメリットが
解消できない
◆ デプロイやリリースに工夫が必要
◆ スケーラビリティの柔軟性が下がる
Microservices is by no means a silver
bullet though, and the design thinking
required to create a good microservices
architecture is the same as that needed
to create a well structured monolith.
Simon Brown
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 16
Copyright 2024 CASAREAL,Inc. All rights reserved. 16
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
モジュラーモノリスは最適解?
Copyright 2024 CASAREAL,Inc. All rights reserved. 17
Monolith First
引用元:https://martinfowler.com/bliki/MonolithFirst.html
• マイクロサービスの成功事例
のほとんどは、モノリスが大
きくなりすぎて分割されたこ
とから始まった。
• 私が聞いたマイクロサービス
システムとしてゼロから構築
されたシステムのほとんどす
べてのケースでは、深刻な問
題に陥っています。
Martin Fowler
モジュラーモノリスは最適解?
Copyright 2024 CASAREAL,Inc. All rights reserved. 18
多くの組織にとってモジュラーモノリスは優れた選択肢となる
引用元:O‘Reilly Japan モノリスからマイクロサービスへ Sam Newman
モジュールの境界が明確に定義されていれば、高度な並列作業が
可能になる。その上、より分散化されたマイクロサービスアーキ
テクチャの課題も回避でき、デプロイもシンプルになる。
最終的にはマイクロサービスアーキテクチャに移行することを目
的としてモノリスをモジュラーモノリスに分解し始めたものの、
モジュラーモノリスで問題のほとんどを解決できることが分かっ
たという話を、これまでに複数のチームから聞いたことがある。
モジュラーモノリスは最適解?
Copyright 2024 CASAREAL,Inc. All rights reserved. 19
各サービス間の連携
サービス間通信がネットワークを介さないため設計/開発が容易
ネットワーク間のエラーハンドリングなどの複雑性が無くなる
データの管理
運用監視
単一のDBを共有するため、整合性確保やトランザクション管理
は従来のモノリスと同様の手法でよい
複数サービスを横断した監視、インフラリソースの管理が不要
CI/CDの複雑性が下がる
マイクロサービスの利点や原則を取
り入れ、明確に分けられたモジュー
ル構成にすることにより、これらの
考慮や実装が不要または簡略化され、
難易度が下がる
※完全に「考慮や実装が不要」では
なく、特性に応じて考慮は必要
マイクロサービスと比較したモジュラーモノリスの容易性
モジュラーモノリスは最適解?
Copyright 2024 CASAREAL,Inc. All rights reserved. 20
マイクロサービスと比較したモジュラーモノリスの容易性
複雑なネットワーク構成や、それらを運用する仕組みが不要
マイクロサービスでは
各サービスが独立して動作するため、サービスディスカバリや、
トラフィックの制御など複雑な知識が必要
また、サービス間通信や、外部とのインタフェースを管理する
ためにサービスメッシュやAPIゲートウェイ、それらに関連した
セキュリティの知識が必要
モジュラーモノリスでは
従来のモノリスと同様に同一プロセスで完結するため上記を気に
する必要はありません。
マイクロサービスの複雑さが大幅に
緩和されるため、まずはモジュラー
モノリスから始めて、必要に応じた
マイクロサービス化を検討すること
が成功への近道
モジュラーモノリスは最適解?
Copyright 2024 CASAREAL,Inc. All rights reserved. 21
モノリス VS モジュラーモノリス VS マイクロサービス
モノリス
App
Module
モジュラーモノリス
App
Module
Module
Module
Module
ハイブリッド
App
Module
Module
Module
App
Module
マイクロサービス
App
Module
App
Module
App
Module
App
Module
Module
いきなりマイクロサービス化するのではなく、
この領域を目指す
会社情報
Copyright 2024 CASAREAL,Inc. All rights reserved. 22
Copyright 2024 CASAREAL,Inc. All rights reserved. 22
マイクロサービスへのモチベーション
マイクロサービスについておさらい
マイクロサービスは複雑?
モジュラーモノリスの登場
モジュラーモノリスは最適解?
モジュラーモノリスから始めるマイクロサービス入門
モジュラーモノリスから始めるマイクロサービス入門
Copyright 2024 CASAREAL,Inc. All rights reserved. 23
Dev
システムの現状分析と計画
システムを移行する目的と目標を明確にする
ビジネスドメインを理解し、モデル化をする
サービスの分割
データ管理の問題への対処
サービス(≒ビジネスドメイン)の境界を明確にする
小さなドメイン単位で段階的な移行を検討する
データベースの分割方法、整合性の維持方法を検討する
データ移行計画を検討する
主要機能の部分は無理にモジュール
を分割しなくてもよい
しかし、実装/運用をしないと適切
なドメインの境界がわからないため、
設計難易度は高くなる
モジュラーモノリスから始めるマイクロサービス入門
Copyright 2024 CASAREAL,Inc. All rights reserved. 24
Ops
運用と管理
開発チームと運用チームの連携を強化(DevOps文化)
パフォーマンス測定、キャパシティプランニング
自動化と監視
組織構造とチーム編成
CI/CDの自動化ツールを活用し、作業プロセスを最適化する
監視ツールを活用し、問題発生時に迅速に対応できるようにする
柔軟でモダンなチーム編成(設計から運用までを担当)
※移行の段階に併せて権限の委譲や、独自で動けるような編成
依存関係の低いモジュール分割と、
チームを跨がない構成であれば、
モジュールごとのリリースも容易と
なり、CI/CDやリリース戦略も重要
なポイント
モジュラーモノリスから始めるマイクロサービス入門
Copyright 2024 CASAREAL,Inc. All rights reserved. 25
SRE(Site Reliability Engineering)
信頼性や可観測性の向上
可用性、応答性、パフォーマンス等の目標値を設定、監視
ログの集中管理、モニタリング、分散トレーシングツールの導入
障害対応とポストモーテム(事後分析)
継続的な改善
インシデントの対応フローや事後分析による改善
カオスエンジニアリングによる障害に備えた実験(訓練)の実施
エラーバジェット(≒エラー対処に充てられる予算)の管理
自動化ツールを活用したToil(≒手作業や繰り返し作業)の削減
モジュラーモノリスであれば、考慮
不要な要素もあるけれど、DevOps
の文化を推進していくことで併せて
達成できることが多いため、日頃か
ら意識しておくとよい
モジュラーモノリスから始めるマイクロサービス入門
Copyright 2024 CASAREAL,Inc. All rights reserved. 26
カサレアルと一緒にマイクロサービス化に向けた取り組みを始めましょう
≒モジュラーモノリス
冒頭でご紹介したクラウドネイティブ道場や、
本日お話した内容を深く学んで実践に活かせる新コース
『モジュラーモノリスから始めるマイクロサービス入門』
を2025年4月から提供開始します。
アプリ開発も含めてワンストップでクラウドネイティブ化
を行うための業務支援も行っております。
〒108-0075
東京都港区港南1-2-70品川シーズンテラス 24階
営業部 ソリューション営業課
03-4405-7866 (9:00~17:00)
お問い合わせは下記へお気軽にご連絡ください。
Copyright 2024 CASAREAL,Inc. All rights reserved. 27
Copyright 2024 CASAREAL,Inc. All rights reserved.
ブース出展もあります
お気軽にお越しください