内容説明
※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
Kubernetesを活用したアプリケーションライフサイクルの自動化ノウハウを解説。
近年、アプリケーションの実行環境として“Kubernetes”を採用している企業が急速に増えています。Kubernetes上でのコンテナ開発は、これまでのアプリケーション開発とは大きく異なるため、どこから手を付けていけばよいのかと不安に感じている方も少なくありません。こうした状況を踏まえ、本書では、1つのアプリケーションライフサイクルの実装を通して「いかに少ない労力で開発プロセスを運用し続けるか」という改善案を提示します。
単にコンテナを導入し、Kubernetesを活用するだけでは運用負担の軽減や、迅速なサービス展開といったビジネスメリットを得るのは簡単ではありません。継続的インテグレーションや継続的デリバリの実装にとどまらず、開発プロセスに関わる開発者やレビューアの役割を見直す必要があります。本書ではこの点にも焦点を当て、ツールの使い方以上に、クラウドネイティブな開発プロセスの変化を理解し、実践しながらアプリケーションライフサイクルの改善ノウハウを解説します。
目次
表紙
商標
はじめに
読者ターゲット/本書に関する諸注意本書の構成
本書の実行環境/本書で使用するコード
第1章 開発プロセスの運用変化
1-1 開発プロセスの自動化と標準化
1-1-1 アプリケーションライフサイクル
1-1-2 開発プロセス改善の効果
1-1-3 既存の開発プロセスの課題
1-1-4 Kubernetes 導入における開発プロセス
1-2 運用の可搬性/1-2-1 Kubernetes 前提の実装
1-2-2 パイプラインやジョブの標準仕様
1-3 まとめ
第2章 クラウドネイティブ開発に向けた環境準備
2-1 クラウドネイティブな環境/2-1-1 Cloud Native Trail Map
2-1-2 Tekton と Argo プロジェクト
2-1-3 Git リポジトリとコンテナレジストリ
2-1-4 デプロイメント環境
2-2 Kubernetes クラスタの準備
2-2-1 GKE クラスタの事前設定
2-2-2 GKE クラスタの構築
2-3 Git リポジトリの準備/2-3-1 GitLab.com のアカウント登録
2-3-2 GitLab.com のプロジェクト作成
2-3-3 Git リポジトリの権限分離
2-3-4 Git リポジトリのブランチ戦略
2-4 マイクロサービスのデプロイ/2-4-1 BookInfo の概要
2-4-2 BookInfo のデプロイ
2-4-3 BookInfo の外部接続確認
2-5 まとめ
第3章 Tekton Pipelines の概要
3-1 Tekton Pipelines のカスタムリソース/3-1-1 Task / Pipeline
3-1-2 TaskRun / PipelineRun
3-2 Tekton Pipelines の導入
3-2-1 Tekton Pipelines のアーキテクチャ
3-2-2 Tekton Pipelines のインストール
3-2-3 Task の動作確認
3-3 Task の詳細設定
3-3-1 Steps フィールド
3-3-2 Workspaces フィールド
3-3-3 Parameters フィールド
3-3-4 Results フィールド
3-3-5 Sidecar フィールド
3-4 まとめ
第4章 継続的インテグレーションのパイプライン
4-1 パイプラインの構成/
4-1-2 Tekton Hub の活用
4-2 ソースコードの取得/4-2-1 Tekton Pipelines の認証
4-2-2 Git Clone の実行
4-3 アプリケーションビルド
4-3-1 Gradle のビルド概要
4-3-2 Gradle の Build 実行
4-4 マニフェストチェック/4-4-1 マニフェストチェックの概要
4-4-2 Conftest の実行
4-5 コンテナビルド/4-5-1 コンテナビルドの概要
4-5-2 Kaniko の実行/4-6 コンテナイメージスキャン
4-6-1 コンテナイメージスキャンの概要
4-6-2 Trivy の実行
4-7 コンテナデプロイ/4-7-1 デプロイメントの認証
4-7-2 kubectl の実行
4-8 パイプラインの実施/4-8-1 パイプラインの詳細
4-8-2 パイプラインの実行
4-9 まとめ
第5章 イベント駆動のパイプライン実行
5-1 Tekton Triggers のカスタムリソース
5-1-2 EventListener
5-2 Tekton Triggers の導入
5-2-1 Tekton Triggers のアーキテクチャ
5-2-2 Tekton Triggers のインストール
5-2-3 Ingress Controllers の設定
5-3 アプリケーションソースコードの更新
5-3-1 開発時のパイプライン実行の流れ/5-3-2 Tekton Triggers のオブジェクト詳細
5-3-3 アプリケーションソースコード更新の実装
5-4 マニフェストリポジトリの更新/5-4-1 マニフェスト更新時のパイプライン実行の流れ
5-4-2 マニフェストリポジトリ更新の実装
5-5 まとめ
第6章 Argo CD の概要
6-1 デプロイメントの自動化/6-1-1 継続的インテグレーションと継続的デリバリの分離
6-1-2 GitOps の構成パターン
6-1-3 Argo CD の特徴
6-2 Argo CD のカスタムリソース/6-2-1 Application
6-2-2 AppProject
6-3 Argo CD の導入/6-3-1 Argo CD のアーキテクチャ
6-3-2 Argo CD のインストール
6-4 アプリケーションデプロイメント/6-4-1 デプロイメント構成
6-4-2 AppProject[stg-bookinfo] の登録
6-4-3 Application 登録
6-5 まとめ
第7章 継続的デリバリのデプロイメント
7-1 Kustomize の概要/7-1-1 デプロイメントの環境差異を補完する
7-1-2 Kustomize によるマニフェスト管理
7-2 マニフェストの同期/7-2-1 自動同期ポリシー
7-2-2 同期の実行順序
7-2-3 同期の依存関係
7-3 機密情報の管理/7-3-1 GitOps の Secret 管理
7-3-2 External Secrets の概要
7-3-3 Workload Identity の導入
7-3-4 External Secrets の利用
7-4 マニフェストのデプロイ/7-4-1 継続的デリバリと継続的デプロイメント
7-4-2 本番環境へのデプロイメント
7-5 まとめ
第8章 継続的デリバリのリリース
8-1 リリースの自動化
8-1-1 デプロイメント戦略
8-1-2 リリースにおけるテスト
8-2 Argo Rollouts のカスタムリソース
8-2-1 Rollout
8-2-2 AnalysisTemplate
8-3 Argo Rollouts の導入/8-3-1 Argo Rollouts のアーキテクチャ
8-3-2 Argo Rollouts のインストール
8-4 アプリケーションリリース/8-4-1 Deployment から Rollout への移行
8-4-2 Deployment リソースの置き換え
8-4-3 Deployment リソースの呼び出し
8-4-4 アプリケーションライフサイクル
8-5 まとめ
あとがき
索引
著者プロフィール
奥付