什麼樣的持續交付工具和平臺最適合你的組織?

持續交付和DevOps的方法論及實踐已經存在很不少年,其主要要解決的問題就是,如何快速,安全的完成從開發到發佈、運維,及後續的線上監控等一系列活動。npm

持續交付和DevOps包含了不少內容,好比分層自動化測試、流水線卡點,infrastructure as code,線上機器auto healing、auto scale等等。但最重要的是,這些活動要有一個靠譜的工具平臺來承載。安全

好在市面上可選的工具平臺也是很是的多種多樣。屈指一算,大概有這麼幾類:負載均衡

輕量級CI SaaS運維

以travis-ci爲表明的輕量級CI,成爲了開源項目的標配。可以提供豐富多樣的構建環境和靈活的構建策略(好比並行構建等)。很是適合運行測試,可是在後續的部署、運維領域略顯乏力。maven

單機版CD工具工具

以Jenkins爲表明。Jenkins是一個以Job爲核心概念,用各類插件不斷豐富和武裝本身的工具。在近幾年前後推出了Jenkins 2.0(pipeline as first class citizen),Jenkins X(cloud native as first class citizen)。測試

Jenkins本質上是一個靈活的流程引擎,沒有任何業務概念。所以對於不少場景化的需求須要進行上層的封裝,能夠是本身去配置一個個Job和Pipeline,也能夠經過API批量調用。Jenkins的擴展能力很強,但對於企業的場景來講,仍是會有一些限制。阿里雲

雲原生工具插件

平臺自己和雲平臺有着很好結合。如前面提到的利用雲平臺的auto scaling的能力。事實上可以利用的能力還有不少,包括機器建立銷燬,操做負載均衡,開啓日誌服務及監控等等。日誌

目前比較有表明性的單機工具是Netflix的spinnaker。因爲是國外的產品,他對AWS和Google Cloud等支持的比較好,但阿里雲的支持仍是有限。

企業級平臺

爲企業的場景而生。通常內置項目、應用、流水線等模型,很好的匹配到企業的組織結構。同時提供企業研發所必須的一些配套基礎設施,好比maven私服,npm私服等等。通常來說,企業級平臺是場景化的。好比阿里雲的一站式研發協同平臺,雲效,對主流語言(Java,Node,Php)的構建和主流平臺(Linux)的部署都支持的很好。用戶基本上簡單的點點選選,一個從構建到發佈的流程就能跑起來了。

這種平臺可能的一個缺點就是,相比Jenkins這類產品,通用能力和靈活性不足。不少活動都須要在一些模型的概念下進行。

那麼來聊聊吧

你的組織規模如何,你在組織內的角色是什麼

正在使用什麼樣的持續交付工具鏈,又遇到什麼問題

是否使用了雲平臺,你的工具鏈和雲平臺的集成度如何?

是否使用了Kubernetes等集羣管理,你的工具鏈和Kubernetes的集成度如何?

你心中理想的持續交付工具鏈是什麼樣子的

參與話題贏好禮

相關文章
相關標籤/搜索