CNDO 2021、CI/CDのTektonのロードマップをNTTComのエンジニアが振り返る

2021年5月25日(火)
松下 康之 - Yasuyuki Matsushita
CloudNative Days Spring 2021からCI/CDのTektonのセッションを紹介する。

CloudNative Days Spring 2021からCI/CDを実装するツールTektonの紹介と、これまでのリリースを振り返るセッションを紹介する。これはNTTコミュニケーションズ株式会社のエンジニア昔農凜太朗(せきのう りんたろう)氏と杉野博徳(すぎの ひろのり)氏が行ったものだ。

TektonはもともとGoogle社内で開発されていたソフトウェアで、サーバーレスのプラットフォームであるKnativeのためのツールだったが、Knativeの配下からプロジェクトとして独立し、その後Jenkinsを開発するCloudBees等によって創立されたCD Foundationのインキュベーションプロジェクトとなったソフトウェアだ。

CI/CDはオープンソースに限らず多くのソリューション、ソフトウェアが輩出している領域で、CNCFのランドスケープを見てもパブリッククラウドにおけるサービスからSaaSまで多種多様のソフトウェアがある。

CNCF Cloud Native Interactive Landscape(Continuous Integration&Delivery)

これらの中からNTTコミュニケーションズはTektonをCI/CDのツールとして選択し、その解説を行ったわけだ。

プレゼンテーションを行う昔農氏

プレゼンテーションを行う昔農氏

昔農氏はTektonの概要について解説し、ミッションやビジョン、そしてTektonを構成する4つのコンポーネントを説明した。

NTTコミュニケーションズの視点ではDevOpsのサイクルに含まれるタスクのうち分析、評価、設計、コーディングがデベロッパーの責任、テスト、リリース、モニタリングが運用担当の責任範囲であるとして、その基盤としてのプラットフォームを提供することがミッションであると解説した。

NTTコミュニケーションズが考えるDevOpsの責任分担

NTTコミュニケーションズが考えるDevOpsの責任分担

ここからはセッション前半の内容としてTekton Pipelineについての解説を行った。

Tekton Pipelineの解説

Tekton Pipelineの解説

特徴的なのは「KubernetesのCRDとカスタムコントローラーで実装されているKubernetesに寄せたシステムであること」「処理の単位がコンテナとして実行されること」そして「パイプラインとして実行フローを定義できること」などが挙げられる。

ここからは過去1年間のTektonのリリースを紹介

ここからは過去1年間のTektonのリリースを紹介

ここから始まる数枚のスライドを用いて、各リリースについての簡単な解説を行った。Tekton自体のリリース回数が多いこと、そしてPipeline、Triggers、CLI、Dashboardのそれぞれがバージョン番号を持っていることからもわかるように、Tektonに含まれるコンポーネント間の統合性を保ちながら運用を行うのは、NTTコミュニケーションズのような組織であっても難しいのかもしれない。

2020年はほぼ毎月マイナーリリースが行われている

2020年はほぼ毎月マイナーリリースが行われている

Tekton Pipelineのドキュメントサイトで、実際のリリースノートを確認することもできる。

参考:Pipelineのリリースノート

v0.14.3の紹介

v0.14.3の紹介

各リリースのポイントは項目が多いこともあり、記述も英文のままという状態ではあったが、特に注目すべき新機能をメインに紹介が行われた。

Tekton Pipelineのデモを紹介

Tekton Pipelineのデモを紹介

ここからはターミナルを使ってKubernetesのコマンドラインを投入しながら、その結果を解説するというフェーズとなった。

GoogleのマネージドKubernetesサービスであるGKEの上にTektonを実装し、リポジトリーからクローンしユニットテストを実行するという内容だが、ここで後処理のためのFinally、ストレージを共有するためのWorkspace、Resultsなどを解説した。

Tekton Pipelineのまとめ

Tekton Pipelineのまとめ

昔農氏は、実際の運用現場で必要となる新機能が多く実装されたことで、より使いやすくなったことを解説し、杉野氏にバトンを渡した。

Tekton Triggersの紹介を行う杉野氏

Tekton Triggersの紹介を行う杉野氏

Tekton Triggersの解説として、Kubernetesのカスタムコントローラーとして実装され、Pipelineの拡張機能としてPipelineからのイベントを受け取り、Kubernetesのリソースを作成するという仕組みを解説した。

Tekton TriggersもPipelineと同様に頻繁なリリースが行われており、v0.1.0からv0.11.0までのリリースを紹介した。

Triggersの仕組みを解説

Triggersの仕組みを解説

ここではイベントを受け取ったEventListenerが、TriggerBindingに記載されたパラメータに従ってテンプレートからKubernetesのリソースを生成するという仕組みを解説した。

デモの内容を解説

デモの内容を解説

ここからデモとして、GitへのPushをトリガーにパイプラインが実行されることを、ターミナルを使って行った。

開発中のInterceptorsを解説

開発中のInterceptorsを解説

リリース回数が多いソフトウェアだけに、まだ仕様が確定していない部分も多く、このスライドではInterceptorsというイベントのメッセージに前処理を行うフィールドについて解説を行った。

最後に昔農氏が再登場して、このセッション全体のまとめを行った。

セッション全体のまとめ

セッション全体のまとめ

今後もプロジェクトとしてTektonの積極的活用とを宣言して、セッションを終えた。

CI/CDの領域はベンダーにとってはレッドオーシャンだが、ユーザーにとってはさまざまな特性の選択肢を選択できるメリットがあるとも言える。Intuitが開発をリードするArgoCDもCNCFのプロジェクトとしては期待されているソフトウェアだし、上位のコントローラー/ゲーティングシステムとして同じくサンドボックスプロジェクトに加えられているKeptnも積極的に開発が進んでいる。

以下のブログはNTTコミュニケーションズのエンジニアによるTektonとArgoCDの比較記事である。特徴を的確に捉えており、CI/CDソフトウェアを検討しているエンジニアには参考になるだろう。

参考:TEKTONとArgoを比較してみた

JenkinsとTekton、Spinnakerをメンバーとして発足したCD Foundationも活動を続行中であり、2021年6月23日、24日にCI/CDに特化したオンラインカンファレンス、cdConも行われる予定だ。

cdConのイベントページ

多くの有力なコンペティターが活動するCI/CDの領域は、まだまだ目が離せそうにない。今後も要注目だ。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第15回

CNDO2021、CNCFの提供するクラウドネイティブランドスケープを解説するセッションを紹介

2021/8/5
クラウドネイティブランドスケープを中心にCNCFの活動を解説したセッションを紹介する。
設計/手法/テストイベント
第14回

CNDO 2021、技術的負債を現場のエンジニアが対処する方法を解説

2021/8/2
時間の経過とともに溜まってしまう技術的負債に、現場のエンジニアはどう対処するべきかをAWSのエバンジェリストが解説したセッションを紹介する。
クラウドイベント
第13回

CNDO2021、Kubernetesがない世界とある世界の違いをインフラエンジニアが解説

2021/7/29
Kubernetesがある世界とない世界を比較して、クラウドネイティブになるためのヒントを解説するセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています