如何进行React + Nodejs生产部署?

3

我正在尝试了解如何使用Docker部署Web应用程序并进行生产级别的部署。

我使用React作为前端,Node.js作为后端制作了一个Web应用程序。 我使用Mangodb作为数据库。

我使用代理连接了前后端,以便它们开始相互通信。

Web应用程序按照我构建的API路由到前端,工作良好。

我的目标:

使用Devops和CI/CD流水线进行部署。

通过我的研究,最佳选择是:

  • 使用Docker
  • 使用Circle CI与Docker

但我仍然没有找到如何部署整个Web应用程序的方法。

我应该使用Docker部署前端和后端,并设置GitHub操作吗? 这是部署应用程序的正确方式吗?如果是,前端和后端如何进行通信?

选项:使用Docker部署前端和后端,并找出它们如何彼此通信的方法。

我的最后一次经验是在Heroku上部署后端,并在前端中使用该链接作为代理,在Netlify上部署前端。

选项2:使用Circle CI和Docker组合来部署前端和后端。

有人可以建议最佳方法来解决这种情况? 最佳资源在哪里可以查找使用Devops工具部署整个Web应用程序。

谢谢


你想/需要分别部署前端和后端吗?你想/需要将它们分开托管吗?如果不需要,那就简单点,从你的nodejs服务器上提供前端构件。 - Bergi
@Bergi 不一定,因为这是我第一次尝试使用DevOps进行部署和构建流程,所以我认为这可能是我之前使用Docker、仅使用Heroku和Netlify进行部署的方式。 - Learn-code
@Bergi 我正在尝试寻找一种进行生产级部署的方法,并尝试找到最佳方式,使用Docker似乎是可行的,我很乐意听取建议。谢谢。 - Learn-code
1个回答

0

我想分享我的经验,这可能对你的问题有些帮助。

你是否使用任何 AWS 服务? 对于我们的项目,我们正在使用 AWS。为了部署前端应用程序,我们将它们托管在 S3 存储桶中,并使用 CloudFront 作为边缘位置来提供请求。对于后端,我们使用基于 EC2 启动类型的 ECS 集群。对于后端部署,需要使用 Docker 将每个应用程序镜像容器化,并在 ECS 集群中创建任务。

为了使用 CI/CD,我使用 GitHub、GitHub Web Hook、CodeBuild 和 CodePipeline。如果通过拉取请求进行任何提交,则通过 Web Hook 识别此类更改,然后运行 CodeBuild 和 CodePipeline 来构建和部署更改到相关环境。


1
感谢您的输入,我对我们用于部署的技术并不特别在意,但我已经构建了一个基本的Web应用程序,并尝试进行部署以了解CI/CD和Docker的使用。 - Learn-code
很好,我刚刚发布了答案,让你获取一些知识并分享我的经验。 - Kavindu Vindika
谢谢你的回答,我现在明白如何使用AWS了。 - Learn-code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接