隨著技術和業(yè)務的不斷發(fā)展,企業(yè)的IT架構也更趨向于雙模態(tài)勢,一邊是對于核心業(yè)務系統穩(wěn)定運行的要求,一邊是對于系統快速迭代的需求。對于這些“運營者”而言,DevOps的引入能極大的提升業(yè)務的效率。

領先的公有云服務提供商在提供基礎計算資源的同時也向用戶提供運維服務的平臺(PaaS)以及其他云軟件基礎設施服務。其中,AWS的DevOps體系中就有CodeCommit 代碼版本控制服務,CodePipeline 持續(xù)交付服務,CodeDeploy 部署和分發(fā)等諸多適用于DevOps場景下的產品。

今天就讓我們介紹下AWS的CodeDeploy。

CodeDeploy能將應用程序部署、分發(fā)到開發(fā)、測試、生產環(huán)境中。從代碼的存儲、管理、版本控制結合著構建、打包,然后進行分發(fā)、部署,最后完成優(yōu)化、運維這一整套開發(fā)運維的流程,CodeDeploy能快速的將已經構建好的代碼發(fā)布到it環(huán)境中。

CodeDeploy著眼于將大系統分解為多個SOA服務,通過部署分解后的SOA服務來處理整個系統的部署。相當于把整個系統部署分成多個局部部署,分而治之。CodeDeloy定義了基于時間部署流程接口,在接口定義中,定義多個部署文件拷貝源目標部署映射,以及部署中各個步驟以及步驟之間的執(zhí)行順序。

其優(yōu)點在于:

1、自動化部署:可以將代碼自動部署到任意的實例中,還會隨著基礎設施進行擴展,這樣可以避免傳統維護中手動操作帶來的錯誤,還可以很大程度的提高部署效率,節(jié)約人力物力等。

2、最大程度減少停機時間:可以跨實例進行滾動更新,并根據可配置的規(guī)則追蹤應用程序的運行狀況。

3、集中控制:CodeDeploy會生成詳細報告,以便能夠查看每個應用程序修訂版的部署時間以及部署到哪些實例中,這些都是可以通過控制臺或AWS CLI輕松管理的。

4、易于采用:與平臺和語言無關,可以與現有的軟件發(fā)布過程或持續(xù)交付工具鏈進行集成。

5、與其他服務結合:CodeDeploy可以和彈性負載均衡(Elastic Load Balancer)、自動擴展組(Auto Scaling Group)等服務結合,完成無縫升級和動態(tài)部署。

場景示例:

某客戶所有的工作負載都運行在AWS中,在AWS上有大量的生產環(huán)境、測試環(huán)境、開發(fā)環(huán)境,客戶項目更新迭代非???如何快速部署、動態(tài)發(fā)布成為客戶首要解決的問題。

1、我們幫助客戶進行環(huán)境分組,分別劃分為開發(fā)環(huán)境、測試環(huán)境以及生產環(huán)境,將這些環(huán)境獨立分隔。

2、使用CloudFormation定義的CodeDeploy和CodePipeline配置創(chuàng)建一個部署管道,快速的將代碼部署到這三個環(huán)境中。

3、CodeDeploy結合ELB做灰度測試和動態(tài)發(fā)布,解決快速迭代,整體提高it運維的敏捷性。

分享到

zhangnn

相關推薦