ISBN 9784295012757

Kubernetes CI/CDパイプラインの実装

Kubernetes CI/CDパイプラインの実装
著者
北山晋吾
出版社
インプレス
刊行
2021-10

概要

Tekton と Argo CD を使い Kubernetes 上に CI/CD パイプラインを一から構築する

想定読者

Kubernetes でアプリケーションを運用する開発者・SRE で、CI/CD パイプラインの設計・実装をクラウドネイティブな手法で整備したいエンジニア

こんな人には向いていない

  • Kubernetes の基本操作(Pod・Service・Deployment の概念)が未習得のエンジニアには、環境準備章以降の内容を追うのが難しい
  • GitHub Actions や CircleCI など SaaS 型 CI/CD で要件が満たせる小規模チームには、Tekton/Argo CD の運用コストに見合わない可能性がある
  • すでに本番で Tekton + Argo CD を組み合わせた GitOps パイプラインを運用しているチームには、入門・概要の比重が大きく新規学習密度が低い

読了後にできるようになること

  • 従来の開発プロセスとクラウドネイティブな CI/CD の違いを整理し、ツール選定の判断基準を持てる
  • Tekton Pipelines の Task・Pipeline・PipelineRun のリソース定義を理解し、継続的インテグレーションフローを Kubernetes 上に構築できる
  • イベント駆動のトリガー(Tekton Triggers)を使い、Git リポジトリへのプッシュを起点にパイプラインを自動起動できる
  • Argo CD を用いた GitOps 型の継続的デリバリを設定し、マニフェストの変更を Kubernetes クラスタへ自動適用できる
  • Blue/Green デプロイメントやカナリアリリースなどのリリース戦略を Kubernetes ネイティブなツールで実現できる
  • アプリケーションライフサイクル(ビルド→テスト→デプロイ→リリース)を一貫したパイプラインとして自動化する設計パターンを習得できる

本書のキー概念(章解説)

  • 第 1 章 開発プロセスの運用変化 — 従来の開発プロセスとクラウドネイティブ CI/CD の差異を整理する導入章。Tekton/Argo CD を選ぶ判断材料としても機能する
  • 第 2 章 クラウドネイティブ開発に向けた環境準備 — 実習環境のセットアップ章。本書を通して手を動かすための土台。環境が整ったら先の章に一気に進める
  • 第 3 章 Tekton Pipelinesの概要 — Task・Pipeline・PipelineRun の概念モデルを把握する章。4章以降の実装を理解するための必読箇所
  • 第 4 章 継続的インテグレーションのパイプライン — ビルド・テストを自動化する CI パイプラインの実装章。実務直結度が高く、導入時に最初に参照する章
  • 第 5 章 イベント駆動のパイプライン実行 — Git プッシュを起点にパイプラインを自動起動するトリガー設定を扱う。実際の開発フローに組み込む際の核心章
  • 第 6 章 Argo CDの概要 — GitOps 型 CD ツールの概念と基本設定を把握する章。7章・8章の実装前に理解を固める
  • 第 7 章 継続的デリバリのデプロイメント — Argo CD を使ったマニフェスト変更の自動適用を実装する章。Tekton(CI)と Argo CD(CD)の接続点として重要
  • 第 8 章 継続的デリバリのリリース — Blue/Green やカナリアリリースなどのリリース戦略の実装を扱う。本書の学習ゴールが最も明確に表れる章

ハイライト

  • 継続的インテグレーションと継続的デリバリによって、「いかに少ない労力で開発プロセスを運用し続けるか」という課題に取り組みます。従来の開発プロセスからクラウドネイティブな開発プロセスへの変化を理解し、実践することにより、運用負担の軽減や迅速なサービス展開が可能となります。(本書が解決する実務課題と読了後の業務変化が端的に示されており、Kubernetes 導入済みチームへの導入動機として最も適切な箇所)

編集メモ

Qiita 言及記事 0件・累計 likes 0 / 楽天ランキング情報なし。外部シグナルが確認できないため supplementary と判定。Tekton + Argo CD を組み合わせた日本語の体系書として 2021年時点での希少性はある

読む前に押さえておきたいこと

  • Kubernetes の基本概念(Pod・Deployment・Service・Namespace)の理解と kubectl による基本操作の経験
  • YAML によるマニフェスト定義の読み書きに慣れていること
  • git の基本操作(push・branch・PR)と CI/CD の概念的な理解(ビルド・テスト・デプロイの流れ)
  • コンテナ・Docker イメージのビルドと実行の基礎経験

学習のコツ

  • 3章(Tekton 概要)と6章(Argo CD 概要)は各ツールグループの入口章なので、実装章に入る前に必ず一読する。ここを省略すると4・7章の YAML 定義の意味が追いにくくなる
  • 4章(CI パイプライン)と7章(CD デプロイメント)は実務導入の際に最初に参照する章。自分の開発フローのどこに当たるかをイメージしながら読むと吸収が速い
  • 5章(イベント駆動実行)のトリガー設定は、実際に Git リポジトリへのプッシュを試しながら動作確認すると効果的。概念だけ読んでも体感しにくい部分
  • 8章(リリース戦略)は本書で最も発展的な内容。Blue/Green とカナリアの使い分け基準を自チームのリリース要件と照合しながら読むと判断軸が定まりやすい
出版社による内容紹介

本書は、Kubernetesを活用したアプリケーション開発やそのリリースサイクルを自動化するためのノウハウについて解説しています。1冊全体を通してKubernetes 環境におけるアプリケーションライフサイクルの構築を順を追って体験します。継続的インテグレーションと継続的デリバリによって、「いかに少ない労力で開発プロセスを運用し続けるか」という課題に取り組みます。従来の開発プロセスからクラウドネイティブな開発プロセスへの変化を理解し、実践することにより、運用負担の軽減や迅速なサービス展開が可能となります。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。