CNDO 2021、CI/CDのTektonのロードマップをNTTComのエンジニアが振り返る
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のサイクルに含まれるタスクのうち分析、評価、設計、コーディングがデベロッパーの責任、テスト、リリース、モニタリングが運用担当の責任範囲であるとして、その基盤としてのプラットフォームを提供することがミッションであると解説した。
ここからはセッション前半の内容としてTekton Pipelineについての解説を行った。
特徴的なのは「KubernetesのCRDとカスタムコントローラーで実装されているKubernetesに寄せたシステムであること」「処理の単位がコンテナとして実行されること」そして「パイプラインとして実行フローを定義できること」などが挙げられる。
ここから始まる数枚のスライドを用いて、各リリースについての簡単な解説を行った。Tekton自体のリリース回数が多いこと、そしてPipeline、Triggers、CLI、Dashboardのそれぞれがバージョン番号を持っていることからもわかるように、Tektonに含まれるコンポーネント間の統合性を保ちながら運用を行うのは、NTTコミュニケーションズのような組織であっても難しいのかもしれない。
Tekton Pipelineのドキュメントサイトで、実際のリリースノートを確認することもできる。
各リリースのポイントは項目が多いこともあり、記述も英文のままという状態ではあったが、特に注目すべき新機能をメインに紹介が行われた。
ここからはターミナルを使ってKubernetesのコマンドラインを投入しながら、その結果を解説するというフェーズとなった。
GoogleのマネージドKubernetesサービスであるGKEの上にTektonを実装し、リポジトリーからクローンしユニットテストを実行するという内容だが、ここで後処理のためのFinally、ストレージを共有するためのWorkspace、Resultsなどを解説した。
昔農氏は、実際の運用現場で必要となる新機能が多く実装されたことで、より使いやすくなったことを解説し、杉野氏にバトンを渡した。
Tekton Triggersの解説として、Kubernetesのカスタムコントローラーとして実装され、Pipelineの拡張機能としてPipelineからのイベントを受け取り、Kubernetesのリソースを作成するという仕組みを解説した。
Tekton TriggersもPipelineと同様に頻繁なリリースが行われており、v0.1.0からv0.11.0までのリリースを紹介した。
ここではイベントを受け取ったEventListenerが、TriggerBindingに記載されたパラメータに従ってテンプレートからKubernetesのリソースを生成するという仕組みを解説した。
ここからデモとして、GitへのPushをトリガーにパイプラインが実行されることを、ターミナルを使って行った。
リリース回数が多いソフトウェアだけに、まだ仕様が確定していない部分も多く、このスライドではInterceptorsというイベントのメッセージに前処理を行うフィールドについて解説を行った。
最後に昔農氏が再登場して、このセッション全体のまとめを行った。
今後もプロジェクトとしてTektonの積極的活用とを宣言して、セッションを終えた。
CI/CDの領域はベンダーにとってはレッドオーシャンだが、ユーザーにとってはさまざまな特性の選択肢を選択できるメリットがあるとも言える。Intuitが開発をリードするArgoCDもCNCFのプロジェクトとしては期待されているソフトウェアだし、上位のコントローラー/ゲーティングシステムとして同じくサンドボックスプロジェクトに加えられているKeptnも積極的に開発が進んでいる。
以下のブログはNTTコミュニケーションズのエンジニアによるTektonとArgoCDの比較記事である。特徴を的確に捉えており、CI/CDソフトウェアを検討しているエンジニアには参考になるだろう。
JenkinsとTekton、Spinnakerをメンバーとして発足したCD Foundationも活動を続行中であり、2021年6月23日、24日にCI/CDに特化したオンラインカンファレンス、cdConも行われる予定だ。
多くの有力なコンペティターが活動するCI/CDの領域は、まだまだ目が離せそうにない。今後も要注目だ。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNDT 2022、NTTコムのエンジニアがマニフェストレスを実現したIaCのためのSaaSを解説
- OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは
- オープンソースのストレージプロジェクト、SODAが6月14日にテックカンファレンスを開催
- レッドハットが「OpenShift Commons Gathering Japan 2021」を開催、キーパーソンが語るハイブリッドクラウドを実現するための3つのポイントとは
- CNDT2021、NTTComのアーキテクトがDevOpsに繋がるフィードバックループを解説
- コンテナをさらに活用しよう! 「マイクロサービス」と「サーバーレス」
- CNDT2020シリーズ:CAのインフラエンジニアが解説するKubernetesネイティブなCI/CD
- 「CloudNative Days Spring 2021 Online」開催レポート
- コンテナー管理ツール「Rancher」のエンタープライズ利用に向けたイベント開催
- OpenStack Days Tokyo開催、Ops Workshopにみる開発者以外を重視する姿勢とは