当前位置: 首页 > 知识库问答 >
问题:

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

阎咏思
2023-03-14

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

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

    < li >我应该在哪里部署我的全栈应用程序,如AWS、GCP、Hiroku或任何其他平台。 < li >部署我的前端、后端和数据库的最佳实践是什么?比如,我应该在一台服务器上部署前端,在另一台服务器上部署后端吗?如果我在不同的服务器上部署前端和后端,它们如何相互通信?还是应该部署在同一个服务器上? < li >我应该在哪里部署Postgres Docker容器?我知道在AWS中有一个名为RDS的服务,但是我如何在我的Postgres Docker容器中使用它,或者有更好的方法吗?

谢谢大家!

共有2个答案

裴理
2023-03-14

>

  • 选择云提供商可能基于许多因素:价格,他们提供哪些服务,熟悉程度等等。

    问题不应该是“我是否应该分别部署FE和be”,而应该是:“对于我的应用程序,分别部署它们与一起部署它们之间的权衡是什么”。当代码增长并变得更加成熟,不同的人/团队在其上工作时——将BE从FE中分离出来是有意义的,但是如果它是一个人的宠物项目,那么将它们一起部署在操作上更简单(例如,您不必协调部署)。

    RDS 支持后记,您不会“在 RDS 上部署您的后滞程序”,而是旋转带有后滞的 RDS 实例

  • 严柏
    2023-03-14

    1.在部署除成本之外的Web应用程序之前,您应该考虑以下事项

      < li >对于应用程序开发,选择PaaS。基础设施由供应商管理,这让您有更多时间关注应用程序代码。 < li >对于应用程序开发,请选择支持应用程序手动和自动水平扩展的平台。 < li >对于绿地应用,设计无状态的应用。 < li >对于传统或现有应用,选择支持有状态和无状态应用的PaaS提供商。 < li >选择一个可伸缩的数据库,该数据库位于与应用程序代码不同的服务器或容器上。然后,您可以独立地扩展数据库。 < li >选择能够让您在全球多个地理位置部署和扩展应用基础设施的云提供商。 < li >使用基于REST的web服务进行开发。 < li >选择一家能够满足上述所有要求的云提供商,并在平台中添加集成式持续集成和持续交付工具。 < li >避免被供应商锁定。

    2.当我们谈论Web开发过程时,出现的一个问题是,将前端 - 后端放在一起是否有用,或者应该将它们分开。

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

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

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

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

     类似资料:
    • 所以我有一个Web应用程序,其中前端是用React编写的,后端是用NodeJs/NestJ编写的,并且处于部署应用程序的阶段。我有一个运行Ubuntu的Linode服务器,我最初的想法是安装Docker 那么,这是设置应用程序的好方法吗?这种设置有什么利弊吗?除了因为需要服务器数量而定价之外?或者还有其他更有益的选择吗? 提前致谢。

    • 问题内容: 哪个是Java的最佳框架?我在寻找类似于Symfony的php和Ruby-Rails的Ruby吗?我什至不知道Java是否存在这样的东西。 问题答案: 有许多很棒的Java Web框架,但是如果您要寻找与Rails类似的东西,请查看Grails。它使用动态语言Groovy,但是使用Java VM。 查看他们的快速入门,确定它是否是您想要的。

    • 问题内容: 我正在研究可用于Java Web应用程序的最佳免费邮件库。它具有更多的支持并且易于使用。如果它很复杂,但可以通过其出色的功能证明其合理性,那就可以了。 有什么建议吗? 问题答案: “最佳”是主观的,尤其是因为您没有指定可能需要的任何特定功能。 话虽如此,以下是几个让您入门的方法: 简单Java邮件 -建立在JavaMail之上,简化了API以产生正确的电子邮件 Commons Emai

    • 我是云提供商的初学者,我有一个网站要部署。该网站使用PHP、HTML、CSS和Javascript创建,并使用在NodeJS上开发的API访问数据库。 有没有办法在一个AWS弹性豆茎应用程序上部署所有这些(Inteface+NodeJS API)?或者我应该只在AWS Elastic Beanstalk上部署API,而将网站的界面与其他AWS解决方案一起部署,例如Amazon S3上的静态网站。

    • 我有一个用Tapestry5(javawebframework)和Hibernate制作的web应用程序。现在我尝试添加乐观锁定。所以我添加了一个版本属性,乐观的锁定可以工作,所以这很容易,很快。 但是,由于我的web应用程序使用“每个请求一个会话”模式,我不确定利用这种乐观锁定的最佳方式是什么。 发生了什么: 用户 A 打开包含表单的页面,该表单加载了来自实体 A(版本 1)的值。 UserB打

    • null 我已经对应用程序进行了编码,并创建了一个标准ear,其结构如下 app.ear _lib(具有所有必需的JAR,如公共日志) application.xml:- 现在,当我用JBoss7的管理控制台部署这个ear时,web模块似乎已经部署,甚至页面也被点击了。但是,我试图将EJB注入到servlet中的应用程序的另一部分(作为使用@EJB的实例变量)失败了。 我部署应用程序的方式似乎有些