The Linux Foundationが2019年3月12日(米国時間)に発表した、CI/CD関連の新ファウンデーション、「Continuous Delivery Foundation」。具体的にはどのような活動をすることになるのか。このファウンデーションの設立に関わった、Jenkinsの生みの親でCloudBeesのCTOである川口耕介氏に聞いた。
The Linux Foundationは2019年3月12日(米国時間)、CI/CD(継続的インテグレーション/継続的デリバリー)関連の新たなファウンデーション、「Continuous Delivery Foundation(以下、CDF)」の発足を発表した。Jenkins、Jenkins X、SpinnakerといったCI/CD関連オープンソースプロジェクトをホストする一方、CI/CDパイプラインの標準仕様を策定するという。具体的にはどのような活動をするのか。このファウンデーションの設立に関わった、Jenkinsの生みの親でCloudBeesのCTO(最高技術責任者)である川口耕介氏に聞いた。
CDFは23の組織(Alauda、Alibaba、Anchore、Armory.io、Atos、Autodesk、Capital One、CircleCI、CloudBees、DeployHub、GitLab、Google、HSBC、Huawei、IBM、JFrog、Netflix、Puppet、Rancher Labs、Red Hat、SAP、Snyk、SumoLogic)を創立メンバーとして発足した。
プレスリリースはCDFの活動について、「CDFは継続的デリバリーのための最も重要なオープンソースプロジェクトと、リリースパイプラインプロセスを迅速化する仕様のための、ベンダー中立な場としての役割を果たす。CDFは業界におけるトップの開発者、エンドユーザー、ベンダー間の協力を促進し、CI/CDおよびDevOpsのメソドロジーに関する啓蒙(けいもう)を行う一方、ベストプラクティスを定義/記述し、ガイドラインを提供し、トレーニング資料を作成することを通じて、世界中のあらゆるソフトウェア開発チームがCI/CDのベストプラクティスを実装できるようにする」と記述している。
すなわち、主要な活動の第一は、CI/CDツールなどの関連オープンソースプロジェクトをホストし、資金や人員、マーケティング面の支援およびガバナンスの確保を行うこと。第二は、関連ツール間の相互運用性を高めるような仕様や事実上の標準を策定することにある。これらはKubernetesを事実上のベースとし、クラウドネイティブ関連を広く守備範囲としているファウンデーション、Cloud Native Computing Foundation(CNCF)の活動の方向性と重なる。
川口氏は、「Jenkinsのファウンデーションを作りたいと考え、2年ほど前からLinux Foundationの人たちと相談してきた。その間にCNCFが成功し、これにインスパイアされる形でより包括的なファウンデーションを設立する話に発展してきた。さまざまなオープンソースプロジェクトを同じ傘の下に集めれば、開発者同士が協力し合い、面白いことが起きるということが設立の目的の一つ」と説明する。
もう一つの目的には、CNCFが「クラウドネイティブ」を、開発者だけではなくビジネス側の人たちに対してもITの未来だという啓蒙をしてきたのと同様に、CI/CDを、現場の人々だけではなくさまざまな組織全体の取り組みに発展させていく手助けをしたいということがあったという。
「CloudBeesの顧客には、マルチクラウドなDevOps戦略を指向し、特定のクラウドにロックインされないためにオープンソースの活用を図っている組織が多いが、CDFはこうした組織の手助けになれると考えている。また、ユーザー組織の開発現場にいる人たちはCDの取り組みの重要性を理解しているが、彼らは組織を動かすことに苦労している。ビジネス側の人たちに、CDがビジネスに与えるインパクトを理解してもらうために、CDFという形で声を上げていきたい。ベンダーとしてはCDの重要性を訴えてきたが、オープンソースのファウンデーションとして啓蒙することには大きな意義がある」(川口氏)
活動の方向性は似ていても、CNCFの傘下に入ることは考えなかったという。CNCFは事実上、Kubernetesを基盤としたエコシステムの拡大・成熟を目的として活動している。一方、CDFではKubernetesに限定されない取り組みを進めようとしているからだ。
「組み込み系やゲーム開発に見られるように、ソフトウェア開発の裾野は、『クラウドネイティブ』よりも広い。CDFでは、これを広くカバーしようとしている。また、CNCFの守備範囲は広いが、ランタイム的な部分に多くの力を注いでいる傾向がある」(川口氏)
現時点でCDFにホストされることが決まっているプロジェクトとしては、Jenkins、Jenkins X、Spinnakerに加え、「Tekton」という名が挙がっている。これは、今まで「Knative Build Pipeline」と呼ばれてきたKnativeのサブプロジェクトに、新たに付けられた名称。今回の発表に合わせ、GoogleがCDFにTektonのコードを寄贈したという。
では、他にはどのようなプロジェクトがCDFでホストされることになるのか。川口氏は、Jenkinsと同様な、狭義のCI/CDツールだけが対象になるわけではないという。
「例えばJenkinsユーザーがArtifactoryを使ってリポジトリを管理し、Terraformでデプロイを行うなどしている。こうした、ソフトウェア開発のライフサイクルに関わるさまざまなプロジェクトがホストされればいいと思っている。大きな傘の下に、多様なツールが集まることで、相互の協力が自然に始まっていけばすてきだと思う。テスト、インフラ構成自動化、セキュリティなど、いろいろなプロジェクトに来てほしい」と話す。
「現在のオープンソースの世界は、大まかにはベンダーが自社のビジネスのためにオープンソースをやるという構図になっていて、ツール間の分断が見られる。例えばArtifactoryは、JFrogのプロジェクトということになっているため、エンドユーザー組織や他のベンダーが参加しにくい。ベンダーの利害が絡むオープンソースプロジェクトをうまく管理してきた実績のあるLinux Foundationの下で、ベンダーの壁などを心配せずにCDのエコシステムが築ければ、ユーザー組織でCDを実践するのが現在よりもずっと楽になる」
例えばJenkinsとSpinnakerは互いに競合する存在と言われることもあるが、必ずしもそうではないと、川口氏は続ける。
「(Spinnakerを開発した)Netflixも、社内でJenkinsを多用している。2つのツールは機能が重なる部分ももちろんあるが、フォーカスが異なるからだ。このため、協調できる余地は大いにある。お互いのことをよく知ることで敵対心が薄れ、協力し合うようになった例は、オープンソースの世界でも過去に幾つもある。CDFでは、こうした協調の可能性を模索していきたい」
では、CDFのもう一つの柱である標準仕様の開発は、何を目的としてどのように行われるのか。
「標準化」のテーマの一つはパイプラインの記述方式の標準化だ。CDF発足のプレスリリースには、Linux Foundationのデベロッパーリレーション担当バイスプレジデント兼CNCFのCTOであり、CDFの設立にも関わっているクリス・アニズィック(Chris Aniszczyk)氏が、「利用できるCDツールの数は増えているが、ツール間の移植性を支援するようなパイプラインおよびワークフローの業界標準は存在しない。(中略)CDFの創立メンバーは、この問題の解決を目的とした相互協力や統合作業を進めるための、中立的な場を必要としている」とのコメントを寄せている。
川口氏も、次のように話す。
「パイプラインについては、さまざまなプロジェクトが似たようなものを別々に作っているという現実がある。そこで関連プロジェクトとしては、車輪の再発明を避けたい。一方、ユーザーにとっても、(パイプライン仕様の共通化が進むことで)メリットがあるのは間違いない」
パイプライン/ワークフロー定義の標準化については、Tektonがベースになる可能性がある。アニズィック氏は2018年12月、Knative Build Pipeline(現在のTekton)について、筆者に次のように話していた。
「これはあらゆるCI/CDシステムから使えるパイプラインを定義できるというもので、とても良いアイデアであり、もっと早くこうしたツールが登場すべきだったと思う。サーバレス以外でも役に立つと考えている」
それにしても、こうした標準化が進むと、CI/CDツールの差別化は難しくなるのではないだろうか。例えばJenkinsに関しては、パイプラインのきめ細かな記述や、1500にも上るプラグインを通じた他製品との統合といった特色が薄れてしまうのではないか。
川口氏はこれを否定する。
「最終的には良いツールを提供することが重要。良いテクノロジーを部品として組み込めるのであれば、どんどんやるべきだと思う。Jenkinsも先人の作ったさまざまなオープンソースプロジェクトの上に成り立っている。必ずしも全て自分たちで作り直す必要はない。また、独自のパイプラインをメンテナンスしていくのにも大きな工数がかかる。これをプロジェクト内部で続けていくのが賢明なリソースの使い方なのかを検討した上での判断だと考えている。現在のユーザーの資産を大切に考えるのはもちろん重要だが、新しいものに貪欲に取り組まずユーザーを閉じ込めるのは、Jenkinsの長期的な将来にも良くない」
差別化のレイヤーが徐々に上がっていくのは今に始まった話ではなく、自然な流れだと川口氏はいう。
「例えばCloudBeesとして注力してきたのは、組織としてCI/CDを回していく際に、開発チームのパフォーマンス管理や、コンプライアンス上のプロセス展開/チェックなど、エンジニアリングマネジャーが悩む課題の解決をどう支援するかという点。オープンソースソフトウェアであり、無償のJenkins自体は必ずしも差別化しなくていい。それよりもたくさんの人々に使われ続けることが重要だ」
他に川口氏が考える標準化/共通化のテーマとしては、ソフトウェアに関するテストやセキュリティスキャンの結果情報や証跡の、さまざまなツール間での共有があるという。
「例えば、(CI/CDパイプラインにおける多様なメタデータを管理するAPI群を提供するオープンソースプロジェクトである)GrafeasがCDFに入れば面白いと思う」
なお、CDFにおける標準化のアプローチは、CNCFと同様だという。すなわち、関係者が一堂に集まって、何らかの「標準」を議論し、決定するのではない。あくまでも実装が重要であり、合意できる人たち同士が、合意できるものを推進することが基本となる。
「それがクリティカルマスに達するならば、オープンソースの世界での採用は急速に広がることになるだろう」(川口氏)
Copyright © ITmedia, Inc. All Rights Reserved.