AWS Proton集成和協(xié)調(diào)各種各樣的工具,包括基礎(chǔ)設(shè)施配置、代碼部署、監(jiān)控和更新等各種工具,功能非常全面,負(fù)責(zé)編排和組織這些資源的是所謂的Template(模塊),它是AWS Proton的一個(gè)非常重要的元素,包括Environment Template和Service Template兩種。
運(yùn)維團(tuán)隊(duì)負(fù)責(zé)創(chuàng)建Environment Template,用它來設(shè)置各種環(huán)境配置資源,從而部署一致的運(yùn)行環(huán)境。
同時(shí),運(yùn)維團(tuán)隊(duì)會(huì)創(chuàng)建Service Template,設(shè)置與Environment Template兼容的基礎(chǔ)資源,CI/CD工作流和監(jiān)控方面的內(nèi)容。它集成了常用的CI/CD工作流和觀察工具,除了有AWS自己的相關(guān)方案,比如CodePipeline和CloudWatch,也會(huì)有第三方的工具。
開發(fā)團(tuán)隊(duì)使用Service Template來部署應(yīng)用,如果開發(fā)者有了寫好的代碼,將代碼與Service Template關(guān)聯(lián)起來,后續(xù)工作就由AWS Proton自己完成,它會(huì)自動(dòng)調(diào)用Service Template里相關(guān)的AWS服務(wù)和參數(shù),自動(dòng)把代碼交給CI/CD工作流來編譯、測試和部署。
部署完成后,AWS Proton會(huì)持續(xù)監(jiān)控應(yīng)用的運(yùn)行狀態(tài),如果后續(xù)Service Template有改動(dòng),AWS Proton會(huì)讓原來使用這個(gè)Template的應(yīng)用按照新的Service Template升級到新版本,整個(gè)過程都處于監(jiān)控狀態(tài),如果新應(yīng)用有問題,可以進(jìn)行回滾。
AWS Proton也是一個(gè)重磅級的發(fā)布,它能改變?nèi)萜骱蚐erverless應(yīng)用的部署和迭代方式,在一致的基礎(chǔ)設(shè)施平臺上支撐成千上萬個(gè)微服務(wù)和Serverless應(yīng)用平穩(wěn)運(yùn)轉(zhuǎn),它能改變開發(fā)和運(yùn)維的工作狀態(tài),讓開發(fā)者和運(yùn)維人員各司其職,相互不影響。
目前處于預(yù)覽狀態(tài),不是特別的成熟,但大致框架是完善的。(全文分為上中下三篇,此為中篇,上篇鏈接如下 AWS容器云原生三大發(fā)布之Docker Hub的免費(fèi)替代品 )