プロダクションレディマイクロサービス

―運用に強い本番対応システムの実装と標準化

[cover photo]
TOPICS
Web
発行年月日
PRINT LENGTH
216
ISBN
978-4-87311-815-4
原書
Production-Ready Microservices
FORMAT
Print PDF EPUB
Ebook
2,860円
Ebookを購入する
Print
2,860円

UberのSRE(サイト信頼性エンジニア、サイトリライアビリティエンジニア)として、マイクロサービスの本番対応向上を担当していた著者が、その取り組みから得られた知見をまとめたものです。モノリス(一枚岩)を複数のマイクロサービスに分割した後に、安定性、信頼性、スケーラビリティ、耐障害性、パフォーマンス、監視、ドキュメント、大惨事対応を備えたシステムにするために必要な原則と標準に焦点を当て、本番対応力のあるマイクロサービスを構築する手法を紹介します。本書で採用している原則と標準は、マイクロサービスだけなく多くのサービスやアプリケーションの改善にも威力を発揮します。

目次

はじめに

1章 マイクロサービス
    1.1 モノリスからマイクロサービスへ
    1.2 マイクロサービスアーキテクチャ
    1.3 マイクロサービスエコシステム
        1.3.1 レイヤ 1:ハードウェア
        1.3.2 レイヤ 2:通信
        1.3.3 レイヤ 3:アプリケーションプラットフォーム
        1.3.4 レイヤ 4:マイクロサービス
    1.4 組織的な課題
        1.4.1 逆コンウェイの法則
        1.4.2 技術的スプロール
        1.4.3 障害の種類の増加
        1.4.4 リソースの奪い合い

2章 本番対応
    2.1 マイクロサービスの標準化にまつわる問題
    2.2 可用性:標準化の目標
    2.3 本番対応の標準
        2.3.1 安定性
        2.3.2 信頼性
        2.3.3 スケーラビリティ
        2.3.4 耐障害性と大惨事対応
        2.3.5 パフォーマンス
        2.3.6 監視
        2.3.7 ドキュメント
    2.4 本番対応の実装

3章 安定性と信頼性
    3.1 安定性と信頼性を備えたマイクロサービスを構築するための原則
    3.2 開発サイクル
    3.3 デプロイパイプライン
        3.3.1 ステージング
        3.3.2 カナリア
        3.3.3 本番
        3.3.4 安定性と信頼性のあるデプロイの保証
    3.4 依存関係
    3.5 ルーティングと検出
    3.6 非推奨と廃止
    3.7 マイクロサービスの評価基準
        3.7.1 開発サイクル
        3.7.2 デプロイパイプライン
        3.7.3 依存関係
        3.7.4 ルーティングと検出
        3.7.5 非推奨と廃止

4章 スケーラビリティとパフォーマンス
    4.1 スケーラビリティとパフォーマンスを備えたマイクロサービスを構築するための原則
    4.2 成長の判断基準
        4.2.1 質的な成長の判断基準
        4.2.2 量的な成長の判断基準
    4.3 リソースの効率的な使い方
    4.4 リソースの把握
        4.4.1 リソースの要件
        4.4.2 リソースのボトルネック
    4.5 キャパシティプランニング
    4.6 依存関係のスケーリング
    4.7 トラフィック管理
    4.8 タスクの処理
        4.8.1 プログラミング言語の限界
        4.8.2 効率のよいリクエスト、タスクの処理
    4.9 スケーラブルなデータストレージ
        4.9.1 マイクロサービスエコシステムにおけるデータベースの選び方
        4.9.2 マイクロサービスアーキテクチャ独特のデータベースの問題
    4.10 マイクロサービスの評価基準
        4.10.1 成長の判断基準
        4.10.2 リソースの効率的な利用
        4.10.3 リソースの把握
        4.10.4 キャパシティプランニング
        4.10.5 依存関係のスケーリング
        4.10.6 トラフィック管理
        4.10.7 タスクの処理
        4.10.8 スケーラブルなデータストレージ

