写点什么

你的架构升级是靠故障驱动?还是规划驱动?

  • 2020-04-16
  • 本文字数:1803 字

    阅读完需:约 6 分钟

你的架构升级是靠故障驱动?还是规划驱动?

每个季度末,我都会抽出一周的时间与团队核心人员逐一谈心,一来帮助他们舒缓下疲劳的情绪,二来给大伙创造一个吐槽的环境。


在以往的谈话中,我会有意识的避免总结与回忆,多聊一些与畅想未来相关的话题,为什么呢?因为时间是无法逆转的,过去就是过去了,与其强忍尴尬回忆过去,不如试着畅想未来,让气氛变的更轻松,至少这种方式使得整个谈话过程笑声变多了,苦瓜脸变少了。


今天在与某架构师谈话中,他的某些观点却让我感到有些意外。为什么呢?我们都聊了些什么?


我整理了他的内容,大致是觉得系统架构升级的驱动力多半来自于故障,比如 2012 年 11 月 11 日,各大电商风云大战,淘宝网和京东网虽做足准备,但还是由于流量太大导致服务器瘫痪。回望自己,虽说会做一些高可用测试,也确实能在测试阶段发现大量性能、高可用的潜在问题,但基本都浮于表面,我说的不对吗?还记得半年前的机房迁移吗?做足准备了吧,那为什么结果还是被冲了个七零八落呢?


他接着说,说完技术,再来说说人,由于 “客观原因”,我们的架构师在高可用,在分布式,甚至在自动化方面都缺乏经验,除非高薪聘请大咖加入,想要通过自身规划得到稳定、高效的技术架构,几乎没有可能。


这番话很实在,也很直接,让我当场有些措手不及。


仔细想想,有这样想法的架构师,或程序员不在少数,他们坚信自己系统升级的必要性来源于是否出现故障,只要认真且较真的抓住这次机会,修复他,搞定它,让他下次不再发生,我就是棒棒哒,至于那些还未发生的,就是不存在的,既然不存在,我怎么能知道?靠瞎猜吗?


不仅如此,他们始终相信,我没经验,就没法开展,至于什么未来规划,更是无稽之谈。也许这是遮掩自己的不足,找准时机展露自己是救世主的一种另类方式,但事实证明他们把自己定义为一名消防队员,而不愿意为成为一名规划者。


有人说了,架构的发展多半来自于业务的需要,现在业务放缓,现有架构也满足当前需求,那我还需要主动规划吗?我觉得,不仅需要,而且要加大投入,为什么呢?


我觉得,将产线发生故障作为架构升级驱动力的想法纯属鸵鸟思维,有些故障会导致业务一击毙命,还有然后吗?再说了,一般考验系统架构的最好方式是大流量,而有意思的是,流量这东西不仅不好预估,而且不确定性极强。为了应对这样的场景,所以我们常会听到架构师说,“我这东东是带自动扩展的,可大可小,可根据流量快速的自动调整。” 听上去真棒,但当真的 “狼来了",需要你在产线施展神通之时,咋哑火了呢?仔细一查,原来同时扩展小于十个节点没问题,大于十个节点就触发了某 BUG,其他都测了呀,就差这个场景没想到呀,你能怪他没好好测试吗?


所以,请收起那些可笑的想法,将明确的目标与实施路径写入规划,耗费上千次讨论,废弃数套环境,奉献半生精力,去执行,去折腾。



随着宏观经济与金融监管的风云突变,我曾在几个月前写过一篇有关 业务增速减缓后如何面对技术管理 的文章,而在这样的客观环境下,我们又是如何进行技术架构规划的呢?

寻找目标企业,不耻下问,关注细节

常听见某某人自夸,说自己认识这个,有哪个人的微信,这能证明啥?最多能证明你的社交能力强,人脉广泛,所交流的技术话题也多半偏向顶层设计,或概念构思,对实质性规划没什么太大帮助。


我所采取的是,将目标分拆为不同技术类型,比如分布式中间件,持续集成与交付,DevOPS 等,利用这些人脉关系,寻找行业内不同的目标企业进行学习,比如阿里的中间件团队,携程的持续集成与交付,带领小伙伴们登门拜访,不耻下问,关注他们的发展历程、技术选型及用人标准等细节。


每次都有收获,每次都会得到启发,今年许多版本的迭代均得益于这项方式。

构建适合自己的非功能性测试套路

