AWS新推出的容器化服務(wù)AWS App Runner,讓用戶可以將任何語言撰寫的網(wǎng)頁應(yīng)用程序和API,以簡單的方式部署到云計(jì)算中,官方提到,由于AWS App Runner使用起來非常簡單,即便缺乏管理容器和基礎(chǔ)設(shè)施經(jīng)驗(yàn)的團(tuán)隊(duì),也能通過連接程序代碼存儲(chǔ)庫,由App Runner將應(yīng)用程序打包成容器,部署到云計(jì)算。
AWS表示,容器已經(jīng)成為打包網(wǎng)頁應(yīng)用程序的默認(rèn)方法,但是即便提高了速度、生產(chǎn)力和一致性,但是容器開發(fā)工作流程仍然非常繁瑣。部署流程可能包含設(shè)置負(fù)載均衡器、域名、TLS,還要?jiǎng)?chuàng)建CI/CD工作管線,最后將應(yīng)用程序部署到容器服務(wù)。
雖然AWS Cloud Development Kit(CDK)提供了一套開放源碼軟件開發(fā)框架,讓開發(fā)者可以使用熟悉的程序語言,定義云計(jì)算應(yīng)用程序資源,而且CDK也提供高端組件,用戶可利用經(jīng)驗(yàn)證的默認(rèn)值設(shè)置云計(jì)算資源。但官方提到,雖然CDK所提供的樣板項(xiàng)目,非常適用于部署大型應(yīng)用程序,但是當(dāng)開發(fā)者只是想要部署和縮放單個(gè)容器鏡像文件的時(shí)候,這些工作又顯得太過麻煩。
AWS提供許多服務(wù)讓用戶細(xì)致地控制容器化應(yīng)用程序,但是官方表示,他們收到不少用戶要求,希望他們可以提供處理容器環(huán)境的配置和運(yùn)營的服務(wù)。因此AWS開發(fā)了App Runner,用戶可以將服務(wù)指向應(yīng)用程序的程序代碼,或是容器存儲(chǔ)庫,App Runner就能夠自動(dòng)執(zhí)行并且縮放云計(jì)算應(yīng)用程序,這個(gè)過程用戶不需要參與配置和管理基礎(chǔ)設(shè)施服務(wù)。
值得注意的是,App Runner將容器執(zhí)行實(shí)例的文件系統(tǒng)為臨時(shí)存儲(chǔ),文件皆為暫時(shí)性的,像是用戶暫停并且恢復(fù)App Runner服務(wù)時(shí),文件不會(huì)持久存在,無狀態(tài)應(yīng)用程序并不能保證,文件在單一請(qǐng)求的處理中會(huì)持續(xù)存在。
但是存儲(chǔ)的文件確實(shí)會(huì)在生命周期間,占用App Runner服務(wù)的部分存積分配,AWS表示,雖然無法保證臨時(shí)存儲(chǔ)的文件,可以在請(qǐng)求中持久保存,但是在特定情況下,這些文件的確會(huì)被持久存儲(chǔ),像是在處理請(qǐng)求時(shí),當(dāng)將來的請(qǐng)求可能需要使用這些文件,用戶則可以緩存應(yīng)用程序下載的文件,而這將可以加快之后請(qǐng)求的處理速度。
但官方又提到,用戶的程序代碼設(shè)計(jì),不應(yīng)該假設(shè)當(dāng)前請(qǐng)求的文件仍然存在,而且為了確保緩存,用戶應(yīng)該使用高吞吐量且低延遲,像是Amazon ElastiCache等內(nèi)存資料存儲(chǔ)。
AWS App Runner現(xiàn)在已經(jīng)在美東、美西和歐洲上線,亞太則在東京地區(qū)提供,用戶可以將App Runner、AWS管理控制臺(tái)與AWS Copilot CLI一起使用。