AWS新推出的容器化服務(wù)AWS App Runner,新服務(wù)讓用戶可以將任何語言編寫的網(wǎng)頁應(yīng)用和API,以最簡單的方式部署到云中,官方表示,由于AWS App Runner使用起來非常簡單,即便缺乏管理容器和基礎(chǔ)設(shè)施經(jīng)驗(yàn)的團(tuán)隊(duì),也能通過連接代碼儲(chǔ)存庫,由App Runner將應(yīng)用打包成容器,部署到云上。
復(fù)雜的流程:
容器已經(jīng)成為打包網(wǎng)頁應(yīng)用的新方法,但是即便提高了速度、生產(chǎn)力和一致性,容器開發(fā)工作流程仍然非常繁瑣。部署流程可能包含設(shè)置負(fù)載均衡、域名、TLS,還要?jiǎng)?chuàng)建CI/CD工作流水線,最后將應(yīng)用部署到容器服務(wù)。
雖然AWS Cloud Development Kit(CDK)提供了一套開放原代碼軟體開發(fā)框架,讓開發(fā)者可以使用熟悉的程序語言,定義云上應(yīng)用程序資源,而且CDK也提供高階組建。雖然CDK所提供的樣板項(xiàng)目,非常適用于部署大型應(yīng)用,但是當(dāng)開發(fā)者只是想要部署和縮放單個(gè)容器鏡像的時(shí)候,這些工作又顯得太過麻煩。
簡化流程(App Runner):
AWS提供許多服務(wù)讓用戶細(xì)致地控制容器化應(yīng)用程序,他們收到不少用戶要求,希望他們可以提供處理容器環(huán)境的配置和運(yùn)營的服務(wù)。因此AWS開發(fā)了App Runner,用戶可以將服務(wù)指向應(yīng)用的代碼,或是容器儲(chǔ)存庫,App Runner就能夠自動(dòng)執(zhí)行并且縮放云上應(yīng)用,這個(gè)過程用戶不需要參與配置和管理基礎(chǔ)設(shè)施服務(wù)。
臨時(shí)儲(chǔ)存:
值得注意的是,App Runner將容器執(zhí)行個(gè)體的文件系統(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ù)的部分儲(chǔ)存配置,雖然無法保證臨時(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等記憶體資料儲(chǔ)存。