2018年 DevOps 領域技術大盤點!

回顧過去的一年,DevOps 技術圈風起雲涌,開源社區以及商業軟件在 DevOps 領域均有非常大的發展,今天就從 Issue Tracking 系統,開發語言,構建,持續集成服務器,容器等方面和大家盤點下過去的一年裏 DevOps 的工具使用情況和技術發展趨勢。

Issue Tracking 系統

2018年 DevOps 領域技術大盤點!


這裏引用 JetBrain 公司(IntelliJ IDEA 的開發商)在全球20個國家(包括中國,美國,英國,日本等覆蓋了70%開發者的國家),對5000名軟件工程師進行了充分的調研,調研結果顯示 Jira 是最流行的 Issue Tracking 系統,只有 C# 的開發者傾向於使用微軟的 TFS(Team Foundation Server)。

Github Issue 由於是免費的,也得到衆多互聯網公司和開源社區的青睞。個人推薦小團隊可以使用 Gitlab 的 Issue Board,能夠滿足基本的看板需求,但如果你需求豐富的報表功能,建議使用 Jira,Jira 的插件市場裏有非常豐富的報表插件,Jira 本身也提供強大的定製能力,滿足不同用戶的各種需求。

開發語言

2018年 DevOps 領域技術大盤點!


JavaScript 無疑是應用範圍最廣的語言,而對於後端開發語言仍然是 Java 佔據主導地位。

構建工具

2018年 DevOps 領域技術大盤點!


對於71%的 Java 開發者已經使用了 Maven 進行構建,Gradle 的使用程度已經達到42%,雖然筆者認爲 Gradle 在國內還遠遠沒有達到這個數,但由於 Gradle 由代碼定義構建流程帶來的靈活性,以及性能的提升,它確實爲開發者帶來了一個更靈活的選擇,Netflix,LinkedIn 等公司均使用 Gradle 做構建,未來它的增長趨勢有望超過 Maven,而使用 Ant 的用戶在逐年遞減。

持續集成服務器

2018年 DevOps 領域技術大盤點!


Jenkins 仍然是最全球流行的持續集成工具,國內某社區曾經調研 Jenkins 在國內的使用率在70%左右。爲什麼 Jenkins 會這麼經久不衰?這得益於 Jenkins 的插件生態,Jenkins 社區有上千個插件,能到輕鬆的對接任何 DevOps 工具。

Travis CI 是公有云上的一款持續集成服務器,對 GitHub,GitLab 支持良好,深受 AWS 用戶的喜愛。

測試工具

2018年 DevOps 領域技術大盤點!


隨着 DevOps 時代的來臨,企業內部正在面臨快速發佈和質量提升的需求。上圖是來自 Gartner 發佈的2017自動化測試工具的魔力象限圖,圖中評估了業界主流的測試工具提供商,其中:

● Micro Focus

Micro Focus 在全球有40000+用戶,大客戶包含 AIG,寶馬等等。處於市場的 Leader 地位,它的優勢在於它提供了一整套的軟件生命週期管理的方案,包含 ALM 和核心產品 UFT(Unified Function Testing),以及 BPT(Business Process Testing)工具等等,讓用戶進行一站式的持續交付。

它的缺點在於它被 HPE 收購後,和 HPE 已有的產品線有高度重合,未來如何發展並不明朗,另外產品比較重,對應尋求輕量級產品方案的公司來講吸引力並不大。

● Tricentis

Tricentis 公司在自動化測試領域處於領先地位,可能國內的用戶很少聽說這個公司,它在北美市場份額不錯,但是測試工具主要的市場在歐洲和亞洲,該公司需要在這些地區進行更廣泛的推廣。下圖是 Tosca 和 HPE 的 UFT 以及 Selenium 之前的對比:

2018年 DevOps 領域技術大盤點!


可以看到 Tosca 對於第三方工具的對接比 Selenium 做得要好,集成度也高,一個好的 DevOps 工具的一個特點就是能夠靈活,輕鬆的和第三方工具集成。

● Selenium

