让交付的速度
跟上思考的速度
潘捷
赵君
半年前 Qcon Beijing
半年前 Qcon Beijing今天 Qcon Hangzhou
今天 Qcon Hangzhou
今天 Qcon Hangzhou
PV x 2
今天 Qcon Hangzhou
20亿/月
12名
每日上线
每日上线
每日上线
PM不再追问什么时候能上线
每日上线
PM不再追问什么时候能上线
恐怖的错误开始变少
每日上线
PM不再追问什么时候能上线
恐怖的错误开始变少
对互联网的高速变化完全适应
1.如何做到每日上线?
2.如何保证网站稳定?
1.如何做到每日上线?
如何做到每日上线?
[不同环境开发照片]
集中开发环境
如何做到每日上线?
经验:
如何做到每日上线?
集中开发环境
不用担心环境不同引起的问题
如何做到每日上线?
集中开发环境
不用担心环境不同引起的问题
开发过程对产品透明,随时测试
如何做到每日上线?
集中开发环境
不用担心环境不同引起的问题
开发过程对产品透明,随时测试
整个公司都可以看到!
透明
如何做到每日上线?
集中开发环境
透明
如何做到每日上线?
集中开发环境
“把大象放进冰箱”
如何做到每日上线?
如何做到每日上线?
SVN无分支
如何做到每日上线?
经验:
SVN无分支
如何做到每日上线?
把case切小,迭代加快
SVN无分支
如何做到每日上线?
把case切小,迭代加快
commit之后其他人会发现
SVN无分支
如何做到每日上线?
如何做到每日上线?
经验:
让所有人坐到⼀一起
如何做到每日上线?
经验:
让所有人坐到⼀一起
如何做到每日上线?
让所有人坐到⼀一起
很多事就自然发生了...
如何做到每日上线?
如何做到每日上线?
测试驱动开发
如何做到每日上线?
测试驱动开发
如何做到每日上线?
经验:
测试驱动开发用户
如何做到每日上线?
经验:
测试驱动开发用户
产品
如何做到每日上线?
经验:
测试驱动开发用户
产品
公司其他人
如何做到每日上线?
经验:
测试驱动开发用户
产品
公司其他人
所有网站用户
如何做到每日上线?
经验:
2.如何保证网站稳定?
如何保证网站稳定?
线上错误
如何保证网站稳定?
线上错误
上线时间
如何保证网站稳定?
如何保证网站稳定?
在清醒时上线
经验:
如何保证网站稳定?
最快定位错误
如何保证网站稳定?
错误让所有人知道
经验:
避免Hotfix出错
如何保证网站稳定?
避免Hotfix出错
如何保证网站稳定?
语法错误
避免Hotfix出错
如何保证网站稳定?
语法错误
php -l
避免Hotfix出错
如何保证网站稳定?
语法错误
php -l
逻辑错误
避免Hotfix出错
如何保证网站稳定?
语法错误
php -l
逻辑错误
curl
避免Hotfix出错
如何保证网站稳定?
用工具保证
如何保证网站稳定?
经验:
性能隐患
如何保证网站稳定?
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
$this->result = mysql_query($this->sql, $this->connection);
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
$this->result = mysql_query($this->sql, $this->connection);
$ms = $slowLogger->stop();
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
$this->result = mysql_query($this->sql, $this->connection);
$ms = $slowLogger->stop();
if ($ms > 499)
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
$this->result = mysql_query($this->sql, $this->connection);
$ms = $slowLogger->stop();
if ($ms > 499)
$slowLogger->log($this->sql);
如何保证网站稳定?
性能隐患
在线记录DB, Search慢查询
$slowLogger = new SlowLogger();
$slowLogger->start();
$this->result = mysql_query($this->sql, $this->connection);
$ms = $slowLogger->stop();
if ($ms > 499)
$slowLogger->log($this->sql);
如何保证网站稳定?
性能隐患
$slowLogger->log(
$this->sql, debug_backtrace()
);
Count Max Time Backtrace Detail
445 2433
Data::query
Data::load
Ad_Ctl::index
Select `id` ....
http://shanghai...
363 4224
Data::query
Data::find
Ad_Ctl::search
Select `id` ....
http://hangzhou...
自动化统计
如何保证网站稳定?
自动化
如何保证网站稳定?
经验:
总结:
总结:
用户测试驱动开发
总结:
用户测试驱动开发
用自动化保证稳定
Q&A