git - 部署 sails.js 应用程序的最佳方法是什么?

标签 git bitbucket sails.js multiple-instances

我正在开发一个使用 sails.js 作为后端的 Web 应用程序。该应用程序将由不同的学校使用,我的第一个方法是为每所学校部署一个应用程序实例。

例子:

school1.application.com 在 school.application.com:8080 上有一个 sails 应用实例 school2.application.com 在 school.application.com:8081 上有一个 sails 应用实例

每个实例都有一个 Bitbucket 存储库(或分支),并且使用 Git 更新源。

出于维护目的,我正在考虑使用与所有 Git 存储库连接的仪表板并从那里管理所有推送。

另一方面,所有学校只有一个实例更易于管理,但我如何为每个学校使用单独的数据库?当有大约 20 所学校时,使用一个 DB 不会太冒险吗?

使用第二种方法,如果申请失败,所有学校都会受到影响,而不是第一种。

我希望我的解释很清楚。

感谢您的见解。

最佳答案

sails 应用程序将托管在哪里?由你?即 Nodejitsu、亚马逊等。或者该应用程序将部署在学校服务器上?

  1. 方法:如果您要托管应用程序,您可以制作一个应用程序并部署一次。将学校添加为模型并在所有用户之间建立关系。即:

    // Student.js model
    
      module.exports = {
    
        attributes: {
    
          name : { type: 'string' },
    
          lastname : {
              type : 'string'
          },
    
         // School which the student belongs
         school : {
           model : 'school'
         }
    

这样一来,您只需制作一个 api 来管理所有这些,并为您的客户提供一个具有日志访问权限的单一 URL。您可以使用 mongo 或 SQL,因为 Waterline 不关心您的数据库,只在您的模型之间建立良好的关系。 检查水线和模型文档:https://github.com/balderdashy/waterline-docs/blob/master/associations.md

  1. 方法: 您可以为每个学校独立部署,并只使用一个数据库来管理它们,但请务必避免每次部署时都删除所有数据的风险,sails 会询问您是否要删除所有数据在数据库中或更改数据(请小心,因为这是一项实验性功能)。

  2. 方法: 使用他们自己的数据库独立部署您的分支机构(如果学校将托管该应用程序,这是最好的方法),并且只需为每次部署更改 config/connections.js。如果您不想在需要进行维护或实现自定义功能时关闭所有用户,这种方法是最好的,但您需要做更多的工作,因为您将分别维护 20 个实例。

我推荐你第一种方法。

关于git - 部署 sails.js 应用程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25362746/

相关文章:

python - PIP hg+ 和 git+ 总是下载包而不是检测满足的要求

curl - 如何使用 curl 创建 bitbucket 存储库?

ssh - 警告 : UNPROTECTED PRIVATE KEY FILE! 使用 Bitbucket 管道和 SSH

git - aws.push 不起作用

git - 在提交中恢复对文件的更改

git - Laravel Forge 无法部署“fatal : empty ident name (for <name@name. localdomain>) 不允许

mysql - Sails 不创建 mysql 表

node.js - 等待函数结果

javascript - Sails.js 对关联值的查询

git - 在GitHub Action工作流中进行推送或 merge 之前,如何获取上一次提交?