圖中並沒有提到 Selenium,但作爲一個開源自動化測試工具,Selenium 還是佔據功能自動化測試很大一部分市場的,在 Stack Overflow 上搜索 Selenium,會搜到48800條問題,如此活躍的社區讓 Selenium 能夠一直保持活力。現在也有不少基於 Selenium 開發的測試框架,例如 Robot Framework 等等。

容器編排平臺

2018年 DevOps 領域技術大盤點!


CNCF (Cloud Native Cloud Foundation) 在 KubeCon 大會對容器編排平臺的使用情況進行了一次調研,調查了1500 的大會參會者,其中41%來自 DevOps/SREs 團隊,29%來自開發團隊,其中30%的受訪者來自規模超過5000人的企業。

發佈的調查報告顯示: Kubernetes 已經佔有70%以上的容器編排平臺市場。

2017年是 Kubernetes 的封神的一年。從下圖可以看到 GitHub 上排名前30的開源項目:

2018年 DevOps 領域技術大盤點!


Kubernetes 在 GitHub 的 Star 達到32.6K, 排名第五,其中的參與者以及 Commit 數量躍居到第二位,僅次於第一位的 Linux 項目。

在過去的這一年中,最初支持 Mesos 或者其他容器編排工具的廠商紛紛開始支持 Kubernetes,其中轉型較早的平臺已經開始收割,例如: Openshift,2017年 RedHat 的收入達到 2.4Billion USD, 截止到 2017年 Q3 的數據,Openshift 已經完成了超過50個6-7位數的訂單。

2018年 Kubernetes 將如何發展? 從去年的 KubeCon 大會上也可以關注到,來自紅帽的 Kubernetes 的架構師 Clayton Coleman 宣佈 Kubernetes 社區在2018年有幾個重要的關注點:

  • Service Mesh

2018將會是 Service Mesh 的元年,Service Mesh 是用來描述大規模微服務部署情況下,服務網絡之間的複雜協作方式。業界知名的框架有:Istio,Envoy,CONDUIT 等, 其中由 IBM,谷歌等公司貢獻的 Istio知名度較高,在 Github 上有將近6000的 Star。Istio 的設計初衷就是解決微服務規模變大,服務之間的服務發現,負載,失敗重試,監控,以及更復雜的需求例如:A/B 測試,端到端認證,權限訪問控制等等。

  • 支持大數據,機器學習工具

Spark 和 TensorFlow 在 Kubernetes 上的部署已經越來越容易,Kubernetes 社區將會持續優化對大數據,機器學習工具的支持。

  • 改進 Application 的配置

每個公司對應用配置的使用方式不盡相同,但18年的 Kubernetes 社區會投入更大精力在部署和配置的優化,社區有很多優秀的項目,例如 Kubernetes Helm,Helm 是Kubernetes 的包管理平臺,用 Helm 能夠管理 Kubernetes 需要的資源,可以把它理解爲 Kubernetes 裏的 apt/yum/brew。使用 Helm 能夠從社區獲得大量優化後的 Kubernetes 應用配置,並且能夠將 Kubernetes 的應用進行版本化管理,例如回滾和灰度發佈。它在 KubeCon 上也備受關注,有6個 Track 專門介紹 Helm 的功能以及 Helm 未來發展方向。

2018年,Kubernetes 還將支持 ServerLess 工具,例如 Openwhisk,Kubeless 等等,集成 LDAP,支持多租戶,支持多種容器和虛擬機運行環境,例如 cri-o, KubeVirt,hyperv 等等。

這裏順便說下 CNCF,CNCF 是15年底成立的非營利性的組成,屬於 LInux 基金會的一部分,想要成爲 CNCF 的會員,必須先成爲 Linux 基金會的會員。CNCF 的使命是主導新的分佈式計算系統,從而能夠支持成千上萬的自愈式多租戶的節點。

2018年 DevOps 領域技術大盤點!


CNCF 已經孵化了衆多知名項目,包括 Kubernetes,Prometheus,OpenTracing,Rkt,Envoy,等等,從上圖 CNCF 的會員名單也可以看出,DevOps 業界的巨頭均已入會。從 CNCF 的 Board Member 列表來看,亞馬遜的雲架構師 Adrian Cockcroft,CoreOs 的 CTO,紅帽的首席科學家等在主導 CNCF 的方向。國內有兩家公司在 Board 裏有一席之地,它們是阿里和華爲,可以開到國內的技術也在逐漸影響到全球範圍,我相信2018年 CNCF 在全球的影響力會持續的增長。

