2020 年微服務專案活躍度報告

2022-06-06 21:45:12 字數 2895 閱讀 5724

微服務體系就像是一劑催化劑,可以加速資料和業務結合的過程,更好地提公升生產力,從而實現業務的提公升。本專案旨在通過建立乙份建立在微服務領域的相對完整、可以反覆進行推演的資料報告(報告、資料、演算法均開源),分析微服務框架專案以及 spring cloud 專案的 github 開發者行為日誌,通過多維度資料分析的視角,來觀察微服務領域的開源現狀、進展趨勢、演化特徵等問題。

本報告根據 2020 年 1 月到 6 月的 github 日誌進行統計。值得一提的是,報告顯示 apache dubbo 作為中國本土開源的專案,在微服務框架中排名第 5,全球排名躋身 693;spring 社群第乙個國產 spring cloud 專案 spring cloud alibaba 作為開源的微服務全家桶,在 spring cloud 榜單中居於榜首。

隨著業務的擴張,單體應用架構的開發、部署和運維都會越來越慢,越來越複雜,甚至在單體架構應用開發中敏捷模式無法施展開。基於此,具有更高獨立性、可用性和彈性的微服務應運而生。從結構上看,微服務架構將乙個應用拆分成多個松耦合的服務,這些服務之間通過某種協議(rest、rpc 等)進行互相協作,完成原單體架構功能,但提供更靈活的部署模式,更容易擴充套件,降低了開發、運維上的複雜度。微服務的核心思想就是分而治之。微服務是商業應用程式發中最熱門的新事物。微服務這個詞取代了敏捷、devops 和 restful。

2020 年 7 月 o』reilly 公布了乙份關於企業微服務市場現狀的資料調研。報告顯示,在訪問了全球 1502 名軟體工程師、系統和技術架構師、工程師以及決策者後,有 77% 的組織反饋採用了微服務,其中 92% 的組織成功使用了微服務。了解並分析微服務領域開源專案的發展,有助於掌握該領域的發展趨勢,從而幫助提高企業的競爭力。

因此,進一步深入研究微服務領域的開源數位化現狀具有非常重大的意義。

根據附錄中給出的專案活躍度定義,我們使用 2020 年 1 月~6 月的資料對微服務框架相關的專案及社群進行了活躍度的統計與排名,結果如下表所示,quarkusio/quarkus 專案、spring-cloud 社群、spring-projects / spring-boot 專案分別位於 top1,top2,top3。需要注意的是,global_rank 是指該專案在全球 github 開源專案中的活躍度排名。

【注】:**中的 developer 是指執行了五種動作:issue comment、open issue、open pull request、pull reuqest review comment 和 pull request merged 的開發者。

根據附錄中給出的專案活躍度的定義,我們使用 2020 年 1 月~6 月的資料對 spring cloud 專案進行了活躍度的統計與排名,結果如下表所示:

【注】:**中的 developer 是指執行了五種動作:issue comment、open issue、open pull request、pull reuqest review comment 和 pull request merged的開發。

此次開源專案資料報告針對微服務領域的專案進行了研究,主要是提供了一些統計資料。未來,會對社群協作關係做視覺化的呈現;在資料探勘的層面,會基於真實資料探勘資料背後的價值。希望報告所倡導的開源開放的業態有助於推動中國微服務領域的開源走向更深層次。

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

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

微服務框架資料

開發者活躍度,其定義為某特定 github 賬號在一段時間內在某特定 github 專案中的活躍評價指標。其活躍度由該賬號在該專案中的行為資料決定。本報告中所關心的行為包含如下幾種:

open issue:在專案中發起乙個 issue,無論是討論、bug 報告或提問,對專案都是帶來活躍的,每個發起的 issue 計入 1 次;

open pull request:為專案提交乙個 pr,表示已對該專案進行原始碼貢獻,則每次發起乙個 pr 計入 1 次;

pull request merged:若有 pr 被專案合入,即便是很小的改動,也需要對專案有較為深入的理解,是幫助專案進步的真切貢獻,則每有乙個 pr 被合入計入 1 次。

以上 5 個種行為在該報告模型中,具有不一樣的權重,其加權值逐級增加,加權值分別為 1、2、3、4、5,即:

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

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

首屆雲原生微服務大會正在火熱直播中,點選 pc 端位址即可**:

微服務專案架構技術

1.eureka作為註冊中心,實現服務治理 2.管理統一服務入口管理 zuul閘道器 3.http協議 fegin客戶端 ribbon本地負載均衡 4.hystrix服務保護框架 熔斷 降級 隔離 限流 5.微服務訊息匯流排stream rabbitmq和kafka 6.服務追蹤與呼叫鏈關係sleu...

微服務專案之戰 微服務間的呼叫

微服務呼叫介紹,微服務之間的呼叫 一,springcloud微服務之間呼叫的方式有那些?在springcloud中實現微服務呼叫的方式有ribbon feign兩種,他們實現軟負載均衡呼叫。ribbon是乙個基於 http 和 tcp 客戶端 的負載均衡的工具。可以在客戶端配置 ribbonserv...

基於Docker部署微服務專案

docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的映象中,然後發布到任何流行的 linux或windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。乙個完整的docker有以下幾個部分組成 1.dockerclient客戶端 ...