摘要: 在2017線上技術峰會——首屆阿里巴巴研發效能嘉年華上,來自阿里雲飛天研發部的工程師莫源分享了《打造雲上代碼交付鏈,CodePipeline實踐分享》。他在雲端運算和雲平台、持續整合流程、DevOps的基礎上,詳細分享了Alibaba Cloud CodePipeline優於Jenkins的效能和實踐。
在2017線上技術峰會——首屆阿里巴巴研發效能嘉年華上,來自阿里雲飛天研發部的工程師莫源分享了《打造雲上代碼交付鏈,CodePipeline實踐分享》。他在雲端運算和雲平台、持續整合流程、DevOps的基礎上,詳細分享了Alibaba Cloud CodePipeline優於Jenkins的效能和實踐。
以下內容根據直播視頻整理而成。
直播視頻:https://yq.aliyun.com/edu/lesson/549
PDF下載:https://yq.aliyun.com/attachment/download/?id=1844
雲端運算和雲平台
雲端運算領域和其他領域是非常相似的,當一個領域越來越成熟的時候,發展方向會朝著精細化發展。比如,ofo解決了如何脫離城市公用交通之外解決最後一公裡的問題。雲端運算也越來越成熟,上雲解決了基礎設施交付的問題,但是對於開發人員而言還遠遠不夠,雲原生架構設計與應用成為了雲端運算的“最後一公裡”問題。
上圖是NETFLAG公司定義的Cloud Native架構設計圖。主要分為三個部分:Framework(左邊),推薦使用微服務架構;Container Runtime(右邊),建議容器化、資源生命週期自動化;Infrastructure Automation(中間),表達了基礎設施即代碼的思想,以及配管營運自動化。
把剛才的圖轉換一下,可以總結為四個要點:DevOps、Continuous Delivery、Microservices、Containers。但對於開發人員來講,微服務和容器並不是必須的,而是與自己的模型、編程架構相關的,而DevOps和持續整合則是通用的模型。作為一個雲端運算廠商,我們要解決的是開發人員如何在通用模型之下解決自己的問題。
上圖大家都比較熟悉,講述了雲平台的SaaS、PaaS、IaaS層。最底層是IaaS層,提供了資源,PaaS層提供了能力,而SaaS層提供了服務。金字塔最底層是最紮實的,越往上越小,而DevOps是塔尖。所以,只有最底層基礎設施的環境變得十分穩固、厚重的時候,才能保證最上層的DevOps有一個更高效的能力。 持續整合流程
常見的DevOps流程分為代碼開發,提交代碼到代碼倉庫,通過web hook觸發,由持續整合系統分別部署到測試環境、預發環境、正式環境。
上圖是基於容器的持續整合流程圖。和前圖的區別在於,在持續整合系統上層有一個鏡像倉庫,持續整合系統會把鏡像推到鏡像倉庫,部署的時候由部署環境拉取鏡像進行部署。
原文連結