2020 年微服務項目活躍度報告

簡介: 2020 年 8 月 18 日,首屆雲原生微服務大會於線上召開,會議首日,阿里雲資深技術專家、CNCF TOC 李響 Keynote 演講中正式發佈了《 2020 年微服務領域開源數字化報告》。git

頭圖.png

導讀:2020 年 8 月 18 日,首屆雲原生微服務大會於線上召開,會議首日,阿里雲資深技術專家、CNCF TOC 李響 Keynote 演講中正式發佈了《 2020 年微服務領域開源數字化報告》。

微服務體系就像是一劑催化劑,能夠加速數據和業務結合的過程,更好地提高生產力,從而實現業務的提高。本項目旨在經過創建一份創建在微服務領域的相對完整、能夠反覆進行推演的數據報告(報告、數據、算法均開源),分析微服務框架項目以及 Spring Cloud 項目的 GitHub 開發者行爲日誌,經過多維度數據分析的視角,來觀察微服務領域的開源現狀、進展趨勢、演化特徵等問題。github

本報告根據 2020 年 1 月到 6 月的 GitHub 日誌進行統計。值得一提的是,報告顯示 Apache Dubbo 做爲中國本土開源的項目,在微服務框架中排名第 5,全球排名躋身 693;Spring 社區第一個國產 Spring Cloud 項目 Spring Cloud Alibaba 做爲開源的微服務全家桶,在 Spring Cloud 榜單中居於榜首。算法

關鍵詞:微服務、開源、行爲數據、GitHubspring

背景

隨着業務的擴張,單體應用架構的開發、部署和運維都會愈來愈慢,愈來愈複雜,甚至在單體架構應用開發中敏捷模式沒法施展開。基於此,具備更高獨立性、可用性和彈性的微服務應運而生。從結構上看,微服務架構將一個應用拆分紅多個鬆耦合的服務,這些服務之間經過某種協議(REST、rpc 等)進行互相協做,完成原單體架構功能,但提供更靈活的部署模式,更容易擴展,下降了開發、運維上的複雜度。微服務的核心思想就是分而治之。微服務是商業應用程序發中最熱門的新事物。微服務這個詞取代了敏捷、DevOps 和 RESTful。架構

2020 年 7 月 O’Reilly 公佈了一份關於企業微服務市場現狀的數據調研。報告顯示,在訪問了全球 1502 名軟件工程師、系統和技術架構師、工程師以及決策者後,有 77% 的組織反饋採用了微服務,其中 92% 的組織成功使用了微服務。瞭解並分析微服務領域開源項目的發展,有助於掌握該領域的發展趨勢,從而幫助提升企業的競爭力。框架

所以,進一步深刻研究微服務領域的開源數字化現狀具備很是重大的意義。運維

整體宏觀統計結果

1. Key Takeaways

  • Quarkus 做爲雲原生微服務框架,在微服務框架中活躍度排名第一,全球 GitHub 開源項目活躍度中排名 40;
  • Spring 做爲 Java 微服務框架事實標準,Spring Cloud 和 Spring Boot 項目在微服務框架中活躍度分別位列第二和第三;
  • Apache Dubbo 做爲中國本土開源的項目,微服務框架活躍度排名第五,全球 GitHub 開源項目活躍度中排名躋身 693;
  • 在廠商 Spring Cloud 項目中,Spring Cloud Alibaba 活躍度排名第一。

2. 微服務框架榜單

根據附錄中給出的項目活躍度定義,咱們使用 2020 年 1 月~6 月的數據對微服務框架相關的項目及社區進行了活躍度的統計與排名,結果以下表所示,quarkusio/quarkus 項目、spring-cloud 社區、spring-projects / spring-boot 項目分別位於 Top1,Top2,Top3。須要注意的是,global_rank 是指該項目在全球 GitHub 開源項目中的活躍度排名。spring-boot

1.jpg
(點擊查看大圖)微服務

【注】:表格中的 developer 是指執行了五種動做:Issue comment、Open issue、Open pull request、Pull reuqest review comment 和 Pull request merged 的開發者。阿里雲

3. Spring Cloud 榜單

根據附錄中給出的項目活躍度的定義,咱們使用 2020 年 1 月~6 月的數據對 Spring Cloud 項目進行了活躍度的統計與排名,結果以下表所示:

2.jpg
(點擊查看大圖)

【注】:表格中的 developer 是指執行了五種動做:Issue comment、Open issue、Open pull request、Pull reuqest review comment 和 Pull request merged的開發。

展望

這次開源項目數據報告針對微服務領域的項目進行了研究,主要是提供了一些統計數據。將來,會對社區協做關係作可視化的呈現;在數據挖掘的層面,會基於真實數據挖掘數據背後的價值。但願報告所倡導的開源開放的業態有助於推進中國微服務領域的開源走向更深層次。

致謝

本次報告由 X-lab 開放實驗室撰寫。

3.png

X-lab 開放實驗室是由來自華東師範大學、同濟大學的師生所構成的開放創新共同體,專業背景包括計算機科學、數據科學及其相關跨學科,長期思考並實踐教育與開源兩大主題。

附錄:數據集及方法

1. 數據集

  • 時間:2020 年 1 月~2020 年 6 月
  • 微服務框架數據

4.jpg

  • spring-cloud 數據集

5.jpg

2. 活躍度計算方式

(1)開發者活躍度

開發者活躍度,其定義爲某特定 GitHub 帳號在一段時間內在某特定 GitHub 項目中的活躍評價指標。其活躍度由該帳號在該項目中的行爲數據決定。本報告中所關心的行爲包含以下幾種:

  • Issue comment:在 issue 中參與討論是最基本的行爲,每一個評論計入 1 次;
  • Open issue:在項目中發起一個 issue,不管是討論、Bug 報告或提問,對項目都是帶來活躍的,每一個發起的 issue 計入 1 次;
  • Open pull request:爲項目提交一個 PR,表示已對該項目進行源碼貢獻,則每次發起一個 PR 計入 1 次;
  • Pull reuqest review comment:對項目中的 PR 進行 review 和討論,須要對項目有至關的瞭解,而且對項目源碼的質量有極大幫助,每一個評論計入 1 次;
  • Pull request merged:如有 PR 被項目合入,即使是很小的改動,也須要對項目有較爲深刻的理解,是幫助項目進步的真切貢獻,則每有一個 PR 被合入計入 1 次。

以上 5 個種行爲在該報告模型中,具備不同的權重,其加權值逐級增長,加權值分別爲 一、二、三、四、5,即:

6.png
7.jpg

(2)項目活躍度

項目活躍度,其定義爲某特定項目在一段時間內的活躍評價指標。其活躍度由該段時間內在本項目中產生活躍的開發者活躍度加權計算獲得,即:

8.png

使用開方的加權方式,用於抹平因核心開發者活躍度太高而致使項目活躍度太高,在該計算方式下,活躍度計算方式對參與人數較多而活躍狀況平均的項目更加友好。

本報告將週期性更新、發佈,報告長期沉澱地址:https://github.com/alibaba/OpenSourceReport

首屆雲原生微服務大會

首屆雲原生微服務大會正在火熱直播中,點擊 PC 端地址便可觀看:https://developer.aliyun.com/topic/microservices2020#/

相關文章
相關標籤/搜索