我們已經成功從Ruby遷移& Rails到API Gateway &基於Lambda的以NodeJS編寫的微服務。如果您更喜歡NodeJS服務器(不使用微服務)或將Docker Containers Cluster與ECS結合使用,則可以使用相同的體系結構。
- 設置CloudFront的作爲將會讓所有的HTTP流量到你的應用領域代理(您可以映射DNS到CloudFront的CNAME)
- 在CloudFront的,你可以添加當前Grails應用程序爲默認的起源和行爲,這會使您的應用程序像今天一樣運行。
- 然後,您可以分別使用ECS來設置您的微服務架構,包括API網關和Lambda或NodeJS Web服務器或Docker容器羣集。 (請注意,如果您使用像MySQL這樣的關係數據庫,它還需要在Lambda,WebServer或Containers中正確放置新的服務器代碼,以便它可以訪問數據庫)
- 之後,您可以編寫新的功能邏輯和從CloudFront指向新應用程序一次覆蓋一個http子路徑。
下圖顯示了高層架構。
注意:在該圖中,它使用DynamoDB用於新的微服務,並且在遷移階段,您還可以使用適當的VPC,子網和服務器佈局連接到當前數據庫。
此外,您還可以從緩存靜態資產中獲得CloudFront CDN的好處以提高應用程序性能,並且您還可以使用Amazon發佈的免費SSL證書終止CloudFront中的SSL handhshake。
Ashan,我會接受你的解決方案,因爲它基本上可以幫助我離開應用程序,從字面上使反覆改變成爲可能。還有一個問題,您是繪製圖表還是AWS圖表? – zatziky
我在幾天前爲我進行的無服務器培訓課程繪製圖表。 – Ashan
我在想,如果我們想首先在NodeJs中做**請求驗證**,你會推薦我們什麼。驗證之後,我們會將請求傳遞給Grails。你會推薦與你的答案相同的方法嗎? – zatziky