ソフトウェア開発におけるCI/CDの採用トレンド
この研究は、2012年から2023年までの間に開発者の間でのCI/CDの実践の増加を調査しているよ。
― 1 分で読む
目次
ソフトウェアを継続的に統合して配信することは、今や開発チームの働き方の重要な部分だよ。CI/CDは継続的インテグレーションと継続的デリバリー(またはデプロイメント)の略で、この方法を使うとチームはソフトウェアをもっと頻繁に、しかも高品質でリリースできるんだ。CI/CDを使うことで、開発者はコードを変更して、その変更をテストし、その後更新されたバージョンのソフトウェアを自動的にデプロイできる。これにより、バグを早く見つけられて、ソフトウェアが常に最新の状態になるんだ。
でも、CI/CDの利点がある一方で、多くのチームは課題にも直面してる。利用可能なツールやプログラミング言語、プラクティスが多すぎて、開発者がそれについていくのが難しいこともある。この論文では、開発者がどのようにCI/CDツールを利用しているのか、またそのプラクティスが時間とともにどう変わってきたのかを見ていくよ。
ソフトウェアリポジトリの役割
ソフトウェアリポジトリは、開発者がコードを保存したり、変更を追跡したりする場所なんだ。さまざまなプラクティスやツールに関する貴重なデータも含まれてる。そんなリポジトリをホストするための人気プラットフォームの一つがGitHubだよ。GitHubを使うと、ユーザーはコードを探したり共有したりできて、公開リポジトリからのインサイトを集めるのに役立つ検索APIも提供してる。
このデータを分析することで、研究者は開発者がどのようなツールや方法を使っているのか学べるし、それが業界のプラクティスや学術研究にも影響を与えるんだ。
目的
この研究の目標は、GitHubリポジトリを調べることで開発者がCI/CD技術をどのように使っているかを理解することだよ。最も一般的なツールやその進化、さまざまなプログラミング言語とこれらのツールとの関係についてのインサイトを集めることを目指してる。
方法論
研究を始めるにあたり、一般的によく使われているCI/CD技術のリストを作成したよ。その後、GitHubの検索APIを使って、これらの技術を利用しているリポジトリを探した。このプロセスを通じて、さまざまなインサイトも収集できたんだ。
私たちの分析は、2012年から2023年の間に作成された60万以上のリポジトリをカバーしているよ。このサンプルから、約3分の1のリポジトリが何らかのCI/CD技術を含んでいることがわかった。さらに深く探ることで、開発者がこれらのツールをどのように使っているかのパターンを確認できた。
CI/CD技術とその採用
最初の発見の一つは、多くの開発者が同じプロジェクト内で複数のCI/CDツールを使用していることだよ。平均して、リポジトリのほぼ15%が複数のツールを同時に使っていることがわかった。これは、一部のプロジェクトでは単一の技術ではニーズをすべて満たせないことを示唆してる。
人気のCI/CDツール
私たちの分析では、GitHub Actionsが最も広く使われているツールで、CI/CDを使っているリポジトリのほぼ58%に見られたよ。Travis CIが2番目に人気のツールで、約39%のリポジトリに存在してる。他のツール、例えばCircleCI、Jenkins、GitLabなどは、これら二つと比べると利用率は低いんだ。
プログラミング言語の使用
これらのリポジトリのプログラミング言語を見てみると、いくつかの言語がCI/CDプラクティスを採用する可能性が高いことがわかったよ。JavaScriptとPythonがCI/CDリポジトリで最もよく見られた。面白いことに、SQLやRのような人気のある言語はCI/CDの採用が少ないんだ。これは、Rのような言語は技術的なバックグラウンドが強くない人々によく使われるため、CI/CDプラクティスを採用するのが難しいのかもしれない。
時間とともに見られる採用率
年々、CI/CDを利用するリポジトリの数は着実に増えてきたよ。2012年には少数のプロジェクトがこれらの技術を含んでいたけど、2023年には分析したリポジトリのほぼ3分の1が少なくとも1つのCI/CDツールを使っていることがわかった。
技術スタックの変化
私たちの研究では、開発者がCI/CDプラクティスの中でどの程度技術を切り替えているかも分析したよ。プロジェクトが進化するにつれて、開発者がツールを変更するのは一般的だということがわかった。例えば、以前Travis CIを使用していた多くのプロジェクトがGitHub Actionsに移行していることに気づいた。このシフトは、開発者が新しい課題に直面したときに、より効果的なツールを求めることがよくあることを示してる。
ツール変更の頻度
私たちの調査では、全リポジトリのスナップショットの中でCI/CD技術において変更が見られたのは、2%から12%の間であることがわかった。このデータは、開発者が特に最近の数年間において技術スタックを頻繁に調整していることを示してる。
課題と今後の研究方向
私たちの研究から得られた結果は、開発者がCI/CDプラクティスを管理するためのより良いサポートシステムの必要性を示しているよ。たとえば、多くの開発者が同時に複数の技術を使用しているにもかかわらず、その状況をナビゲートするための情報やツールはほとんど存在しない。
相互運用性の必要性
異なるCI/CDツールがどのように連携できるかを理解することが重要だよ。これらの技術の相互運用性はまだ十分に研究されていないため、開発者は複数のツールを効果的に使う際に困難を抱えるかもしれない。
開発者のサポート
私たちは、開発者が必要に応じてツールを切り替えるのを助けるソリューションを探していることを見つけたよ。技術が進化する中で、適切なサポートシステムを整えることは、開発チームの成功にとって重要になるだろう。
結論
この研究を通じて、CI/CD技術の状況や開発者による採用の変化について多くのことを学んだよ。私たちの調査結果は次のことを示している:
- 今や多くのリポジトリがCI/CDプラクティスを採用している。
- 開発者はプロジェクトの要求を満たすために、しばしば複数のツールを同時に利用している。
- 特定のツールの人気が変化してきており、GitHub Actionsへの明確なトレンドが見られる。
- 異なる技術の間を移行するためのより良いサポートメカニズムが必要だ。
これから進むにあたり、これらの問題をさらに探求することが重要で、開発者が進化し続けるソフトウェア開発環境で成功するために必要なツールと知識を持てるようにしないといけないね。
タイトル: Chronicles of CI/CD: A Deep Dive into its Usage Over Time
概要: DevOps is a combination of methodologies and tools that improves the software development, build, deployment, and monitoring processes by shortening its lifecycle and improving software quality. Part of this process is CI/CD, which embodies mostly the first parts, right up to the deployment. Despite the many benefits of DevOps and CI/CD, it still presents many challenges promoted by the tremendous proliferation of different tools, languages, and syntaxes, which makes the field quite challenging to learn and keep up to date. Software repositories contain data regarding various software practices, tools, and uses. This data can help gather multiple insights that inform technical and academic decision-making. GitHub is currently the most popular software hosting platform and provides a search API that lets users query its repositories. Our goal with this paper is to gain insights into the technologies developers use for CI/CD by analyzing GitHub repositories. Using a list of the state-of-the-art CI/CD technologies, we use the GitHub search API to find repositories using each of these technologies. We also use the API to extract various insights regarding those repositories. We then organize and analyze the data collected. From our analysis, we provide an overview of the use of CI/CD technologies in our days, but also what happened in the last 12 years. We also show developers use several technologies simultaneously in the same project and that the change between technologies is quite common. From these insights, we find several research paths, from how to support the use of multiple technologies, both in terms of techniques, but also in terms of human-computer interaction, to aiding developers in evolving their CI/CD pipelines, again considering the various dimensions of the problem.
著者: Hugo da Gião, André Flores, Rui Pereira, Jácome Cunha
最終更新: 2024-02-27 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2402.17588
ソースPDF: https://arxiv.org/pdf/2402.17588
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。