最近在從零探索jenkins時,Google到了不少與之相關的關鍵字,例如本文即將討論的持續集成,持續交付,持續部署等。前端工程化有一個核心概念之一就是自動化操做。因此探索Jenkins也就是在探索前端工程化。
本文涉及到的keywords:前端
定義:持續集成Continuous integration指的是,頻繁的(一天屢次)將代碼集成到主幹
目的:使得產品可以快速迭代,同時還能保持高質量,其核心措施是,代碼集成到主幹以前,必須經過全部的測試用例,只要有一個測試用例失敗,就不容許集成到主幹
特色:前端工程化
持續集成在企業作配置後臺的項目中體現比較明顯,例如後臺管理系統須要持續發版,不停的在增長新的功能以支持其餘業務發展。運維
持續交付Continuous delivery 指的是,頻繁的將軟件的新版本,交付給質量團隊或者用戶,以供評審或測試,若是應用經過評審,代碼就進入生產階段。
持續交付能夠看做是持續集成的下一步,它強調的是無論怎麼更新,軟件是隨時隨地能夠交付的。工具
持續部署是持續交付的下一步,指的是代碼通過評審後,自動部署到生產環境,能夠理解爲QA測試完成,應用準備部署上線生產環境。
持續部署的目標是:代碼在任什麼時候刻都是可部署的,能夠進入生產階段
持續部署的前提是能自動化完成測試,構建,部署等步驟,測試
產品的生命週期包括原型設計,應用研發,構建,測試,部署這幾個過程,傳統的開發流程屬於瀑布流,這些step都須要按順序前後完成,每一個step對應不一樣的人羣,好比研發同窗更多關注研發,構建,在測試方面有專門的QA負責,運維同窗負責部署以及線上環境的搭建,這種開發方式人員分工明確,工做界限劃分清晰。隨着devops思想的盛行,這種瀑布流開發方式受到了挑戰,devops由dev(Development)與ops(Operations)即軟件開發人員和運維同窗構成,打破原有各個部門隔離的現狀,提高dev與ops之間溝通合做來使得構建,測試,部署軟件變得更爲快捷,頻繁和可靠。spa
DevOps中的測試必然是自動化測試,全員測試,PM,研發,QA等協同合做,使得測試覆蓋每一個方面,並且當一天上線屢次時,添加補丁或者更新功能,自動化測試將極高的提高開發效率。設計
DevOps中開發再也不只是埋頭寫代碼,還要爲本身代碼質量負責,出 bug 了,運行緩慢了若是問題定位是代碼的緣由,那這個坑就得本身填了。3d
DevOps 中由開發團隊完成交付工做,不像之前開發團隊和交付團隊是2個團隊,用各自習慣的工具,交付工做中使用的工具套件是開發流程中的工具,無需轉手,簡化開發測試人員的工做。code
DevOps 中的一套成熟的運維繫統包括什麼?blog