書籍概要

エンジニア選書

クラウドネイティブで実現する マイクロサービス開発・運用 実践ガイド

著者
発売日
更新日

概要

マイクロサービスはその実装の複雑さから,アーキテクチャを変えるだけでなく,組織構成の見直しやCI/CDによるオートメーション,複雑なシステムをどう可視化するかなどが,その成功に不可欠であることが分かってきました。近年では,クラウドネイティブ/Kubernetesの適用により,マイクロサービス固有のフレームワークに依存することなく,より簡潔にマイクロサービスを実装できるようになり,再び注目されています。本書では,特定のマイクロサービスフレームワークに過度に依存することなく,Kubernetes上でマイクロサービスを設計・実装・運用するためのノウハウを解説します。

こんな方におすすめ

  • クラウドネイティブ技術やKubernetesを利用した,マイクロサービスの設計・開発・運用に興味のある人
  • マイクロサービス開発プロジェクトに取り組み始めた開発者,ソフトウェアアーキテクト,プロジェクトマネージャー

サンプル

samplesamplesamplesamplesample

目次

概要編

第1章 マイクロサービス概論

  • 1.1 本書について
    • 1.1.1 本書に込めた思い
    • 1.1.2 マイクロサービスの捉え方
    • 1.1.3 本書の価値
    • 1.1.4 本書の構成
  • 1.2 マイクロサービスの概要
    • 1.2.1 マイクロサービスとは
    • 1.2.2 マイクロサービスの起源と歴史
    • 1.2.3 なぜマイクロサービスが必要なのか
    • 1.2.4 マイクロサービスに対する誤解
    • 1.2.5 マイクロサービス化を可能とする技術
  • 1.3 マイクロサービス化を成功に導くプラクティス
    • 1.3.1 アジャイルとマイクロサービスの親和性
    • 1.3.2 マイクロサービス時代のアーキテクチャ
    • 1.3.3 マイクロサービスをどの単位で分ければ良いか
    • 1.3.4 組織とケーパビリティ
    • 1.3.5 見える化する技術の重要性と多様化

実践編

第2章 マイクロサービスの実装

  • 2.1 サンプルアプリケーションの概要と開発環境構築
    • 2.1.1 本書で実装するマイクロサービスの全体像
    • 2.1.2 マイクロサービス開発環境の構築
  • 2.2 アプリケーションの実装
    • 2.2.1 リクエスト/レスポンス型通信によるマイクロサービスの実装
    • 2.2.2 BFFによるバックエンドサービスの統合
    • 2.2.3 シングルページアプリケーションの実装
    • 2.2.4 マイクロサービスのデプロイ
    • 2.2.5 イベント駆動型通信によるマイクロサービスの実装

第3章 サンプルアプリケーションへの非機能の実装

  • 3.1 書籍オンラインショップ「Book Shop」の動作確認
    • 3.1.1 本節で解説する内容
    • 3.1.2 「Book Shop」の動作確認
    • 3.1.3 「Book Shop」の機能紹介
  • 3.2 サービスのモニタリングと可用性の向上
    • 3.2.1 ヘルスチェックとProbeによるモニタリング
    • 3.2.2 グレースフルシャットダウンによる安全なサービスの停止
  • 3.3 サービスメッシュによるサービス連携
    • 3.3.1 横断的関心事を扱うサービスメッシュ
    • 3.3.2 バックエンドサービス間のトラフィック管理
    • 3.3.3 バックエンドサービス間の通信セキュリティ
  • 3.4 ユーザの認証・認可
    • 3.4.1 ユーザの認証・認可とOpenID Connect
    • 3.4.2 Keycloakを使った認証・認可の実装

第4章 マイクロサービスにおけるデータ管理

  • 4.1 サービス間のデータ整合性の維持
    • 4.1.1 SAGAによるトランザクション管理
    • 4.1.2 TCCによるトランザクション管理
    • 4.1.3 イベントソーシングによるデータ永続化
  • 4.2 マイクロサービスでのクエリ操作
    • 4.2.1 APIコンポジションを使ったクエリ
    • 4.2.2 CQRSを使ったクエリ

第5章 マイクロサービスのテスト

  • 5.1 ユニットテスト
    • 5.1.1 マイクロサービス開発におけるユニットテストのポイント
    • 5.1.2 Go言語を用いたテストコードの例
    • 5.1.3 ユニットテストと静的解析
  • 5.2 インテグレーションテスト
    • 5.2.1 APIテスト
    • 5.2.2 E2Eテスト
  • 5.3 システムテスト
    • 5.3.1 機能テスト
    • 5.3.2 非機能テスト

