|
我有一个经验,流程中凡是有人类手工参与的环节是最容易出错的。因此,尽可能减少流程中人的参与是产品质量的有效保证。(手工劳斯莱斯除外)
" E( c% S* L! B1 z3 g
" V/ d0 V$ e" Z" j9 r; @ 我又有一个经验,执行系统升级/回滚这样的关键操作时,要严禁手敲键盘一条条输入命令,而应该在pre-production环境下编写好命令手册,用复制粘贴的方式一步步来或者直接上脚本,原理见上一条经验。(Windows系统除外)
. Q% e2 S# y# c8 M* |6 ~& o& L+ F: M% s+ ?" {2 K4 Y
我又又有一个经验,上面这两条你肯定知道,如果你还没这么做,肯定是客观环境不允许。(这条没例外): X- s- {$ ]+ P
/ P m1 f% @3 s/ D$ b# P( |
续断研发团队一直在以最严格的流程迭代产品!然而,开始时并不是因为我们天生骄傲,而是老板不肯多招人……好吧,说正题,隧道稳不稳最重要还是产品稳不稳。续断研发团队做了这些工作,尽可能让产品“稳”如泰山。3 g+ i- O P2 ^7 [: y1 K( j
9 E: b6 p3 U9 C* k+ k- _& v9 q$ _ 核心功能10倍测试代码
% k) ~/ [( G) z T6 W8 C' w3 F; s7 E
1 P! n* ~$ c% X, a7 g1 h R d 对C/S架构的产品来说,自动化测试实现起来要复杂一些。续断有213个测试用例涵盖隧道功能测试,隧道压力测试,客户端安装卸载,用户注册,充值,扣费等关键功能。按照代码行数粗略计算,每行核心代码有10行测试代码来保证质量一致。这213个测试用例哪里来的?坑踩的多了,攒的……
/ M" G* z) @$ j( ]/ J2 R9 l# A+ s: i, e' o) s
. f) P8 T7 h' [9 j6 Y
/ |" k4 R5 r3 ^5 I$ a 40000次自动测试/ x6 k, c8 S, p. u j9 l4 h' t: X
0 w, u4 J6 q* [* q9 P6 r 200台测试设备╳每台设备213个测试用例≈40000次自动测试。! D' l( a) T; G2 d7 g4 }
( X0 B! b, G+ q& _* u) ~3 B& \: e, W 190台OpenStack虚拟机,外加树莓派,香橙派,极路由,360路由,小米路由Pro,威联通,少量PC,笔记本电脑等。测试环境涵盖下表各类操作系统和版本,pipeline细致而繁杂,只有全部通过流程才会继续。# j2 v1 V8 ?2 o5 y) o2 t3 V. U; |
- S/ y5 u! A% q' |. p* c4 R . p: D' f4 C8 H1 c
4 H: P$ q& M0 F, w! d# T& H 
3 @: M5 c2 q4 a s" W
- ~# C, p3 d% F 升级/回滚3分钟,影响用户几秒钟
3 F3 {: ]2 v+ @' c5 E2 z1 N3 G7 O. q" o% @' o% b; p) B
深度应用CI/CDDevOps,Issue——Master——Pre-Production——Production,层次分明,验证充分。全容器化的服务端架构,让我们能在3分钟内完成对全球范围100多个续断服务器节点的升级/回滚,用户有感知的影响被控制在数秒钟以内。是的,”小个位数”秒以内,以至于让用户阅读升级公告都显得浪费时间,所以就不发公告了。
. ^8 a' V! G; y6 X' |
5 o! ^" P, R2 b) Q4 P8 _ 另外6 O/ l" z- ^& l1 y. t' o, X
: `4 A' Y. s2 L' m$ P! _' M 哲西信科官网www.zhexi.tech。我懂,这些都是常规操作,单讲数据的话被某某某一个朋友公司的产品碾压是分分钟的事。但摆数据不是为PK,而是要让我们续断的用户放宽心。续断是老司机开车,稳得狠!还没完,我们老板说了,“南来的北往的有疑问就请在评论区留下,都是程序员,我们踩过的坑不想看别人踩一遍,有必要可以给代码,帮到家”云云……不过我们老板有个特点是说话不算话,你老板不会恰巧也这样吧?
; @3 G/ s* [3 X# h$ w+ l5 [3 U% z9 ?% r5 U% s% |- N6 w
( w5 m/ O ~! o5 E4 c
( q$ P8 I9 W) g* d
|
|