Tekton とは?
- Kubernetes上でCI/CDパイプラインを実行するオープンソースフレームワーク
- Task・Pipeline・TriggerなどKubernetesのカスタムリソースとして定義する
- Google Cloud BuildやRed Hat OpenShift Pipelinesの基盤技術として採用されている
- ベンダーロックインを避けたクラウドネイティブなCI/CD環境を構築できる
TektonってJenkinsやGitHub Actionsとは何が違うの?
一番の違いは「Kubernetes上で動く」ことだよ。JenkinsやCircleCIは専用のサーバーやクラウドサービスが必要だけど、TektonはKubernetesのリソースとしてパイプラインを定義して、普通のPodとして実行されるんだ
Kubernetesの上で動くと何がうれしいの?
アプリケーションの実行環境とCI/CDの実行環境が同じKubernetesクラスタ上にあるから、管理が一元化できるんだ。スケーリングもKubernetesに任せられるし、既存のKubernetesの監視やセキュリティの仕組みをそのまま使えるよ
具体的にどうやって使うの?
YAMLでTaskとPipelineを定義するんだ。Taskが「テストを実行する」「コンテナイメージをビルドする」といった個々の作業で、Pipelineがそれらを順番に繋げたものだよ。kubectl applyで適用すれば、Kubernetes上でパイプラインが動き出すんだ
どういうプロジェクトで使われているの?
Google Cloud BuildやRed Hat OpenShift Pipelinesの内部基盤としてTektonが使われているよ。大規模なKubernetes環境を運用している企業が、ベンダーロックインを避けつつCI/CDを統一したいときに選ばれることが多いんだ
個人で使うには大げさな感じがするけど、学ぶ意味はあるの?
確かに個人プロジェクトにはオーバースペックだね。ただ、TektonはCDF(Continuous Delivery Foundation)のプロジェクトで、CI/CDの標準化を目指しているんだ。Kubernetesがインフラのデファクトになりつつあるように、TektonがCI/CDのデファクトになる可能性もあるから、キャリアとして知っておく価値はあるよ