[转]如何用故事的方式向你的老板讲清楚运维到底在干什么?
我是一名运维工作者,可是老板,决策者并非技术出身,并不理解运维,甚至曾经碰到过有人简单的理解运维为,就是看着电脑不宕机,网络不掉线。这时候运维的困难就来了,当我们需要资源做事情的时候,决策者会带着一脸的怀疑问我们为什么。
这时候我们用一些自认为时髦的技术词语告诉领导,我们要用虚拟化管理服务器,分布式解决大并发,自动化部署应用,智能化监控应用,你猜老板能否听懂?能否立马支持你的工作?事实是,当老板听不懂你在说什么的时候,是不会支持你的,或者支持力度很小。
我们需要给领导讲明白,运维是什么,做什么,运维如何做。为了给领导讲明白,我用如下一个故事作为开头。
我是一名养鱼专家,大王要买很多很多鱼,找到我给他养。我定睛一看,霍,还真是多,不是同一种鱼而是各种各样的鱼:
- 有的很弱,出水 10 秒就死
- 有的很强,一尾巴就能把鱼缸劈裂
- 有的很大,放在鱼缸转不过弯
- 有的很小,不仔细看看不见
- 有的食肉,可能吃掉其他鱼
- 有的食草,鱼缸要配上水草
- 有的很贵,养大能卖很多钱,当然是重点保护对象
- 有的较贱,我跑集市买的到
- 有的怕热、有的怕冷
- 有海水生、有淡水生
大王说了:
- 所有的鱼都必须健康活着
- 我想要那条都能及时给我
- 饵料和鱼缸你看情况购买
- 要是活得欢腾我会奖励你的!
1. 养鱼前的思考
这么多鱼,这么种鱼,我先想想要考虑的事情:
- 如有一万条各类鱼,我要怎么养?!
- 鱼儿病了,如何及时知道并看病?
- 我如何快速定位到大王要的鱼?
- 鱼缸突然碎了怎么办?
- 水蒸发少了怎么加水?
- 水热了,凉了怎么办?
- 鱼儿万一被偷了,怎么办?
- 鱼儿如何投食?
- 鱼儿大了,鱼缸放不下了怎么办?
- 要是突然暴毙,触电,中毒怎么办?
- 我这里地震、海啸、战争了,如何转移鱼?
- ……..
好累,要考虑很多情况!!
2. 跟大王要资源去
紧紧张张的我走到大王面前,开始诉说自己准备了很久的话语:
大王,要我给你养这么多鱼,我需要:
- 1 万个鱼缸,大小不一
- 1 万个人,每人养一条
- 1 万袋鱼食,有肉,有草
- 1 万吨淡水,1 万吨海水
- ……
但没等我说完,大王抡起棍棒,对我说:
….(骂我的脏话省略)就 1 千个鱼缸,50 个人,食料和水现买,少量预存,其他自己想办法….(骂我的脏话省略)
看来资源不是随便获取的,要在有限的资源下养活,养好这么多鱼,这可怎么办?
3. 痛定思痛后
不经一番寒彻骨,怎得梅花扑鼻香,经过一番思考和技术研究,我们决定采用如下一些技术方式科学养鱼。
3-1. 鱼缸虚拟化
- 将普通的鱼缸,再加上玻璃隔断,使其隔离成大小不一的空间。
- 将中小型的鱼先放到这些隔断中养。
这种方式的优点:
- 解决了正常鱼缸养小鱼浪费问题
- 隔离鱼缸安装比正常鱼缸安装更快速。变成了对正常鱼缸添加隔断的过程
3-2. 冷冗余
这个鱼缸坏了怎么办,我要准备一个备用鱼缸,随时可以用来替代损坏的鱼缸。
- 优点:容易操作,鱼缸准备数量少
- 缺点:不适合离开水就死的鱼,需要花时间转移鱼
3-3. 热冗余 – 镜像技术
准备一个鱼缸,利用技术生成一个和母体几乎一样的镜像鱼,要求:
- 镜像鱼能外出展览,不是原始真鱼
- 生长和母体鱼基本同步
- 如果母体鱼阵亡,可以利用镜像再造技术还原一个
- 优点:每条鱼都有副本,不怕突然暴毙阵亡
- 缺点:鱼缸的消耗要 X2,对应的其他成本都上升
3-4. 集群养鱼法
对于那些极为贵重的鱼,不能有半点闪失,因此,我希望能利用技术,再生个鱼,要求:
- A 鱼生长,同时 B 鱼也会生长,
- B 鱼生长,同时反馈到 A 鱼上
- A/B 死亡,另一只不会跟着死
我还希望对 A 或 B 制作一个镜像(副本)
- 镜像鱼能外出展览,不是真鱼
- 生长和 A/B 鱼基本同步
- 如果 A/B 都阵亡,可以利用镜像再造技术还原一个 A
- 优点:最大限度的保障贵重鱼的安全,防止非正常死亡的损失。
- 缺点:多消耗一些鱼缸,食料等,技术难度不大但实现繁琐。
3-5. 分布式养鱼法
有一些鱼,生长很快,几个月就大到鱼缸放不下了,这种鱼,大王是拿不动的,要也只会要鱼的一部分,如何养这种鱼呢?
- 大鱼分割,头身肚尾分开放到小鱼缸
- 要保障整体生长协调性,不长偏
- 鱼再大还可以继续切割更细
3-6. 分布式集群养鱼法
这是分布式养鱼法的扩充,为了防止某个分体部分突然腐烂,要准备其副本,要有个分布式管理者掌控鱼的分布,要有个分布式鱼监控者,掌握鱼各部的生长。
- 优点:真正解决了鱼超大,又死贵的管理问题
- 缺点:实现难度大,需要技能多,资源消耗多
4. 这么多鱼如何养
鱼太多,依赖人工养育显然不合适,我需要考虑自动化完成这些事情。因此自动化投食,自动化监控,自动化迁移,自动化捕捞等技术相应上线。
5. 这么多鱼缸如何管理
鱼缸太多,依赖人工进行管理,显然也太累,因此,自动化鱼缸管理系统上线:
鱼缸资源池 ->鱼缸初始化 ->鱼缸编排 ->鱼缸监控 ->交付
6. 自动化养鱼之后
当我的自动化养鱼技术成熟后,是不是可以对那些尚处在,人工养鱼阶段的专业户进行技术输出,对其他老板提供代养,托管服务,如果资源剩余我还可以对外租赁?哈哈,我也可以挣钱了,想想就很美。
7. 养鱼与运维的关系
讲到这里,我们再回归运维,发现了没有,养鱼的过程,和运维有很多相似之处,其对应关系如下。
我已经对多个非技术领导讲过这个故事,均表示对运维理解更加深入,对相关的技术理解也更加深入了。
8. 真实的运维做什么
讲完故事,我们再来说说,真正的运维工作都做哪些工作,这里借用赵班长的成果,我们看一下运维都做什么。
这个表,可以这样分析:
从上往下看,记录了访问一个网址到获取到服务器上的数据,都要经历的路径,会经历浏览器,DNS, CDN 缓存,网络,负载均衡,应用服务,数据库 / 文件服务等。
从左往右看,每个路径上。会有相应的技术栈,对每种技术,还有对应的监控手段,每一层面还有相应的自动化方法,当自动化到一种程度,这种技术可以作为一种服务,称为云计算服务。
从下往上看,主要涉及运维的管理,公共服务。在运维中,必然存在对公共基础服务的运维,比如 DNS、mail、wiki、工单。还要对基础的硬件环境,服务器,网络,操作系统进行统一的管理。最后,在表格最底下是运维管理中,涉及到方法论,管理学,发展观知识。只有基于正确的理论,思想做指导。我们才能建设好一个富有战斗力的团队。
运维团队,是一个服务型团队,要服务的对象小到公司内部,大到其他企业,甚至整个社会。因此,我们还要跟领导讲一下运维要做的不仅是技术层面,还有很多架构,人文层面。借用百田峰哥的图,我们看一下运维领导者要考虑的事情。
[source]如何用故事的方式向你的老板讲清楚运维到底在干什么?