Kubernetesマイクロサービス開発の実践
3,960円 (3,600円+税)
【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。
関連サイト
本書の関連ページが用意されています。
内容紹介
本書では、コンテナ、Kubernetesおよびそれに関連する技術を活用して、アプリケーションの開発と運用を行う方法について解説しており、主にアプリケーション開発者の視点から必要とされる知識に焦点を当てています。最初の1章と2章では、本書の核となるテーマであるコンテナ、Kubernetes、およびそれに関連するクラウドネイティブ技術について概要を述べ、これらの技術が現在、なぜ重要視されているのか、その背景と提供される価値について解説します。また、これらの技術的概要についても説明します。
第3章以降では、マイクロサービスアーキテクチャを代表とする、分散型でモダンなアーキテクチャを採用したアプリケーションに対して、Kubernetesおよびクラウドネイティブ技術を効果的に活用して実装、運用する方法を解説します。これらの章では、サンプルアプリケーションを用いて、Kubernetes上でのアプリケーションの実行方法や運用プラクティスの適用手順を具体的に示しています。全章を通して、実践的なノウハウの習得を目指す構成となっています。
書誌情報
- 著者: 早川博
- 発行日: 2023-12-19 (紙書籍版発行日: 2023-12-19)
- 最終更新日: 2023-12-19
- バージョン: 1.0.0
- ページ数: 400ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
サーバー管理者、サーバー提案SE、システムインテグレータ、Linuxサーバー保守担当者 技術レベル:中級以上。過去にRHEL互換OSを使ってシステム提案、日常業務を担当、導入、保守経験がある
著者について
早川博
パブリッククラウドベンダーのソリューション・アーキテクトとして、クラウドを活用したシステム設計の技術支援・提案に従事したのち、2020年よりヤフー株式会社に勤務。プライベートクラウド開発部門にてKubernetesベースのPaaSの開発・運用に従事する他、第12代黒帯~クラウドスタック~として、社内外の情報発信、技術コンサルティングに努めている。
コンテナ、Kubernetesを中心としたクラウドネイティブ領域の他、マイクロサービスアーキテクチャ、DevOps等のアプリケーション設計・開発手法を専門領域とし、日本のIT業界におけるデジタルトランスフォーメーションを支援すべく奔走中。業務の傍ら、開発者コミュニティ「Cloud Native Developers JP (cndjp)」の立ち上げ、運営や、書籍「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 コントロールプレーンの概要
- 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 まとめ