第6章 マイクロサービスのためのCI/CD設計

  • 6.1 CI/CDの概要
    • 6.1.1 CI/CDとは何か
    • 6.1.2 マイクロサービスの開発にCI/CDが重要な背景
    • 6.1.3 CI/CDに取り組み始めるにあたり
  • 6.2 CI/CDの設計
    • 6.2.1 CI/CD全体に関わる設計
    • 6.2.2 CIに関わる設計
    • 6.2.3 CDに関わる設計
  • 6.3 実装するCI/CDの全体像
    • 6.3.1 CI/CDパイプラインの全体像と解説内容
    • 6.3.2 CI/CDの設計サマリ

第7章 マイクロサービスアプリケーションにおけるCI/CDの実装

  • 7.1 GitLab CIによるCIの実装
    • 7.1.1 ここで解説する内容
    • 7.1.2 CIパイプラインの実装
  • 7.2 Argo CDによるGitOpsの実装
    • 7.2.1 Argo CDとは
    • 7.2.2 実装するCDパイプラインの全体像
    • 7.2.3 Argo CDのセットアップ
    • 7.2.4 GitOpsの実装

第8章 発展的なCI/CD戦略

  • 8.1 Argo Rolloutsによるプログレッシブデリバリの実装
    • 8.1.1 Argo Rolloutsとは
    • 8.1.2 Argo Rolloutsによるプログレッシブデリバリのパイプライン全体像
    • 8.1.3 Argo Rolloutsのセットアップ
    • 8.1.4 プログレッシブデリバリの実装
  • 8.2 CI/CDの高みを目指すために
    • 8.2.1 発展的なソフトウェア開発ライフサイクル手法
    • 8.2.2 CD成熟度モデル
    • 8.2.3 より高度なCI/CDのプロセス設計

第9章 マイクロサービスの信頼性を支えるオブザーバビリティ

  • 9.1 オブザーバビリティの世界へようこそ
    • 9.1.1 オブザーバビリティとは何か
    • 9.1.2 オブザーバビリティと監視の関係
    • 9.1.3 オブザーバビリティをはじめよう
  • 9.2 シグナルの種類と性質を知る
    • 9.2.1 主要な3つのシグナル
    • 9.2.2 その他のシグナル
  • 9.3 オブザーバビリティの実装プロセスを考える
    • 9.3.1 出発点はどこにあるか
    • 9.3.2 計測の手段を検討する
    • 9.3.3 どのようなプロセスで実装するか
  • 9.4 シグナルのパイプラインを設計する
    • 9.4.1 シグナルの収集方法を設計する
    • 9.4.2 シグナルの保存方法を設計する
    • 9.4.3 シグナルの利用方法を設計する
    • 9.4.4 定期的に見直す
  • 9.5 より良いオブザーバビリティを目指して
    • 9.5.1 ユーザ体験を改善する
    • 9.5.2 開発者体験を改善する
    • 9.5.3 障害をシミュレートする
    • 9.5.4 組織文化をモダナイズする
    • 9.5.5 定量的な評価を導入する
    • 9.5.6 ビジネスへのフィードバックループを作る
    • 9.5.7 長い旅のはじまり

発展編

第10章 マイクロサービスの実践プラクティス

  • 10.1 マイクロサービスの特徴を表すフレームワーク
    • 10.1.1 マイクロサービスの9つの特徴
    • 10.1.2 The Twelve-Factor AppとBeyond the Twelve-Factor App
    • 10.1.3 マイクロサービスの分割とDDD
  • 10.2 マイクロサービスデザインパターン
    • 10.2.1 マイクロサービス間のデータ整合を取るためのパターン
    • 10.2.2 レガシーモダナイゼーションパターン
  • 10.3 マイクロフロントエンド
    • 10.3.1 フロントエンドの技術トレンド
    • 10.3.2 フロントエンドの分割と統合
    • 10.3.3 マイクロフロントエンドの構築とデプロイ

第11章 マイクロサービスの今後

  • 11.1 開発スタイル
    • 11.1.1 AIやデータを活用した開発:AIDev
    • 11.1.2 運用:AIOps
    • 11.1.3 セキュリティ
  • 11.2 マイクロサービスのアーキテクチャトレンド
    • 11.2.1 WebAssembly
    • 11.2.2 eBPF
    • 11.2.3 Edge Computing on Kubernetes

サポート

現在サポート情報はありません。

商品一覧