|
我有一个经验,流程中凡是有人类手工参与的环节是最容易出错的。因此,尽可能减少流程中人的参与是产品质量的有效保证。(手工劳斯莱斯除外)' g( _5 G# w* ] }* C
) h5 S+ c, y% v; A5 w, V3 n. A; y2 ^ 我又有一个经验,执行系统升级/回滚这样的关键操作时,要严禁手敲键盘一条条输入命令,而应该在pre-production环境下编写好命令手册,用复制粘贴的方式一步步来或者直接上脚本,原理见上一条经验。(Windows系统除外)0 c. j# y8 j: M, X+ @5 d
+ W! `5 @3 o% w( Z/ M 我又又有一个经验,上面这两条你肯定知道,如果你还没这么做,肯定是客观环境不允许。(这条没例外)
9 w* M/ g( g {% r" d0 H: z
1 N4 ]! q7 q; l 续断研发团队一直在以最严格的流程迭代产品!然而,开始时并不是因为我们天生骄傲,而是老板不肯多招人……好吧,说正题,隧道稳不稳最重要还是产品稳不稳。续断研发团队做了这些工作,尽可能让产品“稳”如泰山。: I7 R9 |* U0 R {/ Q; J( V
9 A6 M2 n( y' P* t/ t# V
核心功能10倍测试代码 L H0 q! K0 t( j) k
$ o4 {$ Z/ u( {9 ~( h. _
对C/S架构的产品来说,自动化测试实现起来要复杂一些。续断有213个测试用例涵盖隧道功能测试,隧道压力测试,客户端安装卸载,用户注册,充值,扣费等关键功能。按照代码行数粗略计算,每行核心代码有10行测试代码来保证质量一致。这213个测试用例哪里来的?坑踩的多了,攒的……6 \# F2 P1 t: D# }* [6 \1 z$ i
3 `9 f, U7 t' |# ~3 h6 ]0 J P
7 {0 t6 a! t. A
+ a3 U: V7 Y& T k l, `
40000次自动测试+ I# n' _3 ?( X4 ^
0 x% M* _7 V0 L% F( p" _
200台测试设备╳每台设备213个测试用例≈40000次自动测试。
# E$ Q4 S$ j x9 K% ~% f, K$ M2 C5 P5 w
190台OpenStack虚拟机,外加树莓派,香橙派,极路由,360路由,小米路由Pro,威联通,少量PC,笔记本电脑等。测试环境涵盖下表各类操作系统和版本,pipeline细致而繁杂,只有全部通过流程才会继续。9 s; i2 B9 k# ]* [* L4 J
7 v0 L" H0 P( Z- j6 Z* m, |$ ?# ]
# b0 @- G: S2 y) l. L
: r4 R [2 m Q8 r! S% p 
9 K& b! X+ I F( p' w* n7 P% {$ B6 O$ P( H; }
升级/回滚3分钟,影响用户几秒钟; P: Q. V Q# }) X* H2 E
# m ^& {% X. N& x% N7 g' b+ A7 o 深度应用CI/CDDevOps,Issue——Master——Pre-Production——Production,层次分明,验证充分。全容器化的服务端架构,让我们能在3分钟内完成对全球范围100多个续断服务器节点的升级/回滚,用户有感知的影响被控制在数秒钟以内。是的,”小个位数”秒以内,以至于让用户阅读升级公告都显得浪费时间,所以就不发公告了。! z8 P6 r0 h7 x1 ~
) w" c5 N {0 ] 另外0 p% ~0 X6 X, S1 Z; i) M
) z- n1 \/ W; A: x, V* N9 k 哲西信科官网www.zhexi.tech。我懂,这些都是常规操作,单讲数据的话被某某某一个朋友公司的产品碾压是分分钟的事。但摆数据不是为PK,而是要让我们续断的用户放宽心。续断是老司机开车,稳得狠!还没完,我们老板说了,“南来的北往的有疑问就请在评论区留下,都是程序员,我们踩过的坑不想看别人踩一遍,有必要可以给代码,帮到家”云云……不过我们老板有个特点是说话不算话,你老板不会恰巧也这样吧?3 K7 ` l7 c. d1 _. w
8 U* C3 L( a0 y3 J; i
6 d2 M# B1 v; N
# j- p) [# P3 L, v$ N& N' T |
|