易往信息是中國領先的工業(yè)4.0智能工廠整體解決方案提供商。憑借十余年行業(yè)項目實施經驗的沉淀,結合當前“中國制造2025”的核心思想,不斷升級智能制造領域業(yè)務,涵蓋汽車整車及零部件、電子、食品、制藥、機加、家電、能源、物流等行業(yè),是制造企業(yè)智能改造落地的最佳選擇。
多年來,易往信息致力于中國工業(yè)軟件的研發(fā)與創(chuàng)新。在工業(yè)軟件產品的研發(fā)過程中,最常采用的是傳統(tǒng)瀑布式開發(fā)模式。易往信息借鑒互聯(lián)網開發(fā)的最佳實踐,采用SCRUM敏捷開發(fā)模式彌補傳統(tǒng)瀑布式開發(fā)模式的不足,以提高產品研發(fā)的效率。在敏捷開發(fā)模式中,將整個產品研發(fā)周期設置成為若干個沖刺周期(一般以2-4周為一個周期),每個周期都包含需求選擇、設計、功能實現(xiàn)與測試等階段,小步多贏的實現(xiàn)產品研發(fā)的目標。
隨著產品開發(fā)復雜度的不斷提高,團隊成員不斷增多,如何更好地協(xié)同工作,如何保持良好的溝通,如何按計劃執(zhí)行,如何保證產品質量已經成為開發(fā)過程中不可忽略的問題。因此團隊引入持續(xù)集成方案(Continuous integration ,簡稱CI),希望能夠有效解決上述問題。
究竟為什么我們要去做持續(xù)集成,持續(xù)集成究竟可以給我們帶來什么好處?
持續(xù)集成有如下顯而易見的優(yōu)點:
1、 減少重復性的工作,快速頻繁的發(fā)布代碼,節(jié)省時間成本,提高效率;
2、 易于定位錯誤,及時反饋,減少風險,盡早排除環(huán)境參數(shù)影響,盡早發(fā)現(xiàn)缺陷,盡早評估質量;
3、 優(yōu)化對研發(fā)進度的控制,便于研發(fā)流程各環(huán)節(jié)的銜接;
4、 便于更充分的測試,開展daily build和smoking test相結合;
5、 便于工具結合,持續(xù)代碼質量改進。如代碼檢查、自動化測試、自動化部署、回滾、反饋報告等;
6、 更快的產出系統(tǒng)級成果,產品透明化,建立產品信心。工欲善其事,必先利其器。選擇一個好的工具很重要,而Jenkins就是持續(xù)集成的標志性工具。它是基于Java的純Web UI操作的免費開源持續(xù)集成引擎,支持眾多插件和開發(fā)語言等(參照圖1-Jenkins界面)。
圖1 -Jenkins界面
持續(xù)集成大致的工作流程分為以下幾步(圖2-Jenkins工作原理):
1、開發(fā)者將實現(xiàn)的代碼模塊或者修復的功能代碼push到git server (Gitlab)上;
2、Jenkins構建觸發(fā)器觸發(fā)進行一次build請求(可配置觸發(fā)構建方式);
3、Jenkins觸發(fā)獲取Gitlab上的代碼,借助Maven構建插件進行編譯,測試,反饋結果,打包等系列活動
4、構建結束后,觸發(fā)Jenkins部署環(huán)境的配置(也可以是設置好的shell腳本)將程序包部署到對應的運行環(huán)境(測試環(huán)境或生產環(huán)境)中完成整個持續(xù)集成過程自動化。
圖2-Jenkins工作原理
通過引入持續(xù)集成工具Jenkins,我們達到了如下目標:
λ 持續(xù) (Continuous):不斷的獲取問題反饋,響應修改問題;
λ 集成 (Integration):編譯、測試、構建、打包;
λ 部署 (Deployment):應用組件或配置變更在部署環(huán)境中生效;
λ 發(fā)布 (Release):具有完整業(yè)務邏輯的功能實現(xiàn);
λ 交付 (Delivery):可以理解為從 Deployment 到 Release 之間的階段,更多的強調是一種持續(xù)化能力。
通過采用敏捷開發(fā)模式,使得我們的產品研發(fā)不必等待全部功能設計完成,即可快速啟動開發(fā),通過多輪迭代,逐步完善產品功能。在這個過程中,持續(xù)集成CI工具以及其他一些輔助工具的使用,確保了代碼開發(fā)質量,并使得產品隨時可編譯、可交付,為產品研發(fā)帶來了很大的靈活性與便利性,顯著提高了產品研發(fā)的效率。