おもしろき こともなき世を おもしろく

でぶおぷすアーキテクトのつぶやき

「Kubernetes CI/CDパイプラインの実装」から見るコンテナ市場

こんにちは。レッドハット 北山晋吾です。
このたび「Kubernetes CI/CDパイプラインの実装」(2021.10)を出版いたしました!!

f:id:shkitayama:20211020003312p:plain
Kubernetes CI/CDパイプラインの実装

数多くの方々に関わっていただき、ありがとうございます。
この場をお借りしてお礼申し上げます。
出版に伴い、書籍執筆の視点で市場の変化を紹介できればと思います。

書籍から見るコンテナ市場の動向

今回は書籍の内容ではなく、(身勝手な) コンテナ市場のお話をさせてください。
本書を見たときに、すでにクラウドネイティブを牽引されている八百万の神Kubernetesコンテナ(Docker)の名著を出しているのも関わらず、改めてまた…Kubernetes!?
と思われた方も少なくないのではないでしょうか。
自分も書店に行くのが好きで、色々な書籍を拝読させていただいています。
そこで、ふと感じたことが一つありました。   

コンテナを活用したCI/CDの商業誌って…実は多くない?

皆さまはどのように感じるでしょうか?
近年では技術書典を始めとして、個人出版されている素晴らしいCI/CD本があります。それでも、CI/CD基盤でコンテナ開発を行い、Gitリポジトリのブランチ戦略を解説していく書籍は、まだまだニッチ分野という印象を持っています。
(ごめんなさい…あくまで主観です。)
そして、おなじみのTrailMapにも記述された『CI/CD』の内容を書籍化するには、以下を乗り越えていく必要があります。

  • Kubernetes is Hard Way
  • 僕が考えた最強のCI/CD論
  • GitOpsへのシフト
  • 「作る」から「使う」時代へ

これらについての主観的な感想を添えつつ、本書の執筆経緯を紹介していきます。

Kubernetes is Hard Way

Kubernetesを主体とした本の場合、はじめにKubernetesの複雑さにぶち当たります。
Kubernetesを使う限り、デフォルトリソース(API)を理解しないと始まりません。それに加え、コントロールプレーンなどの物理的な話もあります。それだけでまず1~3章くらいは最低かかります。入門書になればなるほど平易な言葉でこれらを表現するテクニックが必要です。
ほんと、CI/CDどころの話ではないです。
ということで。本書では、ほぼKubernetesのデフォルトリソースの話は省略しました。Kubernetesそのものは良書が多いので、是非いろいろ読んでいただきたいです。

僕が考えた最強のCI/CD論

いかに効率よく開発サイクルを早く、安定的に管理するのかが継続的デリバリ

と考えたときに、開発チームにとってそのパイプラインの改善は重要な仕事の一つです。これをいかにアプリに最適な形にカスタマイズし、適したツールを選択するかがベストプラクティスです。したがって、アプリケーションごとにその改善内容は異なってきます。
その結果、どうしても僕が考えた最強のCI/CDができあがります。

これ自体は悪い話でわけではありません。しかし、ここでお伝えしたいのは書籍のように一般化することが少し難しい分野だということです。
一方で本書で利用したTektonは、パイプラインの標準化を推進しています。いかにカスタマイズせずに使いこなせるかが鍵です。
このあたりは、CD Foundationが標準化を検討している分野です。属人化からの開放の一歩ということですね。

GitOpsへのシフト

近年GitOpsという手法が確立され、CIとCDの分離、そして開発者とリリースエンジニア(SRE)の権限分離がこれによって整いつつあると期待しています。
詳しくはコチラが素晴らしい内容なので是非↓↓

blog.inductor.me

それでも、現場ではCIOpsのわかりやすさが浸透しているのも事実です。したがって、これまではCI/CDの書籍というとツールでパイプラインを作る話に近い内容でした。
一方、GitOpsを前提とするとGitリポジトリの構成が命です。これを正しく設計できるか、だれがCommit権限を持つのかという話が中心です。
GitOpsのように運用の方法論にシフトしていくと、ツール自体の機能は本質ではなくなっていきます。
本書ではこのあたりの変化について、すこしでも体感いただけるよう心がけて解説しています。クラウドネイティブ官能小説みたいにタラタラと話していたらごめんなさい。

「作る」から「使う」時代へ

ここまでの話でお伝えしたとおり、ツールの紹介といった時代は変わりつつあると感じています。
そして今回、実践ガイド というタイトルを卒業しました。
急に何のことかと思われるかも知れませんが、実はこれまでにも何冊か執筆に携わらせていただいていました。そのタイトルがどれも「〇〇実践ガイド」でした。(半分くらい自分で付けているのですがw)
実践ガイドと付けると、だいたいが前がツール名(AnsibleとかGitLabとか)になります。時代がそれで良かったんだと思います。
ただし、クラウドネイティブになると環境を「作る」ことよりも「使いこなす(運用)」ことが重要になります。構築やその機能の話をいくらしても、コマンド一発で実装は終わります。それよりも、これまでのやり方をどのように変えて、クラウドネイティブに適した運用プロセスを作るのかが主体になります。
ということで、祝)脱実践ガイド

まとめ

あくまで書籍という観点でお伝えしましたが、企業のコンテナ推進についても同じではないでしょうか。
Kubernetesを使い始めたときは、色々なリソースの使い方を学んでいくことになります。しかし、ある程度機能が把握できてくると、その標準化、自動化の素晴らしさに気づくと思います。すると、今度はこれをどのように使っていくのかが重要になってくると思います。そういった局面に立ったとき、本書に向き合っていただけると大変うれしいです。

speakerdeck.com

最後に。購読いただいたみなさまと、一緒にクラウドネイティブ時代を築き上げていけることを願っています。