5章 耐障害性と大惨事対応
    5.1 耐障害性のあるマイクロサービスを構築するための原則
    5.2 単一障害点の除去
    5.3 大惨事と障害のシナリオ
        5.3.1 エコシステム全体でよく見られる障害
        5.3.2 ハードウェア障害
        5.3.3 通信レベルとアプリケーションプラットフォームレベルの障害
        5.3.4 依存関係の障害
        5.3.5 内部(マイクロサービス自体の)障害
    5.4 回復性テスト
        5.4.1 コードテスト
        5.4.2 ロードテスト
        5.4.3 カオステスト
    5.5 障害の検出と修正
    5.6 インシデントと機能停止
        5.6.1 適切な分類
        5.6.2 インシデント対応の 5つの段階
    5.7 マイクロサービスの評価基準
        5.7.1 単一障害点の除去
        5.7.2 大惨事と障害のシナリオ
        5.7.3 回復性テスト
        5.7.4 障害の検出と修正

6章 監視
    6.1 マイクロサービスの監視の原則
    6.2 主要メトリック
    6.3 ロギング
    6.4 ダッシュボード
    6.5 アラート
        6.5.1 効果的なアラートの設定
        6.5.2 アラートの処理
    6.6 オンコールローテーション
    6.7 マイクロサービスの評価基準
        6.7.1 主要メトリック
        6.7.2 ロギング
        6.7.3 ダッシュボード
        6.7.4 アラート
        6.7.5 オンコールローテーション

7章 ドキュメントと組織的な理解
    7.1 マイクロサービスのドキュメントと理解に関する原則
    7.2 マイクロサービスのドキュメント
        7.2.1 説明
        7.2.2 アーキテクチャ図
        7.2.3 連絡先とオンコール情報
        7.2.4 リンク
        7.2.5 オンボーディング /開発ガイド
        7.2.6 リクエストフロー、エンドポイント、依存関係
        7.2.7 オンコールランブック    155 
        7.2.8 FAQ
    7.3 マイクロサービスについての組織的な理解
        7.3.1 アーキテクチャレビュー
        7.3.2 本番対応の監査
        7.3.3 本番対応へのロードマップ
        7.3.4 本番対応チェックの自動化
    7.4 マイクロサービスの評価基準
        7.4.1 マイクロサービスのドキュメント
        7.4.2 マイクロサービスについての組織的な理解

付録A 本番対応のチェックリスト
    A.1 本番対応サービスは安定性、信頼性を備えている
    A.2 本番対応サービスはスケーラブルでパフォーマンスが高い
    A.3 本番対応サービスは耐障害性があり大惨事対応力がある
    A.4 本番対応サービスは適切に監視されている
    A.5 本番対応サービスはドキュメントが整備され、組織的に理解されている

付録B マイクロサービスの評価基準
    B.1 安定性と信頼性
        B.1.1 開発サイクル
        B.1.2 デプロイパイプライン
        B.1.3 依存関係
        B.1.4 ルーティングと検出
        B.1.5 非推奨と廃止
    B.2 スケーラビリティとパフォーマンス
        B.2.1 成長の判断基準
        B.2.2 リソースの効率的な利用
        B.2.3 リソースの把握
        B.2.4 キャパシティプランニング
        B.2.5 依存関係のスケーリング
        B.2.6 トラフィック管理
        B.2.7 タスクの処理
        B.2.8 スケーラブルなデータストレージ
    B.3 耐障害性と大惨事対応
        B.3.1 単一障害点の除去
        B.3.2 大惨事と障害のシナリオ
        B.3.3 回復性テスト
        B.3.4 障害の検出と修正
    B.4 監視
        B.4.1 主要メトリック
        B.4.2 ロギング
        B.4.3 ダッシュボード
        B.4.4 アラート
        B.4.5 オンコールローテーション
    B.5 ドキュメントと組織的な理解
        B.5.1 マイクロサービスのドキュメント
        B.5.2 マイクロサービスについての組織的な理解
用語集
索引