Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に

今回は「Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に」についてご紹介します。

関連ワード (再利用可能、特定、記述法等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Dockerの創始者であるSolomon Hykes氏らが中心となって開発しているオープンソースのCI/CD環境構築ツール「Dagger」が公開されました。

Windows、Mac、Linuxで試すことができます。

And we are live! Introducing Dagger, a new way to build CI/CD pipelines. By the creators of Docker. https://t.co/DU8racmoUo

— dagger (@dagger_io) March 30, 2022

Daggerが定義したCI/CDパイプラインはポータブルになる

Daggerとは「A Portable Devkito for CI/CD Pipelines」だと説明されています。すなわち、ソフトウェアのビルド、テスト、デプロイを行う一連のCI/CDパイプラインをポータブルにするための開発キットだ、ということです。

fig

具体的には、DaggerでいちどCI/CDパイプラインを定義すれば、そのまま定義を書き換えることなくローカルのPCやサーバで実行可能なだけではなく、GitHubやCircleCIなどの主要なCI/CDサービスの上でも実行可能になります。

fig

一般に、例えばGitHubを利用して構成したCI/CDパイプラインを、ローカルで再現しようとする場合、もしくはJenkinsやCircleCIやGitLabなどの別のツールやサービスを用いて再構築しようとする場合、設定ファイルなどの大幅な書き換えや作り直しをせざるを得ません。

そのため、ほとんどのCI/CDパイプラインはそれを構成するプラットフォームやサービスにロックインされている状態と言えます。

ところがDaggerでCI/CDパイプラインの定義をすると、その定義を書き換えることなくローカルのPC環境でも、サーバでも、GitHubでもJenkinsでもCircleCIでも、同じ機能を持つCI/CDパイプラインを構築できるようになります。

これにより、CI/CDパイプラインが特定のツールやサービスにロックインされることがなくなります。また、開発者は開発チームののCI/CDパイプラインと同じものを簡単に手元のローカルPCで再現することや、逆にローカルのCI/CDパイプラインをサービス上に大規模に展開することなどができるようになります。

DaggerのGitHubのページにも、以下の2つの利点が強調されています。

  • Unify dev and CI environments. Write your pipeline once, Dagger will run it the same everywhere.
  • Reduce CI lock-in. No more re-writing everything from scratch every 6 months.

1つ目は、開発環境とCI環境の統合。一度CI/CDパイプラインを記述すれば、Daggerはそれをどこでも同じように実行する、ということ。2つ目は、CI環境へのロックインの削減。(環境の変更により)6カ月ごとにすべてを最初から書き直すことは、もうしなくてよい、ということです。

Dockerコンテナが登場したことにより、ローカルのPC、サーバ上のビルド環境、ステージング環境、本番環境などに対する高いポータビリティが実現され、それらの間でソフトウェアを自由に移動、展開させることが容易になりました。

Daggerはこれをさらに推し進め、ビルド、テスト、デプロイを含む一連のCI/CDパイプラインをまるごとポータブルにし、ローカルのPC上の開発環境でも、開発チームが管理するステージング環境でも、どんな環境に対してもCI/CDパイプラインの移動、展開を容易にするものと言えます。

Daggerのおもな構成要素はCUE言語とBuildKit

DaggerのこうしたCI/CDパイプラインのポータビリティを実現している主なテクノロジーは、CUE言語とBuildKitの2つです。

CUE言語とは、Googleが開発した設定記述向けのプログラミング言語です。

現在、さまざまなソフトウェアの設定ファイルの記述法として、YamlやJSONが採用されていますが、必ずしも表現力や可読性が十分とは言えない場面があります。

CUE言語はこうした設定を記述するための構文、表現力、可読性を考慮して作られたプログラミング言語であり、高い表現力と機能、可読性を備えつつ、高度で抽象的な記述を可能にしています。

Daggerでは、このCUE言語を用いてCI/CDパイプラインを記述することになります。

一方、Daggerにおいてビルドやデプロイといったいわゆるアクションは、Dockerコンテナとして実行されます。そのためDaggerのユーザーはこれらのアクションを好きな言語で記述し、実行できます。このときDockerコンテナをビルドするのがBuildKitです。

Daggerでは、これらのDockerコンテナによるアクションをさまざまな場面やプラットフォームで再利用可能になっています。

現時点でDaggerはパブリックベータの段階で、Mac、Windows、Linuxのローカル環境でのCI/CDパイプラインの構築を試すことができるほかに、GitHub、GitLab、Jenkinsに対応する方法も説明されています。

開発の主体となっているDagger社は昨年700万ドルの投資を受け、さらに今年3月に2000万ドルの追加投資を受けたことを発表しています。これらを原資に、完成度の向上と機能追加、そして商品化を目指した開発が行われていくことになります。

関連記事

Solomon Hykes氏がDockerを去ったのは、ちょうど4年前の2018年4月でした。

  • Docker発展の貢献者、Docker社創業者兼CTOのSolomon Hykes氏がDockerを去ると発表

COMMENTS


Recommended

TITLE
CATEGORY
DATE
テレワークで従業員が交流不足に…… 専門家が解消法を伝授 適切なPC選びがコミュニケーションを助ける
PR
2021-03-25 20:37
メルカリ、iOS12.0未満へのアプリ提供を終了へ 7月1日から順次
企業・業界動向
2021-06-18 19:42
外国人投機筋は日本株に弱気、日本の景気回復が鮮明になれば買いに転じるか
IT関連
2021-05-25 04:34
IBM Cloud、“政府認定クラウド”入りは2022年に 次世代基盤に移行中で申請見合わせ
クラウドユーザー
2021-07-03 13:34
パテントトロールによるオープンソースプロジェクトへの攻撃が急増している理由
IT関連
2022-09-22 04:35
[速報]マイクロソフト、ChatGPTとCopilotのプラグイン共通化を発表。プラットフォーム化とエコシステムを促進。Build 2023
Microsoft
2023-05-24 15:15
データブリックス、レイクハウス向けリアルタイム機械学習の新機能を提供
IT関連
2023-03-09 08:09
アマゾンのCO2排出量、2021年に18%増加–コロナ禍の事業急拡大で
IT関連
2022-08-03 20:57
デジタル備蓄のススメ EV活用「V2H」と大容量ポータブル電源とソーラーパネルと :デジタル防災を始めよう(1/3 ページ)
トップニュース
2021-01-30 19:01
AWSをElasticが名指しで非難 ElasticsearchとKibanaのライセンスを、AWSが勝手にマネージドサービスで提供できないように変更へ (1/2)
クラウドユーザー
2021-01-23 13:29
Meta、2022年は開発者会議「F8」開催せず–メタバース構築にフォーカス
IT関連
2022-04-08 06:11
増え続けるランサムウェア–ハッカーの魔の手から逃れるために必要なこと
IT関連
2022-08-30 22:30
コロナ禍で苦しむ製薬会社のDXを進める、業界特化型デジタルマーケのフラジェリンが1.5億円調達
ソフトウェア
2021-03-25 01:37
「Salesforce」で実現する新規上場–ラバブルマーケティンググループが語る、導入の勘所
IT関連
2022-10-18 18:33