Go言語でポータブルなCI/CDパイプラインが定義可能に。「Dagger」がGo SDKを発表
CI/CDパイプラインをポータブルにする「Dagger」をGo言語に対応させる「Go SDK」が発表されました。これによりGo言語でどこでも動くポータブルなCI/CDパイプラインの定義が可能になります。
Introducing the Dagger Go SDK: a new way to develop your CI/CD pipelines as code, and run them in containers anywhere. https://t.co/7riHAwUSMO pic.twitter.com/mEwrZySbLp
— dagger (@dagger_io) October 25, 2022
CI/CDがローカルPCでもGitHubでもCircleCIでも実行可能
Daggerはソフトウェアのビルド、テスト、デプロイを行う一連のCI/CDパイプラインをポータブルにするためのツールです。Dockerの創始者であるSolomon Hykes氏らが中心となってオープンソースとして開発されています。
参考:Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に
一般に、例えばGitHubを利用して構築したCI/CDパイプラインがあったとして、それをローカルで再現しようとする場合、もしくはJenkinsやCircleCIやGitLabなどの別のツールやサービスを用いて再構築しようとする場合、設定ファイルなどの大幅な書き換えや作り直しをせざるを得ません。
しかしDaggerでCI/CDパイプラインを定義すれば、そのまま定義を書き換えることなくローカルのPCやサーバで実行可能なだけではなく、GitHubやCircleCIなどの主要なCI/CDサービスの上でも実行可能になります。
これにより、CI/CDパイプラインが特定のツールやサービスにロックインされることがなくなります。また、開発者は開発チームのCI/CDパイプラインと同じものを簡単に手元のローカルPCで再現することや、逆にローカルのCI/CDパイプラインをサービス上に大規模に展開することなどができるようになります。
このDaggerのポータビリティを実現する技術として使われていたのが、Googleが開発した設定記述向けのプログラミング言語「CUE」と、さまざまなアクションをDockerコンテナとして実行するためのビルドツールとなる「BuildKit」です。
CUE言語の代わりにGo言語でCI/CDパイプラインを定義
今回発表されたGo SDKは、CUE言語の代わりにGo言語でCI/CDパイプラインの定義を可能にするものです。
これによりCI/CDパイプラインを、プログラマにとって分かりやすく、しかも普段使っているエディタなどで扱いやすいプログラミング言語で記述できるようになります。
Solomon Hykes氏は「私たちの最終的な目標は、すべての開発者がコードを書いて開発するのと同じやり方でCI/CDパイプラインも開発できるようにすることだ」(Our ultimate goal is to ensure all developers can develop their CI/CD pipelines in the same way they develop the rest of their code. )とブログでコメントしており、今後他のプログラミング言語のSDKも提供していく意向を明らかにしました。
あわせて読みたい
Webpackの後継となる新バンドルツール「Turbopack」が登場。Rust製のネイティブアプリケーションでWebpackの700倍高速に。Next.js Conf 2022
≪前の記事
Docker DesktopがWebAssemblyランタイムを統合。コンテナと同様にWebAssemblyイメージを実行可能に