2018年 DevOps 領域技術大盤點!
Issue Tracking 系統
這裏引用 JetBrain 公司(IntelliJ IDEA 的開發商)在全球20個國家(包括中國,美國,英國,日本等覆蓋了70%開發者的國家),對5000名軟件工程師進行了充分的調研,調研結果顯示 Jira 是最流行的 Issue Tracking 系統,只有 C# 的開發者傾向於使用微軟的 TFS(Team Foundation Server)。
Github Issue 由於是免費的,也得到眾多互聯網公司和開源社區的青睞。個人推薦小團隊可以使用 Gitlab 的 Issue Board,能夠滿足基本的看板需求,但如果你需求豐富的報表功能,建議使用 Jira,Jira 的插件市場裏有非常豐富的報表插件,Jira 本身也提供強大的定制能力,滿足不同用戶的各種需求。
開發語言
JavaScript 無疑是應用範圍最廣的語言,而對於後端開發語言仍然是 Java 占據主導地位。
構建工具
對於71%的 Java 開發者已經使用了 Maven 進行構建,Gradle 的使用程度已經達到42%,雖然筆者認為 Gradle 在國內還遠遠沒有達到這個數,但由於 Gradle 由代碼定義構建流程帶來的靈活性,以及性能的提升,它確實為開發者帶來了一個更靈活的選擇,Netflix,LinkedIn 等公司均使用 Gradle 做構建,未來它的增長趨勢有望超過 Maven,而使用 Ant 的用戶在逐年遞減。
持續集成服務器
Jenkins 仍然是最全球流行的持續集成工具,國內某社區曾經調研 Jenkins 在國內的使用率在70%左右。為什麽 Jenkins 會這麽經久不衰?這得益於 Jenkins 的插件生態,Jenkins 社區有上千個插件,能到輕松的對接任何 DevOps 工具。
Travis CI 是公有雲上的一款持續集成服務器,對 GitHub,GitLab 支持良好,深受 AWS 用戶的喜愛。
測試工具
隨著 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 之前的對比:
可以看到 Tosca 對於第三方工具的對接比 Selenium 做得要好,集成度也高,一個好的 DevOps 工具的一個特點就是能夠靈活,輕松的和第三方工具集成。
● Selenium
圖中並沒有提到 Selenium,但作為一個開源自動化測試工具,Selenium 還是占據功能自動化測試很大一部分市場的,在 Stack Overflow 上搜索 Selenium,會搜到48800條問題,如此活躍的社區讓 Selenium 能夠一直保持活力。現在也有不少基於 Selenium 開發的測試框架,例如 Robot Framework 等等。
容器編排平臺
CNCF (Cloud Native Cloud Foundation) 在 KubeCon 大會對容器編排平臺的使用情況進行了一次調研,調查了1500 的大會參會者,其中41%來自 DevOps/SREs 團隊,29%來自開發團隊,其中30%的受訪者來自規模超過5000人的企業。
發布的調查報告顯示: Kubernetes 已經占有70%以上的容器編排平臺市場。
2017年是 Kubernetes 的封神的一年。從下圖可以看到 GitHub 上排名前30的開源項目:
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 的使命是主導新的分布式計算系統,從而能夠支持成千上萬的自愈式多租戶的節點。
CNCF 已經孵化了眾多知名項目,包括 Kubernetes,Prometheus,OpenTracing,Rkt,Envoy,等等,從上圖 CNCF 的會員名單也可以看出,DevOps 業界的巨頭均已入會。從 CNCF 的 Board Member 列表來看,亞馬遜的雲架構師 Adrian Cockcroft,CoreOs 的 CTO,紅帽的首席科學家等在主導 CNCF 的方向。國內有兩家公司在 Board 裏有一席之地,它們是阿裏和華為,可以開到國內的技術也在逐漸影響到全球範圍,我相信2018年 CNCF 在全球的影響力會持續的增長。
FaaS (Function as a Service)
AWS 的首席雲架構師 Adrian Cockcroft(前 Netflix 首席架構師)認為,業務邏輯的載體在5年前從傳統的巨石應用遷移到了微服務,現在,業務邏輯的載體會從微服務開始演化成為 Function。
從5年前開始到今天,我們已經能夠完成微服務的建設,業務邏輯可以以容器為載體運行,開發者無需關系具體的容器是運行在哪個節點,即使容器發生故障,容器管理平臺也能夠實現故障自愈。
FaaS 認為微服務並不是業務邏輯的最小載體,可以使用 Function 作為業務邏輯的載體,這樣開發者無需關心服務器在什麽地方,它如何擴容,這些事情交給 FaaS 來做。公有雲雲廠商紛紛投入大量資源進行 FaaS 的建設,例如 AWS 的 Lambda Function,微軟的 Azure Functions,谷歌的 CloudFunctions,開源社區比較知名的框架有 ServerLess,它能夠對接多種雲平臺提供的 FaaS 的功能,在 GitHub 已有上萬個 Star。
而 AWS 的的 Lambda Function 能夠做到“瞬時方法”,即方法按需創建,按需使用,用完銷毀,而 AWS 按照使用的幾百微秒來進行計費,當系統處於閑置狀態,它會自動停掉,不需要任何費用,從而大大降低用戶的成本。可能你要問,如果程序員寫了一個死循環的方法調用,會不會扣錢扣到破產?當然不會,AWS 會限制一個 Region 裏並發方法數不超過100. 當然 FaaS 仍然屬於較超前的概念,由於涉及到項目的改造,它實際落地仍需一段時間。
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 等公司做過研發和架構,是有十多年開發經驗的互聯網老兵,專註於軟件生命周期管理,微服務架構,雲原生應用,容器化等領域。
歡迎轉載,但轉載請註明作者與出處。謝謝!
2018年 DevOps 領域技術大盤點!