マイクロサービスアーキテクチャ(Sam Newman)
書籍情報
- 著者: Sam Newma(著)
- 発行日: 2016-02-26
- ISBN: 9784873117607
- URL: https://www.oreilly.co.jp/books/9784873117607
書籍目次
- はじめに
- 1章 マイクロサービス
- 1.1 マイクロサービスとは
- 1.2 主な利点
- 1.3 サービス指向アーキテクチャ
- 1.4 他の分解テクニック
- 1.5 銀の弾丸などない
- 1.6 まとめ
- 2章 進化的アーキテクト
- 2.1 不正確な比較
- 2.2 進化するアーキテクト像
- 2.3 区画指定
- 2.4 原則に基づいたアプローチ
- 2.5 必要な標準
- 2.6 コードを介したガバナンス
- 2.7 技術的負債
- 2.8 例外処理
- 2.9 中央からのガバナンスと指導
- 2.10 チームの構築
- 2.11 まとめ
- 3章 サービスのモデル化方法
- 3.1 MusicCorpの紹介
- 3.2 優れたサービスにするには
- 3.3 境界づけられたコンテキスト
- 3.4 ビジネス機能
- 3.5 ずっと下の亀
- 3.6 ビジネス概念の観点での通信
- 3.7 技術的境界
- 3.8 まとめ
- 4章 統合
- 4.1 理想的な統合技術の探索
- 4.2 顧客とのインタフェース
- 4.3 共有データベース
- 4.4 同期と非同期
- 4.5 オーケストレーションとコレオグラフィ
- 4.6 リモートプロシージャコール(RPC)
- 4.7 REST
- 4.8 非同期イベントベース連携の実装
- 4.9 状態マシンとしてのサービス
- 4.10 Rx(Reactive Extentions)
- 4.11 マイクロサービスの世界におけるDRYと コード再利用のリスク
- 4.12 参照によるアクセス
- 4.13 バージョニング
- 4.14 ユーザインタフェース
- 4.15 サードパーティソフトウェアとの統合
- 4.16 まとめ
- 5章 モノリスの分割
- 5.1 すべては接合部次第
- 5.2 MusicCorpの分解
- 5.3 モノリスを分割する理由
- 5.4 入り組んだ依存関係
- 5.5 データベース
- 5.6 問題の対処
- 5.7 例:外部キー関係の削除
- 5.8 例:共有静的データ
- 5.9 例:共有データ
- 5.10 例:共有テーブル
- 5.11 データベースリファクタリング
- 5.12 トランザクション境界
- 5.13 レポート
- 5.14 レポートデータベース
- 5.15 サービス呼び出しを介したデータ取得
- 5.16 データポンプ
- 5.17 イベントデータポンプ
- 5.18 バックアップデータポンプ
- 5.19 リアルタイムを目指す
- 5.20 変更のコスト
- 5.21 根本原因の理解
- 5.22 まとめ
- 6章 デプロイ
- 6.1 継続的インテグレーションとは
- 6.2 継続的インテグレーションのマイクロサービスへのマッピング
- 6.3 ビルドパイプラインと継続的デリバリ
- 6.4 プラットフォーム固有の成果物
- 6.5 OS成果物
- 6.6 カスタムイメージ
- 6.7 環境
- 6.8 サービス構成
- 6.9 サービスからホストへのマッピング
- 6.10 自動化
- 6.11 物理から仮想へ
- 6.12 デプロイのインタフェース
- 6.13 まとめ
- 7章 テスト
- 7.1 テストの種類
- 7.2 テストスコープ
- 7.3 サービステストの実装
- 7.4 面倒なエンドツーエンドテスト
- 7.5 エンドツーエンドテストの欠点
- 7.6 信頼できない脆弱なテスト
- 7.7 ストーリーではなくジャーニーをテストする
- 7.8 救いとなるコンシューマ駆動テスト
- 7.9 エンドツーエンドテストを使用すべきか
- 7.10 本番リリース後のテスト
- 7.11 機能横断テスト
- 7.12 まとめ
- 8章 監視
- 8.1 単一サービス、単一サーバ
- 8.2 単一サービス、複数サーバ
- 8.3 複数サービス、複数サーバ
- 8.4 ログ、ログ、さらにまたログ
- 8.5 複数サービスにわたるメトリックの追跡
- 8.6 サービスのメトリック
- 8.7 合成監視
- 8.8 相関ID
- 8.9 連鎖
- 8.10 標準化
- 8.11 利用者の考慮
- 8.12 将来
- 8.13 まとめ
- 9章 セキュリティ
- 9.1 認証と認可
- 9.2 サービス間の認証と認可
- 9.3 格納データの保護
- 9.4 徹底的な防御
- 9.5 実施例
- 9.6 節約する
- 9.7 人的要素
- 9.8 黄金律
- 9.9 セキュリティの組み込み
- 9.10 外部検証
- 9.11 まとめ
- 10章 コンウェイの法則とシステム設計
- 10.1 証拠
- 10.2 NetflixとAmazon
- 10.3 この法則で何ができるか
- 10.4 コミュニケーション経路に適応する
- 10.5 サービスの所有権
- 10.6 共有サービスに向かう要因
- 10.7 社内オープンソース
- 10.8 境界づけられたコンテキストとチーム構造
- 10.9 孤児サービス
- 10.10 ケーススタディ:RealEstate.com.au
- 10.11 逆向きのコンウェイの法則
- 10.12 人
- 10.13 まとめ
- 11章 大規模なマイクロサービス
- 11.1 障害はどこにでもある
- 11.2 どれくらいが多すぎるのか
- 11.3 機能低下
- 11.4 アーキテクチャ上の安全対策
- 11.5 アンチフラジャイルな組織
- 11.6 冪等性
- 11.7 スケーリング
- 11.8 データベースのスケーリング
- 11.9 キャッシング
- 11.10 オートスケーリング
- 11.11 CAP定理
- 11.12 サービス検出
- 11.13 動的サービスレジストリ
- 11.14 サービスの文書化
- 11.15 自己記述型システム
- 11.16 まとめ
- 12章 まとめ
- 12.1 マイクロサービスの原則
- 12.2 マイクロサービスを使用すべきでない場合
- 12.3 最後に
- 付録 実際のマイクロサービス:Azure Service Fabric