創始人 KK:Jenkins 的昨天、今天和明天

創始人 KK:Jenkins 的昨天、今天和明天

本文整理自首屆 Jenkins User Conference China 演講:Jenkins 創始人 KK《Jenkins: Past, Present & Future》

做者簡介

創始人 KK:Jenkins 的昨天、今天和明天

Kohsuke Kawaguchi

持續交付平臺 Jenkins 項目創始人,主要開發者。現任 CloudBees CTO。在加入 CloudBees 以前,曾在 Sun 和 Oracle 工做,參與了不少項目的開發,併發起了 Hudson(Jenkins 前身)項目。

前言

很是高興來到這裏,其實半年前我來過中國,當時咱們就策劃進行一次這樣的Jenkins用戶大會。今天我也很是高興能跟你們分享一下 Jenkins 發展的歷程。html

1、生物演化的歷史

首先我跟你們介紹地球上生物演化的歷史,由於我以爲這跟咱們 Jenkins 的發展歷史是很是類似。架構

創始人 KK:Jenkins 的昨天、今天和明天

你們能夠看到,這是五億四千萬年前,當時地球上發生了很是重要的事件,就是寒武紀的大爆發,很是短的時間內咱們看到地球上出現各類基本的生命形式,這是很是使人激動的一段時期。併發

正是因爲物種的演化,咱們經歷了不一樣的變化,咱們生命也變得日益複雜,這就是咱們說生命複雜的演化過程。ide

若是咱們進一步看一下,生命的演化過程是很是複雜的。工具

開始咱們只有無性繁殖,後面有了有性繁殖。因此咱們能夠看到,最終經過物種的優勝劣汰,由於你須要跟其餘的物種進行競爭,進行優勝劣汰。測試

創始人 KK:Jenkins 的昨天、今天和明天

再接下來就到了器官演化的過程,這裏我給你們呈現的是眼睛演化的過程。隨着物種特徵的結合,咱們看到這樣演變的過程就變得很是迅速,並且更復雜的物種就擁有了更多的特徵。優化

創始人 KK:Jenkins 的昨天、今天和明天

2、Jenkins 1 時代

我以爲 Jenkins 其實也是位於寒武紀大爆發的時代,一開始的時候咱們使用的是單機的應用,這樣的單機應用時代,也是經歷了很長的時間,咱們如今看到的只是冰山一角。ui

隨着進一步的演進以及更新,我相信咱們會有更多的功能出現。好比說動態代碼加載的機制,URL 的可組合性,還有它的管理,基礎架構以及工具箱等等。這個咱們稱之爲是 Jenkins 第一階段,或者是「Jenkins 1」時代。插件

經過這個生態系統咱們開發出來了很是有趣的插件,也能夠經過咱們的插件來把它更好的應用到用戶的平常工做中,使得它的工做變得更加有生產力。3d

這就像是一個大巴扎,在市場中全部的人經過咱們的平臺取得他們所須要的插件,或者須要的一些功能。在這樣的大巴扎找到他們所須要的東西。

創始人 KK:Jenkins 的昨天、今天和明天
隨着時代的進化,咱們出現了自動化。好比說對於一些人來講,對工藝很是感興趣,他們就把自動化代入到了生產或者加工之中。

創始人 KK:Jenkins 的昨天、今天和明天
在寒武紀的大爆發以後,從寒武紀到如今,這是一個相對穩定的時代。這樣的一種穩定性也是伴隨着許多新物種的出現,好比說恐龍等等。

對於咱們來講,生命就是經過這樣一系列的飛躍來逐漸的演進和演化的。對於 Jenkins 的產品,咱們也是在以相同的方式進行演進

接下來會發生什麼?跟咱們剛剛說的寒武紀大爆發同樣,其實生物也有不一樣的特性,並且須要進行整合。

3、Jenkins 2 時代

咱們看一下接下來不一樣的整合階段,有一些已是產品原本的特徵了,因此在 Jenkins 第二階段,咱們看一下哪些更爲重要,哪些是讓咱們產品獲得智能提高的方法。

Jenkins 2 有不少很是棒的特色,還有一個是意識。咱們須要不斷的演進,用戶須要怎樣集成這些插件,咱們怎麼樣才能更爲負責的給大家最好的 CI/CD 解決方案。你不用買車以後本身再組裝車,本身直接就能夠開了。

對 Jenkins 來講也是同樣的,咱們有很是多的一些拼塊,咱們須要怎麼作呢?須要想想如何拓展 Jenkins ,如何經過拓展不一樣的模塊拓展 Jenkins ,那就是改變咱們社區人的思惟方式。

