2011-12-08 59 views
2

我現在對生產Web應用程序非常舒服。我在後端使用NodeJs堆棧,並且前端通常具有相當數量的Javascript。我真正缺乏理解的部分是部署過程。部署/構建/製作Web應用程序的基礎知識是什麼?

什麼是典型的部署過程?

從我所聚集在我讀部署/編譯過程可以包括幾個任務:

  • 奔跑穿過單元測試套房
  • 串聯腳本和CSS文件
  • 版本編號您的應用程序
  • 追蹤模塊依賴性(node_modules)
  • 它推到遠程回購(GitHub上)
  • 指示「分期」服務器拉下最新的回購
  • 指示「生產」服務器拉下最新的回購


這都讓我有點不知所措。我不知道我是否應該爲自己的項目進入這個細節層面,看起來很多工作!我正在使用Sublime Text 2 IDE,它似乎有Build Script process,這適合嗎? 如何協調所有這些獨立的任務?我想象的是,他們都會在一個開關的動作下運行。

對不起,有很多問題,但我需要知道人們是如何學習類似的原理。我的一些要求可能特定於NodeJS,但無論您正在開發什麼樣的堆棧,我都確信這些進程是相似的。

回答

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

2

首先,讓我們來拆分作業二:前端後端東西。對於這兩者,你確實需要某種制度體系,但是他們的目標和範圍卻大相徑庭。

對於前端,您希望您的源代碼儘可能小;連接/縮小JavaScript,CSS和圖像。我的一個同事寫了一個「編譯器」,Assetgraph,爲你做這個。它有一點點滲透的學習曲線,但它確實爲您的代碼帶來了奇蹟(我們的開發版通常爲〜20 megs,產品爲~500 k)。

至於後端,你想包含,輕鬆管理某種類的包。我們將我們的東西重新打包成debian包。只要makefile連接正確,就會免費獲得許多無聊的構建和部署時間。這是我的(前NPM 1.0)Debianizing node programs。我在NPM和Github上看到了其他的方式來做這件事,但我沒有看過它們,所以我不能說它們的質量。

對於測試/部署/部署,我們使用Debian軟件包檔案,git-hooks,Jenkins-服務器以及其他不太複雜的組合。儘管我強烈建議使用這些平臺的本地軟件包管理器來推出這些東西,但它可能有點過分。總而言之,我們通常會自動部署分期(每個git push),或半自動部署不穩定的代碼庫。生產部署總是明確地完成。