インプレス[コンピュータ・IT]ムック Kubernetesマイクロサービス開発の実践
インプレス / 2023年12月19日 / 全399ページ
本書では、コンテナ、Kubernetesおよびそれに関連する技術を活用したアプリケーションの開発と運用について、主にアプリケーション開発者の視点から必要とされる知識に焦点を当てて解説しています。各章の解説では、サンプルアプリケーションを用いて、Kubernetes上でのアプリケーションの実行方法や運用プラクティスの適用手順を具体的に示しています。
目次
- 商標
- はじめに
- 本書のターゲット/本書の構成
- 本書の実行環境
- 第1章 変化するアプリケーション開発
- 1-1 近年のアプリケーション開発と Kubernetes/1-1-1 システムの高頻度なアップデートの重要性/1-1-2 IT システム開発におけるパラダイムの変化
- 1-1-3 マイクロサービスアーキテクチャとは
- 1-1-4 マイクロサービスアーキテクチャを支える技術
- 1-2 コンテナの概要/1-2-1 コンテナの提供価値
- 1-2-2 コンテナの要素技術
- 1-3 Kubernetes の概要
- 1-3-1 コンテナオーケストレーションの役割
- 1-3-2 Kubernetes とは
- 1-3-3 Kubernetes に対応した製品とその形態
- 1-3-4 Kubernetes のエコシステム
- 1-4 まとめ
- 第2章 コンテナと Kubernetes
- 2-1 Kubernetes のアーキテクチャ/2-1-1 Kubernetes クラスタの全体像
- 2-1-2 オブジェクトの概要
- 2-1-3 コントロールプレーンの概要
- 商標
- はじめに
- 本書のターゲット/本書の構成
- 本書の実行環境
- 第1章 変化するアプリケーション開発
- 1-1 近年のアプリケーション開発と Kubernetes/1-1-1 システムの高頻度なアップデートの重要性/1-1-2 IT システム開発におけるパラダイムの変化
- 1-1-3 マイクロサービスアーキテクチャとは
- 1-1-4 マイクロサービスアーキテクチャを支える技術
- 1-2 コンテナの概要/1-2-1 コンテナの提供価値
- 1-2-2 コンテナの要素技術
- 1-3 Kubernetes の概要
- 1-3-1 コンテナオーケストレーションの役割
- 1-3-2 Kubernetes とは
- 1-3-3 Kubernetes に対応した製品とその形態
- 1-3-4 Kubernetes のエコシステム
- 1-4 まとめ
- 第2章 コンテナと Kubernetes
- 2-1 Kubernetes のアーキテクチャ/2-1-1 Kubernetes クラスタの全体像
- 2-1-2 オブジェクトの概要
- 2-1-3 コントロールプレーンの概要
- 2-2 コントロールプレーンノードのコンポーネント
- 2-2-1 kube-apiserver
- 2-2-2 kube-scheduler
- 2-2-3 kube-controller-manager
- 2-2-4 etcd
- 2-3 ワーカーノードのコンポーネント/2-3-1 kubelet/2-3-2 kube-proxy
- 2-4 拡張コンポーネント
- 2-5 Kubernetes のオブジェクト/2-5-1 Kubernetes オブジェクトの基本構造
- 2-5-2 Workloads オブジェクト
- 2-5-3 Discovery&LB オブジェクト
- 2-5-4 Config&Storage オブジェクト
- 2-6 まとめ
- 第3章 アプリケーションのコンテナ化
- 3-1 本書で取り扱うアプリケーションの概要/3-1-1 Bookinfo の概要
- 3-1-2 Reviews サービスの概要
- 3-2 コンテナアプリケーションの開発の準備/3-2-1 本書で利用する開発環境
- 3-2-2 Bookinfo アプリケーションのリポジトリの準備
- 3-2-3 VS Code Dev Containers 環境の準備
- 3-2-4 Reviews サービスの動作確認
- 3-2-5 従来型の Java アプリケーションの課題
- 3-3 コンテナ運用への移行
- 3-3-1 アプリケーションの修正
- 3-3-2 Dockerfile の作成とコンテナのビルド
- 3-4 Dockerfile の基本/3-4-1 Dockerfile のインストラクション
- 3-4-2 Dockerfile のベストプラクティス
- 3-5 まとめ
- 第4章 Kubernetes へのアプリケーションの展開
- 4-1 Kubernetes クラスタの構築/4-1-1 EKS クラスタ構築の事前設定
- 4-1-2 EKS クラスタの構築
- 4-1-3 ローカル環境から EKS クラスタを利用するため設定
- 4-2 Reviews サービスのデプロイ
- 4-2-1 データベースのデプロイ
- 4-2-2 アプリケーションのデプロイ
- 4-3 Bookinfo アプリケーション全体のデプロイ
- 4-4 まとめ
- 第5章 アプリケーションの更新とリアーキテクト
- 5-1 アプリケーションの更新方法
- 5-2 既存サービスの置き換えだけの更新
- 5-2-1 ローリングアップデート
- 5-2-2 Blue/Green デプロイメント
- 5-2-3 カナリーデプロイメント
- 5-3 Reviews サービスのローリングアップデート
- 5-3-1 ローリングアップデート用アプリケーションの準備
- 5-3-2 ローリングアップデート用マニフェストファイルの修正
- 5-3-3 ローリングアップデートの実施
- 5-4 アーキテクチャの変更を伴う更新
- 5-4-1 ストラングラーパターン
- 5-4-2 抽象化によるブランチ
- 5-4-3 変更データキャプチャ
- 5-4-4 アプリケーションでの同期
- 5-5 Reviews サービスのマイクロサービス化/5-5-1 移行計画の検討
- 5-5-2 マイクロサービス化の実施
- 5-6 まとめ
- 第6章 アプリケーションのオブザーバビリティ
- 6-1 オブザーバビリティとは何か/6-1-1 オブザーバビリティがなぜ必要なのか
- 6-1-2 オブザーバビリティを意識した監視の実装
- 6-1-3 OpenTelemetry
- 6-2 Kubernetes におけるテレメトリの収集/6-2-1 Kubernetes におけるログの収集
- 6-2-2 Kubernetes におけるトレースの収集
- 6-2-3 Kubernetes におけるメトリクスの収集
- 6-3 Bookinfo へのオブザーバビリティの導入
- 6-3-1 ロギングエージェントのデプロイ
- 6-3-2 OTel Collector のデプロイ
- 6-3-3 Prometheus のデプロイ
- 6-3-4 Bookinfo へのオブザーバビリティの適用
- 6-4 まとめ
- 第7章 アプリケーションの堅牢化
- 7-1 Pod のライフサイクル
- 7-1-1 Pod の起動の前処理
- 7-1-2 Pod の起動
- 7-1-3 Service オブジェクトによるトラフィックの管理
- 7-1-4 Pod の終了
- 7-1-5 Pod のステータス
- 7-2 Pod の安定稼働のためのプラクティス
- 7-2-1 Pod の起動に備える
- 7-2-2 コンテナの終了に備える
- 7-2-3 適切なヘルスチェックを設定する
- 7-2-4 Pod の安定化の効果確認
- 7-3 Pod のリソース管理とチューニング
- 7-3-1 Kubernetes のリソース制御
- 7-3-2 Java アプリケーションのチューニング
- 7-4 様々な Pod の停止シナリオに備える/7-4-1 Pod やコンテナが停止するシナリオ
- 7-4-2 API-initiated Eviction とプリエンプション
- 7-5 まとめ
- 付録 本書で使用した kubectl コマンド
- おわりに
- 索引
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。