部署/构建/制作Web应用程序的基础是什么?

时间:2011-12-08 11:51:56

标签: deployment node.js

我现在对制作网络应用感到非常满意。我在后端使用 NodeJs堆栈,并且通常在前端有相当数量的Javascript。我真正缺乏理解的是部署过程。

什么是典型的部署流程?

从我在阅读中收集到的部署/构建过程可以包括几个任务:

  • 贯穿单元测试套件
  • 连接脚本和CSS文件
  • 版本编号您的应用
  • 跟踪模块依赖关系(node_modules)
  • 将其推送到远程仓库(GitHub)
  • 指示“暂存”服务器以下拉最新的仓库
  • 指示“生产”服务器下拉最新的回购


这一切都让我有点不知所措。我不知道我是否应该为自己的项目进入这个级别的细节,这似乎是很多工作!我正在使用Sublime Text 2 IDE,它似乎有一个Build Script process,这是否合适? 如何协调所有这些单独的任务?我在理想情况下想象一下,只需轻轻一按,就可以运行。

对不起这么多问题,但我需要知道人们如何学习类似的原则。我的一些要求可能是NodeJS特有的,但无论您正在开发什么样的堆栈,我都确定流程类似。

3 个答案:

答案 0 :(得分:2)

首先,让我们将作业分成两部分:前端后端。对于两者而言,你真的想要某种bulid系统,但他们的目标和范围却截然不同。

对于前端,您希望您的来源尽可能小;连接/缩小JavaScript,CSS和图像。我的一位同事写了一个“编译器”,Assetgraph,为你做这件事。它有一些渗透的学习曲线,但它确实为你的代码创造了奇迹(我们的开发版通常约为20兆,生产~500 k)。

对于后端,您需要包含的,易于管理的某种捆绑包。我们将我们的东西重新打包成debian-packages。只要makefile正确连接,您就可以免费获得大量无聊的构建和部署时间。这是我的(NPM前1.0)Debianizing node programs。我已经在NPM和Github上看到了其他方法,但我没有调查过它们,所以我不能谈论它们的质量。

为了测试/使用/部署,我们使用了一个相当复杂的Debian软件包 - 存档,git-hooks,Jenkins服务器组合。虽然我强烈建议使用平台的本地包管理器来推出东西,但它可能有点太多了。总而言之,我们通常会自动(在每个git push上)部署暂存,或者为不稳定的代码库自动部署暂存。生产部署总是明确完成。

答案 1 :(得分:2)

对于我使用asereje https://github.com/masylum/asereje

的资产

我最近在博文中记录了我的nodejs部署过程: http://pau.calepin.co/how-to-deploy-a-nodejs-application-with-monit-nginx-and-bouncy.html

答案 2 :(得分:1)

构建脚本确实听起来不错。

该构建脚本应该做什么?

  • 确保所有测试通过,否则立即退出
  • 将您的javascript和css文件连接成一个单独的js / css文件并缩小它们
  • 增加版本号(除非您决定手动设置)
  • 推送到远程仓库(通过git hook指示登台和生产服务器)

这至少是我的意见。

其他资源:

http://howtonode.org/deploying-node-with-spark
http://howtonode.org/deploying-node-upstart-monit
http://dailyjs.com/2010/03/15/hosting-nodejs-apps/
How to deploy node app depencies