按之前的方式,是否可以把某某年度的 OKR 定义成 “必须达成 A 系统 P0 级事故 3 次,并导致 10 台以上服务节点宕机。”,为啥这么定?逻辑很简单啊,事故级别越高,服务节点宕机数越多,架构设计的驱动力越大呀,哦耶!


如果技术负责人的脑子没被驴踢的话,不可能这样设定 OKR,那该怎么解决这个矛盾呢?


我所采取的是,建设随机破坏性故障演练系统,并制定模拟性场景演练,比如拔网线、丢包、I/O 不规则波动、消息阻塞等,由于曾写过一篇有关 随机故障测试系统 的文章,在这里就不详细介绍了。



当然,这些看似简单的思路,想要做到,并非易事,毕竟扯淡总是容易的,刷新认知才是最难的。


本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/j8veJRVJbZeNDDJwkjU50g


2020-04-16 17:311076

评论 1 条评论

发布
用户头像
1.登门拜访 2.随机故障演练,学习了,谢谢
2020-04-17 02:57
回复
没有更多了
发现更多内容

Apache ShardingSphere 企业行|走进汽车之家

SphereEx

数据库 企业 ShardingSphere SphereEx apache 社区

13-注解增删改查

爱好编程进阶

Java 程序员 后端开发

CRUD勿进,全身心投入才能读懂腾讯P8亲码的“Java微服务

爱好编程进阶

Java 程序员 后端开发

CTO 说了,用错 @Autowired 和

爱好编程进阶

Java 程序员 后端开发

Stack 顿悟三部曲(2):穿越虚拟内存的迷雾

蓬蒿

线程 cpu 堆栈 进程

《数字经济全景白皮书》Z世代用户洞察篇 完整版 发布

易观分析

Z世代

Stack 顿悟三部曲(1):从CPU的视角说起

蓬蒿

cpu 堆栈 计算机原理 stack

2021全网最全Activiti7教程02(Activiti7入门使用-欢迎收藏)

爱好编程进阶

Java 程序员 后端开发

快来跟20年京东T9架构师学习进阶微服务+Docker+Dubbo+SpringBoot

Java架构追梦

spring java面试 后端开发

CGBTN2111-DAY02总结复习

爱好编程进阶

Java 程序员 后端开发

显卡只是为游戏而生吗?GPU服务器了解一下

Finovy Cloud

GPU服务器 GPU算力

微服务实战文档分享,阿里内部的Spring cloud微服务精髓都在里面

Java架构追梦

Java 微服务 阿里

2年工作经验的Java程序员面试经历

爱好编程进阶

程序员 后端开发

架构师成长路线

架构师汤师爷

软件架构 架构师 成长路线

终于有人把tomcat讲清楚了!阿里大牛推荐的tomcat架构解析文档

Java架构追梦

Java 后端开发 JVM’

2021年4月23号,成功斩获阿里(Java岗

爱好编程进阶

Java 程序员 后端开发

CoProcessFunction实战三部曲之三:定时器和侧输出

爱好编程进阶

Java 程序员 后端开发

(JavaSE)数据类型变量与运算符

爱好编程进阶

Java 程序员 后端开发

BATJ关于Redis的高频面试真题

爱好编程进阶

Java 程序员 后端开发

区块链 重塑不良资产互信机制

CECBC

元宇宙核心技术--脑机接口

CECBC

耗时三年终于整理出了SSM+微服务+Nginx+Redis+MySQL的PDF了!

Java架构追梦

Java 后端开发

centos7的启动流程(systemctl)

爱好编程进阶

Java 程序员 后端开发

不愧是字节跳动技术官,算法精髓全写这本666页笔记里了

Java架构追梦

Java 程序员 数据结构与算法、

7Z命令行

爱好编程进阶

Java 程序员 后端开发

BAT华为等一线大厂Java工程师必读书单

爱好编程进阶

Java 程序员 后端开发

维权思考

成周

让 Rust 的 CI 加速 2~3倍速度

非凸科技

rust 构建 cl cithub 缓存空间

15 个优秀开源的 Spring Boot 学习项目,一网打尽!

爱好编程进阶

Java 程序员 后端开发

2021-11-9【数据结构平时实验】

爱好编程进阶

Java 程序员 后端开发

4年JAVA外包终上岸,我只能说避雷这些公司

爱好编程进阶

Java 程序员 后端开发

你的架构升级是靠故障驱动?还是规划驱动?_架构_头哥侃码_InfoQ精选文章