讀古今文學網 > 程序員必讀之軟件架構 > 部署 >

部署

這個部分提供軟件架構和基礎設施架構之間映射的信息。

軟件

線上環境是單個Rackspace雲服務器,因此下列所有軟件都通過Ubuntu高級包管理工具(apt,Advanced Packaging Tool)安裝到服務器。

  • Java 7(OpenJDK30 )(這需要加上Java加密擴展JCE的無限強度管轄政策文件31 ,通過Twitter的認證才能工作)。
  • Apache Tomcat 7。
  • MySQL 5.x。
  • MongoDB 2.2.x。

30 Sun公司構建的Java開發環境的開源版本。——譯者注

31 http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

構建「技術部落」

為了避免「在我這裡是好的」綜合症,以及確保構建是乾淨的和可重複的,所有發佈都由一個TeamCity32 免費版的持續集成服務器構建。build.xml腳本33 完成了所有編譯、運行自動化測試和創建發佈包等繁重的工作。

32 一款持續集成工具,包括服務器端和客戶端,目前支持Java和.NET項目開發,http://www.jetbrains.com/teamcity/ 。——譯者注

33 https://github.com/techtribesje/techtribesje/blob/master/build.xml

如果構建成功,構建腳本的最後一部分,是把發佈安全地複製「技術部落」的Rackspace服務器。

部署「技術部落」

「技術部落」所有的軟件都安裝在~techtribesje/buiulds目錄下,每個發佈一個子目錄34 。GitHub上有幾個腳本35 ,用來解壓一個發佈,通過symlinks36 切換版本,最後重啟進程。

34 https://github.com/techtribesje/techtribesje/releases

35 https://github.com/techtribesje/techtribesje-bin

36 維護符號連接的工具程序。——譯者注

部署一個新版本,或回滾到一個舊版本,只要簡單運行:

1    ~/bin/deploy.sh XYZ  

(XYZ是TeamCity持續集成服務器創建的構建版本號)

配置

Web服務器和內容更新器的配置文件是: + /etc/techtribesje-web.properties; + /etc/techtribesje-updater.properties。