亞馬遜AWS云產(chǎn)品針對(duì)DevOps的落地實(shí)踐
2022-06-07閱讀 462

在亞馬遜云AWS上,云用戶可以輕松實(shí)現(xiàn)DevOps所提倡的持續(xù)集成和持續(xù)部署流水線的相關(guān)功能或服務(wù)?,F(xiàn)針對(duì)與DevOps落地和實(shí)施相關(guān)的典型AWS云產(chǎn)品進(jìn)行具體內(nèi)容介紹。

AWS CodeCommit產(chǎn)品提供在云中源代碼完全托管服務(wù),這類似于目前比較流行的GitHub或Git Lab的產(chǎn)品功能。云用戶可以基于CodeCommit創(chuàng)建隸屬于每個(gè)開發(fā)人員自己的高度安全和可擴(kuò)展的專用Git存儲(chǔ)庫(kù),而無(wú)需擔(dān)心承載存儲(chǔ)庫(kù)的IT基礎(chǔ)設(shè)施的擴(kuò)展能力,云的彈性伸縮的能力讓存儲(chǔ)庫(kù)的動(dòng)態(tài)擴(kuò)展全程無(wú)憂。

AWS CodeCommit相對(duì)于傳統(tǒng)的Git會(huì)有諸多優(yōu)勢(shì),比如CodeCommit 可以與AWS的賬號(hào)管理服務(wù) (IAM)緊密集成,以實(shí)現(xiàn)把特定的云用戶權(quán)限分配到存儲(chǔ)庫(kù),以實(shí)現(xiàn)必要的安全保證。談到安全,,CodeCommit會(huì)確保存儲(chǔ)在存儲(chǔ)庫(kù)中的文件無(wú)論在靜止和傳輸時(shí)都處于加密狀態(tài),從而符合國(guó)際標(biāo)準(zhǔn)化組織ISO27001的安全合規(guī)性要求。CodeCommit所能存儲(chǔ)的文件類型非常廣泛,從代碼到二進(jìn)制文件的一切內(nèi)容都可以作為存儲(chǔ)對(duì)象。CodeCommit兼容Git的標(biāo)準(zhǔn)功能,比如CodeCommit存儲(chǔ)庫(kù)支持代碼的拉取請(qǐng)求,使不同的開發(fā)用戶可以相互查看和評(píng)論各自的代碼更改,以支持后繼的基于主干開發(fā)的代碼合并和基于分支的軟件發(fā)布。CodeCommit支持傳統(tǒng)的Git 命令、AWS的CLI命令行和標(biāo)準(zhǔn)API來(lái)實(shí)現(xiàn)存儲(chǔ)庫(kù)的拉取和合并等諸多操作。例如,通過(guò)運(yùn)行g(shù)it clone命令創(chuàng)建一個(gè)連接到特定CodeCommit存儲(chǔ)庫(kù),并克隆一個(gè)本地存儲(chǔ)庫(kù)。通過(guò)運(yùn)行g(shù)it add命令在本地存儲(chǔ)庫(kù)存放修改過(guò)的文件。通過(guò)運(yùn)行g(shù)it commit命令從本地存儲(chǔ)庫(kù)提交文件,然后運(yùn)行g(shù)it push命令將更新后的文件發(fā)送到AWS云上CodeCommit存儲(chǔ)庫(kù)中去。通過(guò)運(yùn)行g(shù)it pull命令將云上 CodeCommit存儲(chǔ)庫(kù)中的文件與本地存儲(chǔ)庫(kù)進(jìn)行同步,以確保每個(gè)云開發(fā)用戶使用最新版本的文件。

通過(guò)如上對(duì)AWS CodeCommit的論述,我們能夠感知到CodeCommit在云上提供類似于Git的源代碼完全托管服務(wù)。AWS CodeBuild是一項(xiàng)完全托管的持續(xù)集成服務(wù),持續(xù)集成的主要功效就是實(shí)現(xiàn)不同開發(fā)人員代碼的持續(xù)的基于主干的代碼合并,并觸發(fā)自動(dòng)化的單元測(cè)試。AWS的另一個(gè)典型的產(chǎn)品CodePipeline能夠結(jié)合CodeCommit和CodeBuild服務(wù)打造DevOps的持續(xù)部署流水線,即全新的軟件發(fā)布流程。CodePipeline 可實(shí)現(xiàn)軟件發(fā)布流程的自動(dòng)化,只要云開發(fā)用戶的代碼發(fā)生變更,CodePipeline便會(huì)觸發(fā)針對(duì)增量代碼的自動(dòng)化測(cè)試和和部署的全過(guò)程,使業(yè)務(wù)新功能的發(fā)布成為一種常規(guī)的低風(fēng)險(xiǎn)操作。換句話來(lái)講,應(yīng)用CodePipeline服務(wù)的企業(yè)能夠快速為其客戶發(fā)布新的業(yè)務(wù)產(chǎn)品功能,并實(shí)現(xiàn)來(lái)自業(yè)務(wù)用戶的快速迭代反饋。另外,為了使自動(dòng)化部署流水線的全過(guò)程做到安全可控,CodePipeline支持以可視化的方式監(jiān)視部署的全過(guò)程,再現(xiàn)可能的部署錯(cuò)誤,確保最終部署到生產(chǎn)環(huán)境的代碼質(zhì)量。

     總之,云用戶可以通過(guò)在AWS上提供的諸如CodeCommit、CodeBuild和CodePipeline等云產(chǎn)品輕松實(shí)現(xiàn)DevOps在云上的落地。