FaaS (Function as a Service)

2018年 DevOps 領域技術大盤點!


AWS 的首席雲架構師 Adrian Cockcroft(前 Netflix 首席架構師)認爲,業務邏輯的載體在5年前從傳統的巨石應用遷移到了微服務,現在,業務邏輯的載體會從微服務開始演化成爲 Function。

2018年 DevOps 領域技術大盤點!


從5年前開始到今天,我們已經能夠完成微服務的建設,業務邏輯可以以容器爲載體運行,開發者無需關係具體的容器是運行在哪個節點,即使容器發生故障,容器管理平臺也能夠實現故障自愈。

2018年 DevOps 領域技術大盤點!


FaaS 認爲微服務並不是業務邏輯的最小載體,可以使用 Function 作爲業務邏輯的載體,這樣開發者無需關心服務器在什麼地方,它如何擴容,這些事情交給 FaaS 來做。公有云雲廠商紛紛投入大量資源進行 FaaS 的建設,例如 AWS 的 Lambda Function,微軟的 Azure Functions,谷歌的 CloudFunctions,開源社區比較知名的框架有 ServerLess,它能夠對接多種雲平臺提供的 FaaS 的功能,在 GitHub 已有上萬個 Star。

2018年 DevOps 領域技術大盤點!


而 AWS 的的 Lambda Function 能夠做到“瞬時方法”,即方法按需創建,按需使用,用完銷燬,而 AWS 按照使用的幾百微秒來進行計費,當系統處於閒置狀態,它會自動停掉,不需要任何費用,從而大大降低用戶的成本。可能你要問,如果程序員寫了一個死循環的方法調用,會不會扣錢扣到破產?當然不會,AWS 會限制一個 Region 裏併發方法數不超過100. 當然 FaaS 仍然屬於較超前的概念,由於涉及到項目的改造,它實際落地仍需一段時間。

DevOps 數據可視化

2018年 DevOps 領域技術大盤點!


市面上做數據可視化的工具非常多,但專注於 DevOps 的數據可視化工具還很少,去年,CapitalOne 公司的開源項目-Hygieia 被國人所瞭解,Hygieia 是 CapitalOne 公司內部孵化的一個項目,目的是解決 DevOps 工具鏈中的數據碎片化的問題,Hygieia 爲不同的工具提供了收集數據的 Collector,將數據存儲在 MongoDB 裏,然後進行數據可視化的展示。

總結

過去的一年裏涌現了很多新的技術,把握這些技術發展方向,對於公司內部的技術平臺搭建和技術發展方向至關重要,新的一年裏,希望大家多多關注 JFrog 公衆號,獲得第一手硅谷技術資訊。

參考文獻:

1.Jetbrains DevOps 生態工具鏈調查報告:

https://www.jetbrains.com/research/devecosystem-2017/team-tools/

2.CNCF 調查報告:

https://www.cncf.io/blog/2017/06/28/survey-shows-kubernetes-leading-orchestration-platform/

3.RedHat Openshift 市場報告:

https://www.redhat.com/en/blog/breadth-and-reach-openshift-marketplace

4.Gartner 測試工具魔力象限:

https://www.gartner.com/doc/reprints?id=1-4KHGPDG&ct=171114&st=sb

5.https://dzone.com/articles/best-automation-testing-tools-for-2018

6.Adrian Cockcroft GOTO 2017:

https://www.youtube.com/watch?v=EDZBYbEwhm8

7.ServerLess GitHub 地址:

https://github.com/serverless/serverless

https://github.com/capitalone/Hygieia

作者:王青

目前任職 JFrog 中國首席架構師,之前在 IBM,HPE,愛奇藝,新浪,VIPKID 等公司做過研發和架構,是有十多年開發經驗的互聯網老兵,專注於軟件生命週期管理,微服務架構,雲原生應用,容器化等領域。

歡迎轉載,但轉載請註明作者與出處。謝謝!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章