PR

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関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第4回

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

2021/5/25
CloudNative Days Spring 2021からCI/CDのTektonのセッションを紹介する。
クラウドイベント
第3回

CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説

2021/5/19
CloudNative Days Spring 2021からKubernetesのコンテナランタイムを解説したセッションを紹介する。
クラウドイベント
第2回

CNDO 2021、Open Policy Agentを使ったポリシーアズコードの紹介

2021/5/12
CloudNative Days Spring 2021からOPAに関するセッションを紹介する。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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