2018 年 DevOps 領(lǐng)域技術(shù)大盤點(diǎn)
回顧過(guò)去的一年,DevOps 技術(shù)圈風(fēng)起云涌,開(kāi)源社區(qū)以及商業(yè)軟件在 DevOps 領(lǐng)域均有非常大的發(fā)展,今天就從 Issue Tracking 系統(tǒng),開(kāi)發(fā)語(yǔ)言,構(gòu)建,持續(xù)集成服務(wù)器,容器等方面和大家盤點(diǎn)下過(guò)去的一年里 DevOps 的工具使用情況和技術(shù)發(fā)展趨勢(shì)。
Issue Tracking 系統(tǒng)
這里引用 JetBrain 公司(IntelliJ IDEA 的開(kāi)發(fā)商)在全球20個(gè)國(guó)家(包括中國(guó),美國(guó),英國(guó),日本等覆蓋了70%開(kāi)發(fā)者的國(guó)家),對(duì)5000名軟件工程師進(jìn)行了充分的調(diào)研,調(diào)研結(jié)果顯示 Jira 是***的 Issue Tracking 系統(tǒng),只有 C# 的開(kāi)發(fā)者傾向于使用微軟的 TFS(Team Foundation Server)。
Github Issue 由于是免費(fèi)的,也得到眾多互聯(lián)網(wǎng)公司和開(kāi)源社區(qū)的青睞。個(gè)人推薦小團(tuán)隊(duì)可以使用 Gitlab 的 Issue Board,能夠滿足基本的看板需求,但如果你需求豐富的報(bào)表功能,建議使用 Jira,Jira 的插件市場(chǎng)里有非常豐富的報(bào)表插件,Jira 本身也提供強(qiáng)大的定制能力,滿足不同用戶的各種需求。
開(kāi)發(fā)語(yǔ)言
JavaScript 無(wú)疑是應(yīng)用范圍最廣的語(yǔ)言,而對(duì)于后端開(kāi)發(fā)語(yǔ)言仍然是 Java 占據(jù)主導(dǎo)地位。
構(gòu)建工具
對(duì)于71%的 Java 開(kāi)發(fā)者已經(jīng)使用了 Maven 進(jìn)行構(gòu)建,Gradle 的使用程度已經(jīng)達(dá)到42%,雖然筆者認(rèn)為 Gradle 在國(guó)內(nèi)還遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到這個(gè)數(shù),但由于 Gradle 由代碼定義構(gòu)建流程帶來(lái)的靈活性,以及性能的提升,它確實(shí)為開(kāi)發(fā)者帶來(lái)了一個(gè)更靈活的選擇,Netflix,LinkedIn 等公司均使用 Gradle 做構(gòu)建,未來(lái)它的增長(zhǎng)趨勢(shì)有望超過(guò) Maven,而使用 Ant 的用戶在逐年遞減。
持續(xù)集成服務(wù)器
Jenkins 仍然是最全球流行的持續(xù)集成工具,國(guó)內(nèi)某社區(qū)曾經(jīng)調(diào)研 Jenkins 在國(guó)內(nèi)的使用率在70%左右。為什么 Jenkins 會(huì)這么經(jīng)久不衰?這得益于 Jenkins 的插件生態(tài),Jenkins 社區(qū)有上千個(gè)插件,能到輕松的對(duì)接任何 DevOps 工具。
Travis CI 是公有云上的一款持續(xù)集成服務(wù)器,對(duì) GitHub,GitLab 支持良好,深受 AWS 用戶的喜愛(ài)。
測(cè)試工具
隨著 DevOps 時(shí)代的來(lái)臨,企業(yè)內(nèi)部正在面臨快速發(fā)布和質(zhì)量提升的需求。上圖是來(lái)自 Gartner 發(fā)布的2017自動(dòng)化測(cè)試工具的魔力象限圖,圖中評(píng)估了業(yè)界主流的測(cè)試工具提供商,其中:
● Micro Focus
Micro Focus 在全球有40000+用戶,大客戶包含 AIG,寶馬等等。處于市場(chǎng)的 Leader 地位,它的優(yōu)勢(shì)在于它提供了一整套的軟件生命周期管理的方案,包含 ALM 和核心產(chǎn)品 UFT(Unified Function Testing),以及 BPT(Business Process Testing)工具等等,讓用戶進(jìn)行一站式的持續(xù)交付。
它的缺點(diǎn)在于它被 HPE 收購(gòu)后,和 HPE 已有的產(chǎn)品線有高度重合,未來(lái)如何發(fā)展并不明朗,另外產(chǎn)品比較重,對(duì)應(yīng)尋求輕量級(jí)產(chǎn)品方案的公司來(lái)講吸引力并不大。
● Tricentis
Tricentis 公司在自動(dòng)化測(cè)試領(lǐng)域處于領(lǐng)先地位,可能國(guó)內(nèi)的用戶很少聽(tīng)說(shuō)這個(gè)公司,它在北美市場(chǎng)份額不錯(cuò),但是測(cè)試工具主要的市場(chǎng)在歐洲和亞洲,該公司需要在這些地區(qū)進(jìn)行更廣泛的推廣。下圖是 Tosca 和 HPE 的 UFT 以及 Selenium 之前的對(duì)比:
可以看到 Tosca 對(duì)于第三方工具的對(duì)接比 Selenium 做得要好,集成度也高,一個(gè)好的 DevOps 工具的一個(gè)特點(diǎn)就是能夠靈活,輕松的和第三方工具集成。
● Selenium
圖中并沒(méi)有提到 Selenium,但作為一個(gè)開(kāi)源自動(dòng)化測(cè)試工具,Selenium 還是占據(jù)功能自動(dòng)化測(cè)試很大一部分市場(chǎng)的,在 Stack Overflow 上搜索 Selenium,會(huì)搜到48800條問(wèn)題,如此活躍的社區(qū)讓 Selenium 能夠一直保持活力。現(xiàn)在也有不少基于 Selenium 開(kāi)發(fā)的測(cè)試框架,例如 Robot Framework 等等。
容器編排平臺(tái)
CNCF (Cloud Native Cloud Foundation) 在 KubeCon 大會(huì)對(duì)容器編排平臺(tái)的使用情況進(jìn)行了一次調(diào)研,調(diào)查了1500 的大會(huì)參會(huì)者,其中41%來(lái)自 DevOps/SREs 團(tuán)隊(duì),29%來(lái)自開(kāi)發(fā)團(tuán)隊(duì),其中30%的受訪者來(lái)自規(guī)模超過(guò)5000人的企業(yè)。
發(fā)布的調(diào)查報(bào)告顯示: Kubernetes 已經(jīng)占有70%以上的容器編排平臺(tái)市場(chǎng)。
2017年是 Kubernetes 的封神的一年。從下圖可以看到 GitHub 上排名前30的開(kāi)源項(xiàng)目:
Kubernetes 在 GitHub 的 Star 達(dá)到32.6K, 排名第五,其中的參與者以及 Commit 數(shù)量躍居到第二位,僅次于***位的 Linux 項(xiàng)目。
在過(guò)去的這一年中,最初支持 Mesos 或者其他容器編排工具的廠商紛紛開(kāi)始支持 Kubernetes,其中轉(zhuǎn)型較早的平臺(tái)已經(jīng)開(kāi)始收割,例如: Openshift,2017年 RedHat 的收入達(dá)到 2.4Billion USD, 截止到 2017年 Q3 的數(shù)據(jù),Openshift 已經(jīng)完成了超過(guò)50個(gè)6-7位數(shù)的訂單。
2018年 Kubernetes 將如何發(fā)展? 從去年的 KubeCon 大會(huì)上也可以關(guān)注到,來(lái)自紅帽的 Kubernetes 的架構(gòu)師 Clayton Coleman 宣布 Kubernetes 社區(qū)在2018年有幾個(gè)重要的關(guān)注點(diǎn):
-
Service Mesh
2018將會(huì)是 Service Mesh 的元年,Service Mesh 是用來(lái)描述大規(guī)模微服務(wù)部署情況下,服務(wù)網(wǎng)絡(luò)之間的復(fù)雜協(xié)作方式。業(yè)界知名的框架有:Istio,Envoy,CONDUIT 等, 其中由 IBM,谷歌等公司貢獻(xiàn)的 Istio知名度較高,在 Github 上有將近6000的 Star。Istio 的設(shè)計(jì)初衷就是解決微服務(wù)規(guī)模變大,服務(wù)之間的服務(wù)發(fā)現(xiàn),負(fù)載,失敗重試,監(jiān)控,以及更復(fù)雜的需求例如:A/B 測(cè)試,端到端認(rèn)證,權(quán)限訪問(wèn)控制等等。
-
支持大數(shù)據(jù),機(jī)器學(xué)習(xí)工具
Spark 和 TensorFlow 在 Kubernetes 上的部署已經(jīng)越來(lái)越容易,Kubernetes 社區(qū)將會(huì)持續(xù)優(yōu)化對(duì)大數(shù)據(jù),機(jī)器學(xué)習(xí)工具的支持。
-
改進(jìn) Application 的配置
每個(gè)公司對(duì)應(yīng)用配置的使用方式不盡相同,但18年的 Kubernetes 社區(qū)會(huì)投入更大精力在部署和配置的優(yōu)化,社區(qū)有很多優(yōu)秀的項(xiàng)目,例如 Kubernetes Helm,Helm 是Kubernetes 的包管理平臺(tái),用 Helm 能夠管理 Kubernetes 需要的資源,可以把它理解為 Kubernetes 里的 apt/yum/brew。使用 Helm 能夠從社區(qū)獲得大量?jī)?yōu)化后的 Kubernetes 應(yīng)用配置,并且能夠?qū)?Kubernetes 的應(yīng)用進(jìn)行版本化管理,例如回滾和灰度發(fā)布。它在 KubeCon 上也備受關(guān)注,有6個(gè) Track 專門介紹 Helm 的功能以及 Helm 未來(lái)發(fā)展方向。
2018年,Kubernetes 還將支持 ServerLess 工具,例如 Openwhisk,Kubeless 等等,集成 LDAP,支持多租戶,支持多種容器和虛擬機(jī)運(yùn)行環(huán)境,例如 cri-o, KubeVirt,hyperv 等等。
這里順便說(shuō)下 CNCF,CNCF 是15年底成立的非營(yíng)利性的組成,屬于 LInux 基金會(huì)的一部分,想要成為 CNCF 的會(huì)員,必須先成為 Linux 基金會(huì)的會(huì)員。CNCF 的使命是主導(dǎo)新的分布式計(jì)算系統(tǒng),從而能夠支持成千上萬(wàn)的自愈式多租戶的節(jié)點(diǎn)。
CNCF 已經(jīng)孵化了眾多知名項(xiàng)目,包括 Kubernetes,Prometheus,OpenTracing,Rkt,Envoy,等等,從上圖 CNCF 的會(huì)員名單也可以看出,DevOps 業(yè)界的巨頭均已入會(huì)。從 CNCF 的 Board Member 列表來(lái)看,亞馬遜的云架構(gòu)師 Adrian Cockcroft,CoreOs 的 CTO,紅帽的***科學(xué)家等在主導(dǎo) CNCF 的方向。國(guó)內(nèi)有兩家公司在 Board 里有一席之地,它們是阿里和華為,可以開(kāi)到國(guó)內(nèi)的技術(shù)也在逐漸影響到全球范圍,我相信2018年 CNCF 在全球的影響力會(huì)持續(xù)的增長(zhǎng)。
FaaS (Function as a Service)
AWS 的***云架構(gòu)師 Adrian Cockcroft(前 Netflix ***架構(gòu)師)認(rèn)為,業(yè)務(wù)邏輯的載體在5年前從傳統(tǒng)的巨石應(yīng)用遷移到了微服務(wù),現(xiàn)在,業(yè)務(wù)邏輯的載體會(huì)從微服務(wù)開(kāi)始演化成為 Function。
從5年前開(kāi)始到今天,我們已經(jīng)能夠完成微服務(wù)的建設(shè),業(yè)務(wù)邏輯可以以容器為載體運(yùn)行,開(kāi)發(fā)者無(wú)需關(guān)系具體的容器是運(yùn)行在哪個(gè)節(jié)點(diǎn),即使容器發(fā)生故障,容器管理平臺(tái)也能夠?qū)崿F(xiàn)故障自愈。
FaaS 認(rèn)為微服務(wù)并不是業(yè)務(wù)邏輯的最小載體,可以使用 Function 作為業(yè)務(wù)邏輯的載體,這樣開(kāi)發(fā)者無(wú)需關(guān)心服務(wù)器在什么地方,它如何擴(kuò)容,這些事情交給 FaaS 來(lái)做。公有云云廠商紛紛投入大量資源進(jìn)行 FaaS 的建設(shè),例如 AWS 的 Lambda Function,微軟的 Azure Functions,谷歌的 CloudFunctions,開(kāi)源社區(qū)比較知名的框架有 ServerLess,它能夠?qū)佣喾N云平臺(tái)提供的 FaaS 的功能,在 GitHub 已有上萬(wàn)個(gè) Star。
而 AWS 的的 Lambda Function 能夠做到“瞬時(shí)方法”,即方法按需創(chuàng)建,按需使用,用完銷毀,而 AWS 按照使用的幾百微秒來(lái)進(jìn)行計(jì)費(fèi),當(dāng)系統(tǒng)處于閑置狀態(tài),它會(huì)自動(dòng)停掉,不需要任何費(fèi)用,從而大大降低用戶的成本。可能你要問(wèn),如果程序員寫了一個(gè)死循環(huán)的方法調(diào)用,會(huì)不會(huì)扣錢扣到破產(chǎn)?當(dāng)然不會(huì),AWS 會(huì)限制一個(gè) Region 里并發(fā)方法數(shù)不超過(guò)100. 當(dāng)然 FaaS 仍然屬于較超前的概念,由于涉及到項(xiàng)目的改造,它實(shí)際落地仍需一段時(shí)間。
DevOps 數(shù)據(jù)可視化
市面上做數(shù)據(jù)可視化的工具非常多,但專注于 DevOps 的數(shù)據(jù)可視化工具還很少,去年,CapitalOne 公司的開(kāi)源項(xiàng)目-Hygieia 被國(guó)人所了解,Hygieia 是 CapitalOne 公司內(nèi)部孵化的一個(gè)項(xiàng)目,目的是解決 DevOps 工具鏈中的數(shù)據(jù)碎片化的問(wèn)題,Hygieia 為不同的工具提供了收集數(shù)據(jù)的 Collector,將數(shù)據(jù)存儲(chǔ)在 MongoDB 里,然后進(jìn)行數(shù)據(jù)可視化的展示。
總結(jié)
過(guò)去的一年里涌現(xiàn)了很多新的技術(shù),把握這些技術(shù)發(fā)展方向,對(duì)于公司內(nèi)部的技術(shù)平臺(tái)搭建和技術(shù)發(fā)展方向至關(guān)重要,新的一年里,希望大家多多關(guān)注 JFrog 公眾號(hào),獲得***手硅谷技術(shù)資訊。