Knative実践ガイド
3,520円 (3,200円+税)
【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。
関連サイト
本書の関連ページが用意されています。
内容紹介
Knativeは「イベント駆動型アーキテクチャ」のフレームワークとして、サーバーレスなシステム構築に活用できます。とくに、マイクロサービスを利用したステートレスなアプリケーションを実装する上で、Knativeのイベント駆動型アーキテクチャのセットは非常に有用で、今後のクラウドネイティブな環境において、スケーラビリティの高いアプリケーションを簡単に実装するのに役立ちます。
本書では、クラウドネイティブに取り組むインフラ技術者が、最新トレンドであるKnativeの知見を体系的に学習できるように、技術解説に加えて、実務で参考になるユースケースを取り上げています。今後のKubernetes環境における必須の技術についての理解度を、本書でもう一歩前に進めることができます。IT現場でKnativeの採用を検討するうえでも、また、Knativeを使いこなすうえでも、必携のガイドブックの登場です。
書誌情報
- 著者: 小野 佑大
- 発行日: 2023-04-11 (紙書籍版発行日: 2023-04-11)
- 最終更新日: 2023-04-11
- バージョン: 1.0.0
- ページ数: 312ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
LinuxによるITインフラ技術者。これまで、クラウドやオンプレミスでのクラウドネイティブなシステム環境の構築経験があり、コンテナやKubernetesの基礎知識はある程度習得している技術者
著者について
小野 佑大
新卒より国内通信キャリアにて、サーバインフラストラクチャの運用・保守業務、IoTや5Gコア、エッジコンピューティングの技術戦略、新規事業企画を経て、現在レッドハット株式会社に勤務。エンタープライズ向けKubernetes管理ツールであるRed Hat OpenShiftのソリューションアーキテクトとして、主にエッジコンピューティングの営業戦略企画やコンサルティング業務、コミュニティ運営に従事している。これまでのユーザ企業での経験を活かしながら、業務に邁進中。エンタープライズのエッジ環境へもクラウドネイティブの取り組みが普及することを夢に、業務・プライベート問わず、企業イベント、コミュニティイベントでの登壇、インターネット上での情報発信に勤しんでいる。
目次
はじめに
- 読者ターゲット/本書に対する諸注意
- 本書の構成/本書の実行環境
- 本書で使用するコード
- 本書の表記
第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 まとめ