> [!abstract] 概要(MSR 2024 abstract の日本語訳) > マイクロサービスコミュニティの研究者は、提案する手法の有効性を独自に作成したマイクロサービスプロジェクトで示すことが多い。これはバイアスの原因となり、結果の信頼性を下げる可能性がある。さらに、時間不足のために小規模プロジェクトを開発することで、進展の比較も困難になる。バイアスを軽減し進展の影響を統一する目的で、領域横断的にベンチマークを認識することは一般的である。利用可能な open-source マイクロサービスプロジェクト(OSS-MS)の同定を支援するため、我々は OSS-MS を同定・整理・カタログ化する包括的研究を実施した。389,559 件のプロジェクトを起点に、3,804 件まで絞り込み手動ラベルを付与した。手動ラベリング後、データセットは 3 つ以上のマイクロサービスと 100 を超える commit を持つ 378 件のプロジェクトを含む。我々はプロジェクトのサイズ、プラットフォーム、貢献者数、目的、財団支援等の多面でドキュメント化する。本データセットはベンチマーク同定のロードマップとして研究者を支援でき、たとえば「サービス数が issue 数に影響するか」のような研究問いに答えるのに使える。 ## 論文情報 - タイトル: A Dataset of Microservices-based Open-Source Projects - 著者: 19 名(主著: [[Dario Amoroso d'Aragona]] [[Tampere University]]、[[Alexander Bakhtin]] [[Xiaozhou Li]] [[University of Oulu]]、終著: [[Davide Taibi]] [[University of Oulu]];共著: [[Mika Mäntylä]] [[University of Helsinki]]、[[Tomas Cerny]] [[University of Arizona]] 他) - 媒体: [[MSR]] 2024(21st International Conference on Mining Software Repositories)、Lisbon, Portugal, 2024-04-15/16 - DOI: 10.1145/3643991.3644890 - replication: https://github.com/darioamorosodaragona-tuni/Microservices-Dataset.git - データセット公開: figshare(完全版: 24722163、フィルタ版: 24722232) - ライセンス: CC BY-NC-SA 4.0 - 助成: Research Council of Finland(349487/349488 - MuFAno)、NSF Grant 2245287 ## 概要 マイクロサービス研究のバイアス源である「独自プロジェクトでの実証」を緩和するため、[[World of Code]](WoC)を起点に 173M projects から 378 件の真の Dockerized OSS-MS を抽出した dataset を提案する。各プロジェクトには project identification(名前・URL)、量的指標(commit 数・committer 数・star 数)、定性的ラベル(application type/purpose/developer category/archived/WIP/is_microservice)、Docker descriptive(service 数・bus 数・monitor 数・DB 数)、Docker qualitative(dependency graph・microservice 数)が付与される。 ## 問題設定 従来 OSS-MS dataset は規模が小さい(Brogi+ 2017、Rahman+ 2019、Schneider+ 2023、Márquez & Astudillo 2018-2019 など、いずれも 5-30 件規模)か、ad hoc に手動選定したもので、自動的な microservice 判定 + 大規模カタログ化が欠けていた。本稿は「(1) 大規模 WoC を起点に、(2) Docker-Compose による services 構成を機械的に抽出し、(3) 残った候補を二重手動でラベリングする」3 段アプローチで dataset 構築を試みる。 ## 提案手法 ### Step 1: WoC から候補抽出(389,559 projects) inclusion criteria: - **I1**: 2021-2022 に少なくとも 1 commit - **I2**: 総 commit 数 ≥ 100(low-activity を除外) - **I3**: contributors ≥ 3(個人プロジェクトを除外) ### Step 2: Docker 情報抽出 - repository を clone、`docker-compose` ファイルの有無で絞り込み - 各 service を node、container/volume/network を edge とする dependency graph を生成 - database・message bus・API gateway・monitoring tool を非 microservice として除外 ### Step 3: 追加 inclusion criteria(3,804 projects) - **I4**: docker-based microservices が 3 以上(DB・bus・gateway 等は除外) - **I5**: active months ≥ 12(連続でなくてよい) - **I6**: project age ≥ 1 year - **I7**: README 存在 + 英語 ### Step 4: 手動分類(378 projects) 著者 2 名が独立にラベル付け、不一致は第 3 著者が解決。以下を分類: - **Application Type**: library / monitoring / software system / part of a system / unknown - **Application Purpose**: demo / student project / production ready / unknown - **Developed by**: research institute / industry / community / independent developers / government / others - **Archived**: yes / no - **WIP/Incomplete**: yes / no - **Is a Microservice**: yes / no / unknown exclusion criteria: - **E1**: README 情報不十分 - **E2**: tools/sw/books コレクション 分類による除外内訳: - 474 件: E1/E2 - 280 件: archived - 1,536 件: microservices 判定不能 - 1,373 件: 非 microservice - **最終: 378 件** ## 実験設定 - 評価実験というよりはデータセット構築の手続きそのものが研究内容 - 著者 19 名で 3,804 件を二重ラベリング、ラベリング criteria に関する合意会議を実施 ## 実験結果(分布) - Application Type 最頻: **software system 67%**(library 6%、monitoring 7.25%、part of a system 14.5%) - Application Purpose 最頻: **production ready 56.8%**(demo 21.75%、student project 1%) - Developed by 最頻: **independent developers 39.75%**(industry 28.25%、community 19.25%、research institute 6%) - archived は 5.5%、WIP は 1.75% - microservice 数の分布は 3-6 件が大多数。Appendix Top 50 では: - `taskcluster/taskcluster`(library、50) - `jatinbajaj1/xpresso`(monitoring、50) - `FudanSELab/train-ticket`(software system、42)←本論文の評価で実証研究の代表として残る - `dojot/docker-compose`(software system、36) - `nocproject/noc`(software system、33) - `lightstep/opentelemetry-examples`(software system、23)など ## 新規性 - WoC を起点とした 173M → 378 件への系統的絞り込みは、既存 5-30 件規模の OSS-MS dataset を大幅に拡張 - application type/purpose/developer 等の多面ラベルが、研究目的に応じた sub-dataset 抽出を可能にする(例: student projects だけを抽出して教育研究に利用、industry 開発のみで品質研究を実施) - 完全版と active 限定版の 2 CSV、replication script、license(CC BY-NC-SA 4.0)を公開し再現性を担保 ## 考察 - 「Is a Microservice = Unknown」が 1,536 件と多く、Docker-Compose だけで microservice 判定が困難な実態を示す - production ready が 56.8% を占め、demo/student 寄りの数を上回るのは、I5(active months ≥ 12)・I6(project age ≥ 1 year)のフィルタリングが効いている ## 強み / 弱点・課題 ### 強み - 既存 OSS-MS dataset と比べて 1 桁以上大規模(378 件)、かつ複数次元のラベル付与 - WoC 利用により GitHub/GitLab/Bitbucket 横断 - replication package と license が明確で、後続研究で再利用しやすい ### 弱点・課題 - **Internal validity**: 19 著者の手動ラベリングに interpersonal bias、合意会議で緩和したが完全除去は不可 - **Construct validity**: golden dataset が無いため OSS-MS 判定の正確さを定量検証できない。Docker-Compose 解析では DB 等の false positive 混入リスクがあり、依存グラフと node 分類で緩和したが完全ではない - **External validity**: WoC は Git VCS に限定、Mercurial 等は欠落。プライベートリポジトリは含まない - **時間的妥当性**: dataset 構築時点の commit hash を公開しているが、project は時間で変化するため定期更新が課題(著者も将来計画に明記) ## 関連リンク - [[World of Code]](WoC)— infrastructure - [[Train-Ticket]]、[[eShopOnContainers]]、[[DeathStarBench]] は dataset 内に確認できる代表的 OSS-MS - 関連 source: [[@2023__arXiv__Benchmarks for End-to-End Microservices Testing]](同じく Cerny+Taibi)・[[@2026__SANER-C__TrainTicketTrace - A Multi-Fault Distributed Dataset for Microservice Fault Detection and Localization]]