回顧過去的一年,DevOps 技術圈風起雲涌,開源社區以及商業軟件在 DevOps 領域均有很是大的發展,今天就從 Issue Tracking 系統,開發語言,構建,持續集成服務器,容器等方面和你們盤點下過去的一年裏 DevOps 的工具使用狀況和技術發展趨勢。git
這裏引用 JetBrain 公司(IntelliJ IDEA 的開發商)在全球20個國家(包括中國,美國,英國,日本等覆蓋了70%開發者的國家),對5000名軟件工程師進行了充分的調研,調研結果顯示 Jira 是最流行的 Issue Tracking 系統,只有 C# 的開發者傾向於使用微軟的 TFS(Team Foundation Server)。程序員
Github Issue 因爲是免費的,也獲得衆多互聯網公司和開源社區的青睞。我的推薦小團隊可使用 Gitlab 的 Issue Board,可以知足基本的看板需求,但若是你需求豐富的報表功能,建議使用 Jira,Jira 的插件市場裏有很是豐富的報表插件,Jira 自己也提供強大的定製能力,知足不一樣用戶的各類需求。github
JavaScript 無疑是應用範圍最廣的語言,而對於後端開發語言仍然是 Java 佔據主導地位。web
對於71%的 Java 開發者已經使用了 Maven 進行構建,Gradle 的使用程度已經達到42%,雖然筆者認爲 Gradle 在國內還遠遠沒有達到這個數,但因爲 Gradle 由代碼定義構建流程帶來的靈活性,以及性能的提高,它確實爲開發者帶來了一個更靈活的選擇,Netflix,LinkedIn 等公司均使用 Gradle 作構建,將來它的增加趨勢有望超過 Maven,而使用 Ant 的用戶在逐年遞減。後端
Jenkins 仍然是最全球流行的持續集成工具,國內某社區曾經調研 Jenkins 在國內的使用率在70%左右。爲何 Jenkins 會這麼經久不衰?這得益於 Jenkins 的插件生態,Jenkins 社區有上千個插件,能到輕鬆的對接任何 DevOps 工具。api
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 在全球的影響力會持續的增加。
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 的數據可視化工具還不多,去年,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 等公司作過研發和架構,是有十多年開發經驗的互聯網老兵,專一於軟件生命週期管理,微服務架構,雲原生應用,容器化等領域。
歡迎轉載,但轉載請註明做者與出處。謝謝!