這個部分提供軟件架構和基礎設施架構之間映射的信息。
軟件
線上環境是單個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。