インプレス[コンピュータ・IT]ムック Knative実践ガイド
インプレス / 2023年04月11日 / 全311ページ
本書では、クラウドネイティブに取り組むインフラ技術者が、最新トレンドであるKnativeの知見を体系的に学習できるように、技術解説に加えて、実務で参考になるユースケースを取り上げています。今後のKubernetes環境における必須の技術についての理解度を、本書でもう一歩前に進めることができます。IT現場でKnativeの採用を検討するうえでも、また、Knativeを使いこなすうえでも、必携のガイドブックの登場です。
目次
- 商標
- はじめに
- 読者ターゲット/本書に対する諸注意
- 本書の構成/本書の実行環境
- 本書で使用するコード
- 本書の表記
- 第 1 章 Knative によるアプリケーション開発の変化
- 1-1 アプリケーション開発の環境変化/1-1-1 保守性の高いシステムアーキテクチャ
- 1-1-2 Kubernetes の役割/1-1-3 チーム内の Kubernetes 利用時の役割分担
- 1-1-4 アプリケーション開発のライフサイクルの効率化
- 1-2 サーバレスのアプリケーション開発
- 1-2-1 サーバレスのアプリケーションライフサイクル
- 1-3 サーバレスプラットフォームの提供モデル
- 1-3-1 Function as a Service(FaaS)
- 1-3-2 BaaS(Backend as a Service)/1-3-3 サーバレスによるアプリケーション開発の変化
- 1-3-4 サーバレス採用時のポイント
- 1-4 Knative
- 1-4-1 サーバレスのベンダーロックインの問題/1-4-2 Knative と Kubernetes の関係性
- 1-5 Knative の提供するコンポーネント
- 1-5-1 Knative Serving の役割
- 商標
- はじめに
- 読者ターゲット/本書に対する諸注意
- 本書の構成/本書の実行環境
- 本書で使用するコード
- 本書の表記
- 第 1 章 Knative によるアプリケーション開発の変化
- 1-1 アプリケーション開発の環境変化/1-1-1 保守性の高いシステムアーキテクチャ
- 1-1-2 Kubernetes の役割/1-1-3 チーム内の Kubernetes 利用時の役割分担
- 1-1-4 アプリケーション開発のライフサイクルの効率化
- 1-2 サーバレスのアプリケーション開発
- 1-2-1 サーバレスのアプリケーションライフサイクル
- 1-3 サーバレスプラットフォームの提供モデル
- 1-3-1 Function as a Service(FaaS)
- 1-3-2 BaaS(Backend as a Service)/1-3-3 サーバレスによるアプリケーション開発の変化
- 1-3-4 サーバレス採用時のポイント
- 1-4 Knative
- 1-4-1 サーバレスのベンダーロックインの問題/1-4-2 Knative と Kubernetes の関係性
- 1-5 Knative の提供するコンポーネント
- 1-5-1 Knative Serving の役割
- 1-5-2 Knative Eventing の役割
- 1-6 まとめ
- 第 2 章 Knative を用いたシステム構築環境の準備
- 2-1 本書で構築する環境
- 2-1-1 本書で使用する CLI ツール/2-1-2 本書で使用するサンプルアプリケーション
- 2-2 Kubernetes クラスタの準備
- 2-2-1 AWS アカウントの作成
- 2-2-2 IAM ユーザの作成
- 2-2-3 AWS CLI のセットアップ
- 2-2-4 Amazon EKS を利用した Kubernetes クラスタの構築
- 2-2-5 Amazon EBS CSI ドライバの追加
- 2-3 Knative のインストール/2-3-1 Knative のインストール要件
- 2-3-2 Knative CLI のインストール
- 2-3-3 Knative Operator
- 2-3-4 Knative Serving のインストール
- 2-3-5 Knative Eventing のインストール/2-4 Git リポジトリの準備
- 2-4-1 GitLab.com のアカウント作成
- 2-4-2 GitLab.com アカウントのセキュリティ向上
- 2-4-3 GitLab プロジェクトの作成
- 2-4-4 GitLab の認証情報の Kubernetes への登録
- 2-5 Tekton を用いたパイプラインの構築
- 2-5-1 Tekton Operator
- 2-5-2 Tekton Pipeline のインストール
- 2-5-3 Tekton Pipeline の実装
- 2-5-4 コンテナイメージのビルド
- 2-6 サンプルアプリケーションの動作確認
- 2-7 まとめ
- 第 3 章 Knative Serving によるアプリケーション管理
- 3-1 Knative Serving のアーキテクチャ概要
- 3-2 Ingress
- 3-2-1 クラスタ共通設定
- 3-2-2 Knative Service 毎の設定
- 3-3 ドメインの設定/3-3-1 クラスタ共通設定
- 3-3-2 Knative Service 毎の設定
- 3-4 autoTLS/3-4-1 Cert Manager のインストール
- 3-4-2 autoTLS の有効化
- 3-5 Knative Service の作成/3-5-1 Knative CLI の利用
- 3-5-2 マニフェストの利用
- 3-5-3 プライベートアクセスとパブリックアクセス
- 3-5-4 Knative Service 作成時の挙動
- 3-6 Knative Service の更新
- 3-6-1 Revision のガベージコレクション(GC)
- 3-7 トラフィック分割
- 3-7-1 ブルーグリーンデプロイメント
- 3-7-2 新しいRevision への段階的ロールアウト
- 3-7-3 カナリアリリース
- 3-7-4 次の演習の準備/3-8 オートスケールの動作試験環境の準備
- 3-8-1 hey コマンドの導入
- 3-8-2 オートスケールの簡易動作試験
- 3-9 オートスケール発生時のデータ処理/3-9-1 Activator
- 3-9-2 ServerlessService(SKS)
- 3-9-3 Queue Proxy
- 3-9-4 コンポーネント間の連携フロー
- 3-10 オートスケールの判断ロジック/3-10-1 オートスケールの判断で使用する対象メトリクス
- 3-10-2 平均同時実行数の算出期間
- 3-10-3 オートスケールの判断フロー
- 3-10-4 ゼロスケールの猶予期間
- 3-11 まとめ
- 第 4 章 Knative Eventing を用いたシステム構築の実践
- 4-1 イベント駆動型アーキテクチャのシステム設計/4-1-1 マイクロサービス間のデータ連携の実装
- 4-1-2 リクエスト・リプライ方式のデータ連携
- 4-1-3 イベント駆動方式のデータ連携
- 4-1-4 Bookorder のアーキテクチャ
- 4-1-5 Bookorder のデータ連携フロー
- 4-2 Knative Eventing
- 4-2-2 Knative Eventing の役割/4-2-3 Knative Eventing のカスタムリソース
- 4-2-4 Source を使用したアーキテクチャ
- 4-2-5 Channel を使用したアーキテクチャ
- 4-2-6 Broker を使用したアーキテクチャ
- 4-3 CloudEvents/4-3-1 必須属性
- 4-3-2 オプション属性/4-3-3 拡張属性
- 4-3-4 バインディング
- 4-4 イベント駆動型アーキテクチャのアプリケーション実装/4-4-1 Order の実装
- 4-4-2 Stock の実装
- 4-4-3 Delivery の実装
- 4-5 システム構築の事前準備/4-5-1 Kafka の導入
- 4-5-2 MySQL の導入
- 4-5-3 Productpage のアップデート
- 4-5-4 Bookorder のデプロイ
- 4-5-5 Bookorder へのアクセス
- 4-6 Source を使用したシステム構築
- 4-6-1 Kafka Source のインストール
- 4-6-2 Order とStock の連携
- 4-6-3 Order とDelivery の連携
- 4-6-4 作成した Source の削除/4-7 Channel を使用したシステム構築
- 4-7-1 Kafka Channel のインストール
- 4-7-2 デフォルトで使用する Channel の設定
- 4-7-3 Order、Stock、Delivery の連携
- 4-7-4 作成した Channel の削除
- 4-8 Broker を使用したシステム構築
- 4-8-1 Knative Kafka Broker のインストール
- 4-8-2 デフォルトで使用する Broker の設定
- 4-8-3 Source と Broker の連携
- 4-8-4 Order と Stock の連携
- 4-8-5 Order と Delivery の連携
- 4-9 イベント送信失敗時の動作/4-9-1 Dead Letter Sink の設定
- 4-9-2 エラーイベント/4-9-3 Stock のロールバック処理の実装
- 4-9-4 Kafka Sink
- 4-9-5 正常処理用 Broker へ Dead Letter Sink の設定追加
- 4-9-6 異常処理用 Broker の作成
- 4-9-8 在庫 DB のロールバック処理の動作確認
- 4-10 カスタムイベントソース
- 4-10-2 テスト用のアプリケーションの実装
- 4-10-3 SinkBinding
- 4-10-4 ContainerSource
- 4-11 イベントフローを使用したマイクロサービス間の連携/4-11-1 Sequence
- 4-11-2 Parallel
- 4-12 まとめ
- 付録 A Knative Functions を用いた Function 開発
- 付録 B Auto Scaler の設定パラメータ
- 付録 C Kafka Source のオプション設定
- あとがき
- 索引
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。