還有一個就是在 Jenkins 2 裏面看到的,不只僅只是構建軟件。那時候咱們有一些我的的用戶,他們就至關於在集成,他們知道直接想作什麼,咱們有一些源的代碼,但這是每每不夠的。

由於用戶愈來愈多,咱們就須要考慮如何讓咱們的人更加有效率,咱們須要給他們提供更好的像 LitPath 這樣的東西。由於咱們有很是多的文件,這個文件就像優生的隧道,不要讓他們在浩如煙海當中流失。這些放在一塊兒,也是咱們 Jenkins2 須要考慮很是重要的因素。

3.一、 Pipeline

對於 Jenkins 來講還有一個階段,若是想飛躍的話,那就作 Pipeline 流水線。咱們花了很是多的時間在 Pipeline 上面,它是很是好配置 Jenkins 的方法。

Pipeline 咱們要怎麼作呢?首先須要一個文件,咱們的原文件放在一塊兒,不斷的集成進行控制,這樣就可以編輯出可配置的文檔。這些過程實際上是一樣的文件。

在 Jenkins 文件當中雖然自動化過程稍顯複雜,但配置過程仍然很是好。

創始人 KK:Jenkins 的昨天、今天和明天

咱們有五個甚至十個 freestyle jobs 如今只用一個 Pipeline 就能夠了。有 Jenkins 的 freestyle 和 Pipeline ,這樣咱們就能大顯神通了,這也是咱們的一個推新之處。

同時咱們能夠從一些簡單的過程不斷的上升到一些更爲複雜的過程都可以隨機應變,在使用 Jenkins 當中,咱們也花了不少的時間和精力。

使用 Pipeline 咱們有不少階段,你們能夠看最開始 Build 的階段,咱們用 Docker 給你們提供更好的構建環境。

創始人 KK:Jenkins 的昨天、今天和明天

在 Build 階段有一些圖形是須要配置的,就須要進行不一樣配置的方法。咱們看一下 Jenkins 全部的部件都是獲得完美的配置,不少的工具在這個階段均可以獲得應用。這些對用戶來講都是很是熟悉的使用方法,你可以本身使用,並且很是方便。

創始人 KK:Jenkins 的昨天、今天和明天

咱們能夠看一下有一些嘗試的團隊,好比說一些其餘的工程師,至關於咱們的 library ,咱們如何用它定義什麼是 Pipeline ?怎麼創造一個高水平的用戶體驗?這個過程可使得咱們生產更爲高效,同時不斷的進行創新。

其實 Pipeline 是很是簡單的,世界當中不少事情都是很是複雜的,因此你須要去區分、篩選。咱們可以讓你去創造這些新的東西,如一個有條件的協議等等。因此你思考的方式能夠比較直接,同時又能夠表達出很是豐富的思想。

爲何你們很是在意這些呢?由於咱們要不斷的集成、交付以及自動化。

創始人 KK:Jenkins 的昨天、今天和明天

軟件如今愈來愈重要,在不一樣的行業,你們都很重視軟件。咱們看一下原代碼的變化,有時候會減小時間,反饋很是迅速,並且反饋對商業、對他們的決策很是關鍵。咱們常常說軟件正在蠶食整個世界,咱們全部的一切都愈來愈依賴咱們的軟件。

創始人 KK:Jenkins 的昨天、今天和明天

所以之前咱們是一個單獨個體的手工藝者,但如今咱們已經不能適應時代的須要了。工業化和自動化,並且規模更龐大,更爲尖端,而且更加具備集中的工業化。不一樣的團隊中的人他們的思惟方式是不同的,他們都會讓整個項目獲得更好的結果。

咱們有一箇中間團隊,能夠說是分享服務的精英團隊,有很是多的專家可以給咱們提供相關的服務。因此這些人其實可以使整個工程組織的生產力達到三倍以上,咱們有這些可規模化的人員,生產力的提高對咱們來講就不是一個夢想了。

創始人 KK:Jenkins 的昨天、今天和明天

愈來愈重要的是組織可以用 CD 或者是最難的一個程序,可以幫助咱們達到軟件最優的使用效果,這也是 Jenkins 如今主要的用途。

3.二、 Blue Ocean

咱們目標就是不斷的推動,但到如今爲止在 Pipeline 和 Jenkins 2 之間咱們有沒有足夠的組件可以讓咱們繼續的提高呢?其實還有一個小的組件很是重要,那就是 Blue Ocean ,它的目的就是優化 Pipeline。

創始人 KK:Jenkins 的昨天、今天和明天

