我们已经成功从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