#2023.08.25 追記
インフラエンジニアBooksにて「30分で分かるKnative実践ガイド」ということで解説させていただきました。
スライドは以下をご参照ください。
はじめに
みなさん、こんにちは。
この度、2023年4月11日に、「Knative実践ガイド」を出版しました!
この書籍が僕にとって初めての執筆です。
Knativeと出会って5年弱。正直言いたいことはたくさんあるし、どう表現したら言いたいことが伝わるか…等々悩みが尽きませんでしたが、多くの方のたくさんのご助言で何とか書き切ることができました。この場を借りて改めてお礼申し上げます。
ここでは、出版にあたり、書籍のテーマであるKnativeの提供する開発者体験を簡単にご紹介します。
書籍のコンセプト
Knativeはノウハウも公式ドキュメントもそれなりに充実している中、このタイミングでKnativeの書籍を出版するにあたり、どんな内容を提供すべきか…
改めてKnative関連のネット上の情報を見渡すと、下記の状況を感じました。
- Knative Servingは自動化を手軽に体験できる反面、裏では一体全体何が起こっているのか理解し難い(ブラックボックス感がある)
- Knative Eventingはサンプルやドキュメントが少なく、どう使うのが良いのか体験しづらい(PingSourceでのバッチは分かりやすいけども…)
- 上記故に、公式ドキュメントに記載される各設定パラメータがKnativeの挙動にどの様な影響を及ぼすのか直感的に分かりづらい
英語の本やハンズオンもそれなりにある中で、「Knativeって実際どんな感じで使うの?」というときに、結構想像力が求められます。これを一から調べていくのはKnativeの実践まで遠いと感じていました。
今回、僕が求められたことは「実践ガイド」の執筆です。2021年に記念すべきv1.0がリリースされ、いよいよKnativeに関心を持ち始めた方が、Knativeを実践するために何が足りないのか…?
そんな自問自答を繰り返した結果、辿り着いたのが、「一通りKnativeのアプリケーション開発者体験を実践し、体感できるもの」というコンセプトです。
したがって、本書では、Knativeの全てを網羅的に細かく解説できていない側面もあります。一方で、読者の方がKnativeの活用イメージを持てる様、本書では、おさえるべき仕様はおさえて、実際のユースケースをサンプルにKnativeを体験できることを重視しました。
今だからこそ知っておきたい!Knativeの開発者体験
Knativeは「サーバレス」の文脈で語られることが多いのは確かです。このサーバレスの仕組みをサポートすることで、Knativeは、端的に言えば「Kubernetesアプリケーションの簡単・お手軽デプロイ」な開発者体験を提供します。もう少し具体的に言うと、例えば、以下が挙げられます。
- Function実装用のテンプレート提供、コンテナイメージのビルド
- Kubernetesへ簡単にアプリケーションをデプロイ
- HTTPSのアプリケーションエンドポイントを簡単に設定
- リクエスト数に応じた迅速なオートスケール
- アプリケーションのリビジョンに応じたトラフィックの管理
- イベント駆動の非同期アプリケーションの簡単実装
Knativeの良いところは、開発者がコンテナやKubernetesに精通していなくても、Kubernetesを活用したシステム構築を手軽に始められるプラットフォームを実現できる点にあります。
Knativeを実践するには、まずこれらの開発者体験が実際どんなものなのか把握することが大切です。そして、そのためには考えるよりも手を動かして体験してみる、というのがいちばんの近道になります。
したがって、書籍では、Knativeがこれらの体験をどの様に実現するのか、Knativeの実現する開発者体験は、実際どのようなものなのか、サンプルアプリケーションをベースに解説しています。
まとめ
KnativeはKubernetesを使う上で面倒臭いポイントを簡素化するプラットフォームです。アプリケーションによってKnativeへの向き不向きはあるものの、コンテナのことをよく知らない人でも、簡単にコンテナを用いたアプリケーションをデプロイできる、と言う点で、Kubernetesの利用、更にはクラウドネイティブ開発を促進するのに役立ちます。
ぜひ「Knative実践ガイド」にて、Knativeの開発者体験を一通り把握し、業務での検討に少しでもお役に立てましたら幸いです!