Pipeline 可以定義一些很是複雜的構建,因爲愈來愈複雜,我但願你們可以看到 Pipeline 是很是有效的。咱們花了很是多的經歷實現,好比說在一些地方的 Pipeline ,在不一樣平行測試當中都會進行使用,可以把它安裝起來,咱們看一下下面的程序演進和進化的過程。

創始人 KK:Jenkins 的昨天、今天和明天

創始人 KK:Jenkins 的昨天、今天和明天

Blue Ocean 是很是好的,能夠爲咱們公司帶來什麼樣的福音?不少時候咱們喜歡這樣作,但這個項目是很是大的,這是一個開源的社區,每一個人都可以貢獻本身的力量,因此若是想要進行統籌其實並不簡單。

cloud bees 是很是好的公司,他們花了很長時間在構造這個項目,但願這個項目繼續的延續下去。由於 Blue Ocean 是很是重要的, Jenkins 系統以外的一個補充系統,咱們一塊兒努力合做想要發展 Blue Ocean 。

我有一個視頻來解釋一下,咱們有不少使用 Jenkins 的經驗,可以給你們提供最基本經驗的分享。

視頻播放:
看視頻

3.三、 Pipeline 和 Blue Ocean 的發展

經過咱們的集成, Pipeline 以及 Blue Ocean 界面,咱們但願這個特質能夠組合在一塊兒,使得咱們進入一個新的時代。這裏是來自於咱們用戶對於 Blue Ocean 以及對 Pipeline 的評價,這個對於許多人都是很是大的改變。

創始人 KK:Jenkins 的昨天、今天和明天

這裏我展現的就是 Pipeline 的任務,在過去幾年間都是以30倍的速度在增加,意味着每秒鐘 Pipeline 都在不斷的增長。

創始人 KK:Jenkins 的昨天、今天和明天

這是關於咱們 Jenkins 線下的沙龍活動,你們能夠看到這些紅點表明的 JAM 線下沙龍活動舉辦的地點,如今在上海也已經開始舉辦咱們相關的活動。

創始人 KK:Jenkins 的昨天、今天和明天

這是咱們 JAM 會員增加的曲線,能夠看到最近幾年間咱們會員出現了飛速增加。

創始人 KK:Jenkins 的昨天、今天和明天

在組織 JAM 的時候,那時候在舊金山咱們對會員進行了分類,其中包括貴賓會員、金牌會員,咱們但願能夠對軟件行業作出更多的貢獻。

創始人 KK:Jenkins 的昨天、今天和明天

創始人 KK:Jenkins 的昨天、今天和明天

正如我剛剛前面提到的一點,咱們正在經歷像物種變化演化的過程。剛剛我跟你們提到的只是咱們一些演進的過程。

PayPal 他們也使用了咱們 Jenkins 系統,同時經過對 Jenkins 的應用,很大程度的改進了他們交易的數量以及交易的速度,我不知道你們對 PayPal 有什麼瞭解,這個至關於中國的支付寶。

這是 PayPal 交易量以及活躍的用戶數。

創始人 KK:Jenkins 的昨天、今天和明天

這是關於 PayPal 相關軟件開發的數據,他們是很是大的運做規模。

創始人 KK:Jenkins 的昨天、今天和明天

  • 2013年的時候,他們有四萬個 jobs 使用了咱們的 Jenkins ;

  • 2014年他們開始加入了 openstack 這樣的私有云中,有2500多個 Jenkins 查檢;

  • 2015年的時候,咱們看到他們採用了咱們輕量級的 Jenkins ,以及一些按需的代理;

  • 2016年他們就合做開發了實時的界面;

    2017年咱們將開發出來 Bule Ocean 的界面以及咱們的 Pipeline 。

隨着咱們一系列的項目推出,咱們把軟件作出了相應的提高。一開始咱們更新週期是一個月,如今已經縮短到了一天,咱們但願將來能夠把這樣的週期縮短到五分鐘。

若是說咱們能夠改進速度的話,這個將會對於企業競爭力帶來很大的提高。尤爲 PayPal 這樣的公司,我相信各位應該都知道,之因此要進行自動化,就是但願可使得咱們軟件開發速度以及交付的速度變得愈來愈快,這個就是咱們所作的全部事情的初衷,固然咱們也但願給其餘的客戶帶來這樣的改變。

總結

最後我想告訴你們的就是,從 Jenkins 的三個特質,集成、 Pipeline 、Blue Ocean,咱們但願能夠帶來更好的客戶體驗,咱們也但願帶來 Jenkins 新的時代。做爲 Jenkins 的用戶,但願能夠更好的使用 Jenkins 系統,但願經過我今天的演講分享,可讓大家將來更好的使用咱們的 Jenkins 。

相關文章
相關標籤/搜索