5.
Japan Java User Group
MSAとは?
Microservices Architecture (MSA)
• サービスによるコンポーネント化
• ビジネスケイパビリティに基づく組織化
• プロジェクトではなくプロダクト
• スマートなエンドポイントと単純なパイプ処理
• 分散ガバナンス
• 分散データマネジメント
• インフラの自動化
• フェイルを前提とした設計
• 進化的な設計
4
6.
Japan Java User Group
MSAの2つの側面
技術面:分散配置と統合
–サービスによるコンポーネント化
–スマートなエンドポイントと単純なパイプ処理
–分散データマネジメント
–インフラの自動化
–フェイルを前提とした設計
文化面:持続性と分権
–ビジネスケイパビリティに基づく組織化
–プロジェクトではなくプロダクト
–分散ガバナンス
–進化的な設計
5
7.
Japan Java User Group
MSAの技術面
分散配置と統合
• サービスをサービスで構成する
–静的要素の組み合わせから動的要素の組み合わせへ
• メッセージによる統合
–個々の動的要素は標準プロトコルで協調動作する
• サービスをマネージする
–稼働監視、依存性管理、障害検知と復旧、ver管理
6
8.
Japan Java User Group
MSAの文化面
持続性と分権
• サービス全体を持続的に動作させる
–ソフトウェア開発からITサービス運営へ
• ドメイン固有の技術と運営
–ドメインごとの自主性を認め、標準化を否定する
• ドメイン個別のライフサイクル
–個別再構築の許容、あるいは犠牲的アーキテクチャ
7
9.
Japan Java User Group
MSAの背景 1/2
ウェブサービスのレガシー化
• いまやエンタープライズよりも巨大で複雑
• サービスの各要素ごとに特性や変化速度が大き
く異なるため、標準化ができない
–ビッグバンではなく、個別サービスの再構築
• 巨大なウェブサービスをマネージするための必
然的な選択がMSA
8
10.
Japan Java User Group
MSAの背景 2/2
サービス共有の一般化
• サービスレベルがコードで管理できる
–SDxの流れ。様々な仮想化技術
–サービス=非機能要件的なもの。性能や可用性など
–コードが機能だけではなく、サービスを管理できる
• 動作構成パターンの共有化
–OSSは静的な構成の共有化を実現し、APIは動的な構
成の共有化を実現した
–代表例がパブリッククラウドサービス
9
11.
Japan Java User Group
MSAとは
新しい理想論ではなく現実解
• Amazon.comなどの先端的なクラウドサービス
の観測結果であり、理想論というより現実解
–適切な手法を模索していたら、自然にそうなった
• ではあるが、それを先鋭化して理想論的になり
つつある状況
10
36.
Japan Java User Group
Springについて
Spring Bootだけじゃない
• あらゆる粒度で関係性の管理が行える
–Framework:アプリ内の関係性管理
–Integration:アプリ間の関係性管理
• Springは何かを規定しないからこそ、アーキテ
クトにとって魅力的であり続ける
–プラットフォームとしてのオープンさが魅力
–どのドメインでも活用できることが価値
35
Be the first to comment