首页 » 程序员必读之软件架构 » 程序员必读之软件架构全文在线阅读

《程序员必读之软件架构》部署

关灯直达底部

这个部分提供软件架构和基础设施架构之间映射的信息。

软件

线上环境是单个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。