要做就做健壮的应用

首先,这里应用包括web网站,手机app等等。

健壮的应用应该是可维护的,可自动恢复,可持续更新,可跟踪日志,可及时反馈。

先来看看目前项目的方式:

项目代码 + 自动部署

仅仅这样远远不够,存在的问题:

1)服务器如果重启,如何做到项目自动开始运行,而不是手动再部署一遍

2)正式环境下项目日志会每天不断增长,不利于以后日志的分析

3)正式环境下项目如果自己挂了,如何自动重启,如何给出通知

4)数据库如何自动备份

5)部署的时候如何自动测试

所以健壮的应用应该在项目一开始就解决上面的问题

目前我是这么做的

1) 使用脚本来启动应用服务,脚本放在服务器的自启动里面

2)使用log_rotation按天切割日志

3)使用monit自检查应用进程,如果挂了自行重启,并且给出邮件通知

4)使用<a href="https://github.com/meskyanichi/backup">backup</a>自动备份数据库

5)使用Git hooks在部署到production的时候自动测试

另外上述的功能在一个deploy的期间,自动完成。

至此,这样才是一个健壮的上线应用。