部署 Web 应用程序的最佳实践

Best practice to deploy a web application

我正在构建一个全栈网络应用程序。我在前端使用 Vue.js,在后端使用 Spring Boot,在数据库使用 PostgreSQL docker 容器。但是,我很好奇一旦我完成了 Web 应用程序的开发,我应该在哪里以及如何部署它。

我在下面列出了我的问题:

谢谢!

  1. 选择云提供商可能基于许多因素:价格、他们提供的服务、熟悉程度等等。

  2. 问题不应该是“我应该单独部署 FE 和 BE”,而应该是:“对于我的应用程序来说,分别部署和一起部署它们有什么权衡”。当代码增长并变得更加成熟和不同 people/teams 工作时 - 将 BE 与 FE 分离是有意义的,但如果它是一个人的宠物项目,那么将它们部署在一起在操作方面更简单(你例如,不必协调部署)。

  3. RDS 支持 postgres,您不需要“在 RDS 上部署您的 postgres docker”,而是旋转一个带有 postgres 的 RDS 实例

1.Before部署一个网络应用程序除了成本,这些是你应该考虑的事情

  • 对于应用程序开发,选择PaaS。基础架构由供应商管理,让您有更多时间专注于您的应用程序代码。
  • 对于应用程序开发,选择一个支持应用程序手动和自动水平缩放的平台。
  • 对于新建应用程序,设计无状态的应用程序。
  • 对于遗留或现有应用程序,选择支持有状态和无状态应用程序的 PaaS 提供商。
  • 选择一个可扩展的数据库,该数据库位于与您的应用程序代码不同的服务器或容器上。然后就可以独立扩容数据库了。
  • 选择一个云提供商,使您能够在全球多个地区部署和扩展您的应用程序基础设施。
  • 使用基于 REST 的 Web 服务进行开发。
  • 选择满足上述所有要求的云提供商,并在平台中添加集成持续集成和持续交付工具的功能。
  • 避免被供应商锁定。

2.One 在我们谈论 Web 开发过程时出现的问题是,将前端-后端保持在一起有用还是应该将它们分开。

就个人而言,您不必为不同的组件使用不同的服务器。即使您只有一个组合服务器,它也会非常有效地工作。

如果您的单个组合服务器无法处理来自访问者的大量数据库请求和 Web 服务器请求,请优化您的后端和前端代码并规范化数据库,即使在这样做之后,如果有没有达到你预期的效率提升,那么你只需要使用两台服务器来提高你的效率。

不同用途的不同服务器的问题是成本和管理。您必须支付双倍的费用(在大多数情况下),因为您为两台服务器支付一台服务器的费用。管理两台服务器相当困难,如果您的应用程序足够大,您可能需要任命多个服务器管理员。

我更喜欢使用单个组合服务器,对于大规模使用,我更喜欢在不同服务器上只使用一个数据库,并且在单个服务器上同时使用前端和后端服务器。