クラウド開発におけるコスト意識の調査
この研究は、開発者がクラウドアプリケーション開発でコストをどう考えるかを調査してるよ。
― 1 分で読む
目次
クラウドコンピューティングはソフトウェア開発と配信の主な方法になってきてるよね。企業は主にお金を節約できるからクラウドに目を向けてる。でも、開発者が実際に開発プロセス中にコストについて考えてるかどうかの研究はあまり進んでないのが驚きだ。この研究は、オープンソースのクラウドベースのアプリケーションを見て、コスト意識が実際にどのように現れるかを探ることを目的にしてるんだ。
研究の目的
この研究の目的は、開発者がクラウドでアプリケーションを開発・展開する際にコストを意識しているかどうかの証拠を集めること。具体的には、Infrastructure-as-Code (IaC) という特定のアーティファクトに焦点を当てて、クラウド環境でのソフトウェアの展開を自動化する助けをしてる。
研究に使った方法
GitHubのようなプラットフォームで152,735のリポジトリを調べて、我々の研究に関連する2,010を見つけた。その中から538のコミットメッセージと208の関連する課題を分析した。基本的なコーディング技術を使ってデータを評価し、Stack Overflowのディスカッションを調べて結果を確認した。
発見
研究結果によると、開発者はアプリケーションを展開する際のコストを気にしてるだけでなく、それを管理するための行動もとってるみたい。安いクラウドサービスを選ぶだけじゃなくて、将来の研究のための領域も特定した。
結論
Terraformという人気のあるIaCツールに主に焦点を当てたけど、得られたインサイトはクラウドアプリケーションの開発に関わる誰にでも役立つはず。開発者がサービス選びやリソース管理でコストを削減するためのスマートな選択をする際に、見つかった結果が役立つ可能性があるよ。
クラウドコンピューティングにおけるコストの重要性
コスト削減は、多くの企業がクラウドに移行する大きな理由。クラウドサービスのユーザーにとってコスト節約に寄与する2つの主要な要因がある。まず、コンピューティングパワーやストレージなどのリソースがオンデマンドで利用できて、公共料金のように請求されること。これによって、ユーザーは必要に応じて使用量を増減できるから、伝統的なデータセンターのように固定のセットアップを維持するよりも効率的。
次に、Amazon Web Services (AWS) やMicrosoft Azure、Google Cloud Platformのような大規模クラウドサービスプロバイダーは、規模の経済の恩恵を受ける。大量の顧客にサービスを提供できるから、時間が経つにつれて低価格を提供できるようになるんだ。これは、あらゆる規模の組織にとってクラウドソリューションを魅力的にしているよ。
コストの重要性を考慮して、多くの研究がこれらの費用を最小限に抑える方法に焦点を当てている。これは、最適なクラウドプロバイダーを選んだり、コスト削減のためにタスクスケジューリングを最適化したりすることを含むんだ。実際、ほとんどのクラウドプロバイダーは、期待されるリソース使用量に基づいて費用を見積もるためのコスト計算ツールを提供してる。
コスト管理に焦点を当てているにも関わらず、開発者がクラウドベースのソフトウェアの開発中にコストについて話し合うかどうかについての実証データはあまりない。こうした話題は主な仕事とは思えないかもしれないけど、ソフトウェア開発は徐々に運用面、つまり財務面にも関わってきてる。クラウドプロバイダーのサービスベースの請求方式では、開発者が自分が作るソフトウェアによって発生するコストに対して責任を持たされることもあるんだ。
だから、私たちは開発者がソフトウェアを開発する際にどれだけコスト意識を持っているのかを調べることにした。Mining Software Repositories (MSR)という方法を使って実証データを集めた。この方法によって、コードや他のプロジェクトアーティファクトを分析することで、ソフトウェア開発のさまざまなトピックを研究できるんだ。
研究の範囲
クラウドアプリケーションの開発は幅広く、さまざまなタイプのアプリケーションや開発活動を含む。以前のMSR研究とは違って、特定のプログラミング言語やエコシステムに絞らず、これらの要因はクラウドサービスの使用とは直接関連していないから。代わりに、オープンソースプロジェクトに存在するクラウドオーケストレーターのアーティファクトに焦点を当てて検索した。
クラウドオーケストレーターは、クラウドリソースの管理を簡素化するIaCツールだ。これらはクラウドサービスプロバイダーのAPIの上に抽象化のレイヤーを提供して、必要なインフラが正しく設定されることを保証する。Terraformを選んだのは、広く使用されていてオープンソースコミュニティでしっかりサポートされてるからだ。
データ収集
GitHubを中心にオープンソースリポジトリからデータを集めた。偏りを減らし、多様で意味のあるデータを集めるのが目標だった。GitHubは膨大な数のソフトウェアプロジェクトがあるから、理想的な選択だったよ。Terraformを使用しているリポジトリを探して、コミットメッセージや課題のディスカッションにおけるコスト意識の証拠を探した。
専門的なツールを使って、毎日リポジトリデータを処理した。クラウドリソースの管理方法を示す設定ファイルであるTerraformディスクリプターファイルを探した。数千のコミットや課題をフィルタリングして、「請求」、「安い」、「コスト」といったコスト関連のキーワードが含まれているものを見つけた。
コーディングと分析
データを集めた後は、それを分析して有用な情報を抽出する必要があった。関連するコミットや課題をその内容に基づいてラベル付けした。各分析ユニットは、複数の研究者によって手動で検査され、一貫性と正確性を確保した。
見つかった情報をコスト意識に関連するさまざまなラベルにカテゴライズした。「アラート」という用語は請求の限界についての懸念を示し、「節約」はコストを削減するために取られた行動を示す。こうしてデータにコードを付けることで、開発者がコスト意識にどのようにアプローチしているかのパターンや傾向を特定することができた。
コミットにおけるコスト意識
コーディングプロセスから、14の異なるラベルをコミットに関連付けて特定した。それぞれのコミットメッセージには、1から5のラベルが含まれ、さまざまなコスト関連の問題を示している。最も頻繁に見られたラベルは「節約」で、これは開発者がコストを削減するために具体的な行動をとったことを示している。
例えば、あるコミットメッセージでは、費用を削減するために監視機能を無効にしたことが述べられていた。このような情報は、開発者がコストの影響を意識しているだけでなく、その意識を持って過剰な請求を避ける行動をとっていることを示している。
他に一般的なラベルには、「意識」が含まれ、これはコストの懸念が存在することを認識していることを示す。「インスタンス」は使用されるコンピュータリソースの種類に関連している。私たちの調査結果は、開発者がコーディングの決定が財務に与える影響を意識していることを示唆している。
課題におけるコスト意識
コミットを分析するだけでなく、プロジェクトで提起された課題も調べた。同じラベルが課題にも現れたが、「ポリシー」はその中には含まれていなかった。課題はコストを巡る詳細なディスカッションを提供することが多く、開発者が支出に関して選択肢を検討し、決定を下すプラットフォームとなる。
例えば、ある課題では異なるタイプのインスタンスを選ぶ際のトレードオフについて議論されていた。これは、コミットメッセージが即時的な行動を伝える一方で、課題は開発者のコストに関する意思決定を理解するためのより豊かな文脈を提供できることを示している。
知識グラフと関係性
抽出した情報に基づいて、コスト意識に関連する主要な概念をまとめた知識グラフを作成した。このグラフは、特定のリソースタイプやコストを節約するために取られた行動など、クラウド展開の異なる側面がどのように相互に関連しているかを示している。
プロバイダー、インスタンスタイプ、課金方法に関する選択肢などのテーマを特定した。この知識グラフは、これらのトピックがどのように関連しているのかを視覚的に表現し、クラウドアプリケーションにおけるコスト管理に関する今後の研究の指針となる。
結果の三角測量
私たちの発見を確認するために、開発者がアドバイスを共有・求める人気のプラットフォームであるStack Overflowのディスカッションも見た。Terraformに関連しつつコストについても触れた質問を見つけるために、大量のデータセットをフィルタリングした。その結果、質問のかなりの数が私たちのコミットと課題の分析で見つけたテーマについて議論されていた。
この相関関係は、コスト意識がクラウド開発者の間で重要なトピックであることを強化する。これは、この分野での継続的な議論や研究の必要性を強調し、実務者が情報に基づいた決定を下せるようにするものだ。
実務への影響
この研究の結果は、コスト意識がクラウドアプリケーション開発プロセスの基本的な部分であるべきだと示唆している。開発者はすでにコストを最小化するための行動に関与しており、一般的な落とし穴を理解することで不必要な費用を避ける手助けになる。
この研究から得られたインサイトは、リソース配分やサービス選択、全体的な展開戦略に関するより良い決定をするのに役立つ。他の人の経験から学ぶことで、チームはミスを避け、運用コストを効率的に管理できるようになる。
研究への影響
研究者にとって、この研究はソフトウェア開発者の間でのコスト意識の具体的な証拠を提供している。これは、IaC以外の他のタイプのアーティファクトに関して、コード開発とコスト管理の関係についてのさらなる探求の必要性を強調している。
将来の研究では、さまざまな文脈、特に異なるプログラミング言語やクラウドプラットフォームにおける開発者のコスト管理方法を調査することができる。既存のデータセットは、さらなる分析の基盤として機能し、ソフトウェア開発におけるコスト管理のより包括的な理解に貢献する。
結論
クラウド展開コストの管理は、開発者にとって複雑な課題だ。この研究は、コスト意識が開発プロセスにどのように現れるのかを明らかにすることを目的としている。オープンソースのTerraformプロジェクトにおけるコミットや課題を調べることで、開発者がコストを気にかけ、管理するための行動をとっているという明確な証拠を特定した。
この結果は、開発者と研究者の両方に実践的な影響を与える。クラウドアプリケーション開発に関する決定を導き、ソフトウェアプロジェクトにおけるコスト管理に焦点を当てたさらなる研究を刺激することができる。
クラウド技術が進化し続ける中で、開発者が運用コストに注意を払う必要性も高まる。今回の研究で得たインサイトを基に、ソフトウェア開発コミュニティは、クラウドベースのアプリケーションの作成と配信においてよりコスト意識の高いアプローチを育むことができるはずだ。
タイトル: Mining for Cost Awareness in the Infrastructure as Code Artifacts of Cloud-based Applications: an Exploratory Study
概要: Context: The popularity of cloud computing as the primary platform for developing, deploying, and delivering software is largely driven by the promise of cost savings. Therefore, it is surprising that no empirical evidence has been collected to determine whether cost awareness permeates the development process and how it manifests in practice. Objective: This study aims to provide empirical evidence of cost awareness by mining open source repositories of cloud-based applications. The focus is on Infrastructure as Code artifacts that automate software (re)deployment on the cloud. Methods: A systematic search through 152,735 repositories resulted in the selection of 2,010 relevant ones. We then analyzed 538 relevant commits and 208 relevant issues using a combination of inductive and deductive coding. Results: The findings indicate that developers are not only concerned with the cost of their application deployments but also take actions to reduce these costs beyond selecting cheaper cloud services. We also identify research areas for future consideration. Conclusion: Although we focus on a particular Infrastructure as Code technology (Terraform), the findings can be applicable to cloud-based application development in general. The provided empirical grounding can serve developers seeking to reduce costs through service selection, resource allocation, deployment optimization, and other techniques.
著者: Daniel Feitosa, Matei-Tudor Penca, Massimiliano Berardi, Rares-Dorian Boza, Vasilios Andrikopoulos
最終更新: 2024-04-11 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2304.07531
ソースPDF: https://arxiv.org/pdf/2304.07531
ライセンス: https://creativecommons.org/licenses/by-sa/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://feitosa-daniel.github.io
- https://vandriko.github.io
- https://stackoverflow.com/
- https://www.terraform.io/
- https://cloudify.co/
- https://pygithub.readthedocs.io/
- https://stanfordnlp.github.io/stanza/pipeline.html
- https://radimrehurek.com/gensim/parsing/preprocessing.html
- https://radimrehurek.com/gensim/models/ldamodel.html
- https://twitter.com/quinnypig/status/1440301033314349062
- https://archive.org/download/stack-exchange-data-dump-2023-09-12/stackoverflow.com-Posts.7z
- https://archive.org/download/stack-exchange-data-dump-2023-09-12/stackoverflow.com-Comments.7z
- https://archive.org/download/stack-exchange-data-dump-2023-09-12/stackoverflow.com-PostHistory.7z
- https://www.calculator.net/sample-size-calculator.html?type=1&cl=95&ci=5&pp=2.6&ps=491&x=Calculate
- https://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.html
- https://aws.amazon.com/cloudformation/