关于td站的一些技术细节

之前写过一篇文章, 说过一些关于td站的总体构想, 今次, 我主要想说一说技术方面的细节。

server

这些不需要解释吧, 都是很常规的东西。

program

这些东西大概也不需要解释。

其它工具

git

整个代码管理、持续集成系统、自动测试系统都是以git为核心的。

这些内容稍后会详细讲。

cron

项目中有很多定时任务, 比如定时更新代码, 定时更新统计信息。

这些内容稍后会详细讲。

curl

在bash脚本中通过curl来调用一些web api。

make

由make完成代码的自动构建。

各个辅助系统

自动更新代码

每天凌晨3:00(这个时间还在考查中), 自动启动更新代码任务, 这一部分由cron启动。

首先从git中更新代码。 如果发现新的测试分支, 自动部署测试环境。

然后启动自动编译。 比如将CoffeeScript编译成JavaScript, 以及将lesscss编译成css。 这一部分依赖make自动构建。

更新完成后, 会发一份详细的报告到我的E-mail, 发一份简略的报告通过手机短信到我的手机。

自动部署测试环境

在从git中更新代码时, 如果发现以feature或release开头的分支, 则自动部署测试环境。

每个测试分支对应一份独立的测试环境, 包括:

feature分支与release分支唯一的区别在于, feature分支使用独立的数据库, release分支使用于正式环境相同的数据库。

自动更新统计信息

有一些统计信息, 每次发生变化的时候都重新统计, 过分的碎片化, 浪费系统资源。

定时进行统计, 可以节约一定的系统资源。

缺点是统计信息不够实时。

目前, 此功能是每5分钟启动一次, 所以统计信息最多有5分钟延迟。

具体几分钟启动一次此功能, 还需要详细地调研, 在性能和用户体验之间找到一个平衡点。

统计用户信息是由cron和curl共同完成的。

目录啦啦啦