You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
12 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 14 | 容量保障组织建设:容量保障需要什么样的团队?
你好,我是吴骏龙。
前面我们谈到的容量保障话题更多是集中在技术领域,其实**容量保障本身并不是单一的技术命题,其背后的组织建设也是一个很重要的因素**,因为它牵扯的团队和人员实在是太多了。
我以大促活动为例通过下面这张图可以看到互联网公司的主要职能角色几乎都参与到了大促容量保障的各项工作中这其中还没有包含财务、HR等支持性角色。那么多角色共同做同一件事组织建设显然是非常重要的工作。
![](https://static001.geekbang.org/resource/image/4b/4a/4bc91283f466c71d8297c63e7ef8364a.png)
但现实情况是,有的公司对于容量保障的组织建设其实并不重视。我见过有创业公司直接粗暴地拉出一个独立的容量保障团队,并将所有容量相关的工作全部堆砌到这个团队,却不去考虑建立机制联动各个团队的力量,结果导致这个团队工作的非常痛苦,而容量保障的全员意识依然没有建立起来。
在今天这一讲中,我会与你分享一些大厂在容量保障组织建设中的优秀实践,也会解答一些典型的问题和困惑,希望通过今天的讲解,能让你对容量保障的组织建设有新的认识。
## 容量保障需要什么样的团队?
这是一个首当其冲的问题,我们究竟需要建立一支什么样的团队去保障容量呢?
顺着上面的讨论,我并不推荐去建立一个通吃所有容量保障工作的团队,达到所谓的闭环效果。虽然我自己长期负责的就是容量保障团队,但我的团队的工作重心除了全链路压测和容量预测以外,更多是通过制度建设和流程规范,去联动公司的各个技术团队共同进行容量保障,而不是单打独斗。
我所认同的优秀实践是:**容量保障需要有团队去建设和统筹,这个团队最大的价值在于,通过自身的输出(工具、流程、规范等)去推动公司整体的容量保障水平和意识的提升。** 这个团队的组织形式是多样的基于SRE团队Site Reliability Engineering网站稳定性团队和容量测试团队或者叫性能测试团队的做法在行业内都有一些成功的案例下面我谈一下我的经历和思考。
### 1.建立GOC团队
GOC是由运维和技术运营所发展起来的独立团队全称是Global Operations Center中文名叫“全球运营指挥中心”承担全局应急、指挥和调度工作这里的“全球”泛指全局的意思不一定要跨国服务。
GOC团队的组织形式在2012年由阿里巴巴开始进行尝试将当时散落在各团队的监控体系、监控中心执行标准和流程规范进行了统一取得了不错的效果。到了2015年GOC进一步明确了定位负责管理生产环境所有问题打通实时监控、发现、通告、快速恢复、事后复盘、落实全生命周期管控注重监控运营效率与大数据分析快速定位与恢复能力。
这里对GOC的部分解读我参考了阿里的分享如果你感兴趣的话可以看看[这篇文章](https://developer.aliyun.com/article/711646)。
GOC是典型的“分久必合”的组织产物各个业务团队的“小运维”形式在组织建设初期的效率和执行力是非常强的但随着全公司团队规模的逐渐扩大缺乏集中管控造成“重复造轮子”的现象就日益突出直到有一天发现忍无可忍后必须要有一个集中式的组织接管这些共性的工作部分这种情况在互联网公司是非常常见的。
**集中式组织管理形式最大的优势在于标准化,最大的劣势在于脱离一线,因此需要扬长避短**。针对容量保障工作GOC比较适合作为作曲家和指挥家的角色制定容量保障规范统一跟进线上各种容量风险在大促期间协调各个相关团队编写作战手册组织预案演练牵头快速应急等工作。当然有的公司会组建SRE团队来做这些事情其本质也是类似的。
如下图所示我们以容量故障的线上应急为例看一下GOC团队是如何与研发团队和客服团队联动工作的。
![](https://static001.geekbang.org/resource/image/d7/9e/d7efafe9deeb002999b9124db32f279e.png)
如果没有GOC团队作为大脑指挥很难想象这样的流程能够顺畅执行。GOC的组织形式很好的发挥了集中式团队的统一管理优势GOC本身并不直接介入技术细节而是指导和推动相应的业务技术团队。
可以想象一下老式的绿皮火车是由火车头作为动力源牵引各节车厢的而新式的动车组列车的每节车厢都有动力源车头的作用只是引导方向。GOC就是这列动车组的车头这非常符合我所提倡的“全民保障”的实践方式。
### 2.是否需要独立的容量/性能测试团队?
我们顺着GOC团队的建设思路再进一步思考容量测试团队是否也有必要化零为整变成一个独立的横向支撑团队呢我所经历过的公司有的是有的不是这个问题的本质其实是需要阶段性考量的我把开篇词中的一张表格替换成容量保障意识的内容再回顾一下来看一看有什么启发。
![](https://static001.geekbang.org/resource/image/38/e6/382161f9ea2f277926677817cef9f0e6.png)
很幸运的是我几乎经历过大型电商的所有这四个业务阶段深深感受到了公司管理层对于容量保障工作的思维变迁。在业务探索期所有人关心的都是业务行不行我们能不能活下去在业务进攻期我们全站的平均CPU利用率还不到10%申请服务器从来不设卡到了业务发展期我讲的最多的话就是“不要简单扩容先看看服务有没有优化的空间”而到了业务变革期CPU利用率长期低于某个水位是要被挑战的无脑的扩容申请一般都会被拒绝。
回到最初的问题,**有没有必要建立一个集中式的容量测试团队,是需要根据业务发展的阶段做判断的**。
我认为在探索期和进攻期无论哪种形式都不会有太大的问题在发展期可以考虑分而治之的思路但在变革期一定要建立一个集中式的容量测试团队因为服务优化和容量治理必须要有一个有实权的团队牵头和监督并提供统一工具支撑否则很容易沦为上有政策下有对策的局面。当然这个容量测试团队不一定要很大甚至可以是GOC团队或SRE团队的一部分。
总结一下容量保障工作需要有团队去建设和推动将其辐射至整个公司。GOC的组织形式是阿里应用的比较成功的例子不仅仅能对接容量保障的各项工作还能从制度和流程上进行规范。关于是否需要独立的容量测试团队我们要用阶段性的眼光看待这个问题希望能给你带来启发。
## 谁为容量负责?
有了团队下面就要明确责任那么谁来为容量负责呢是不是由GOC或容量测试团队来负责呢
首先单一角色负责制一般是行不通的除非团队很小因为容量保障牵扯的角色太多了很难有一个人或一个团队能carry全场即便是上面提到的GOC或容量测试团队也不可能单独解决所有容量问题自然也无法为容量保障负全部责任否则就违背了权责对等的原则这是不长久的。
虚拟团队也许是一种思路由GOC牵头各个业务团队的架构师和容量测试人员共同参与组成一个容量保障虚拟团队共同完成容量保障工作。这个虚拟团队中的人员有一部分共同的KPI并受GOC统一管理。
在我的实际工作经验中为了让容量保障团队更有抓手采用过“虚实结合”的方式。每个业务技术团队确保有一个容量保障负责人可以是架构师或资深研发人员他们分别向业务负责人和GOC负责人双实线汇报定义明确的目标和产出。
这位容量保障负责人遵循“首问负责制”即对服务容量有第一手责任为了支撑这个责任每个业务技术团队约定不少于15%的人力由其统筹作为开展工作的人力资源。容量保障的其他参与方依然保留在各业务团队的汇报关系但有一部分KPI对应容量保障职责由GOC团队根据客观数据进行打分。这样就形成了有层次的团队负责制度对各个职能角色也有一定的授权和约束。
![](https://static001.geekbang.org/resource/image/c9/6d/c9fdc46739250b443bb2654a47da116d.png)
这种“虚实结合”的方式,你可以参考,如果有条件,也可以试着在你的团队中应用。
## 如何运营好容量保障团队?
说完了团队和职责,我们再来聊聊如何经营好这个团队,其中我想与你分享两个不错的实践方式,分别是:**激励措施**和**竞争模式**。
无论容量保障团队以何种方式组织,激励措施(也包括惩罚措施)都是必不可少的部分,正确的激励手段能够激发团队的动力和上进心,使其产出最大化;适当的惩罚措施能够让团队及时纠正错误,在未来做得更好。
有一段时间,我们为了鼓励各业务团队投身服务性能优化,避免简单扩容,推行了一个政策:如果在一个大业务团队中,有一个服务通过优化手段能够缩容一定的资源,那么这部分资源不会被回收,而是可以用到这个大业务团队的其他服务中,甚至还会奖励一部分资源。
这种共享资源配额的激励做法,起到了立竿见影的效果,业务团队不再纠缠于为何不给我扩容资源,而是想尽办法榨取服务容量的可优化之处,以应对业务自然增长带来的服务资源压力。
定期组织一些轻松诙谐的仪式,将奖惩措施融入其中,也是不错的团队激励方式。比如,举办“红烂草莓”的评选活动,根据服务容量的表现情况,结合高等级评委的打分,评选出若干个做得好的“红草莓”和做得差的“烂草莓”,在部门例会时进行颁奖。在聚光灯下,做得好的员工能够保有高度的荣誉感,对做得不好的员工也能够有所警醒。
经营容量保障团队的第二个优秀实践是引入竞争模式,可以在各个业务域进行横向对比,但是要**小心度量标准的公平性**比如有些业务服务可能不是CPU密集型的如果以CPU利用率水位作为评判标准就不是一个好点子。
坦白说,依赖固定指标对容量保障工作的好与坏进行度量,很难做到完全没有偏颇,我的经验是直接以结果说话,先根据每个业务团队的规模和服务特点给予一定的容量事故配额,在一个时间周期内按照线上发生的容量类事故的个数和严重程度,进行相应的配额扣减,最终形成反映容量保障优劣的“容量健康分”,这个分数就是相对客观的度量标准,分值越接近配额的初始值,最终成绩就越好。
**如果你是管理者,那么善用激励措施和竞争模式,就能够在团队内形成良性循环,将团队的战斗力最大化的发挥出来。**
## 总结
容量保障作为一个多角色参与的工作,组织建设必不可少,在这一讲中,我与你分享了我的容量保障组织建设经验,也批判了一些不恰当的做法。
**容量保障团队不应该是一个包干团队,它应该是一座桥梁,连接着各个技术团队和其他职能团队,协同各方共同保障容量安全。** 基于这个理念我与你探讨了GOC和容量测试团队的组织形式并分析了在公司发展的不同阶段容量测试团队的形式会有哪些不同。
接下来,从职责的角度,我分析了更大范围的组织建设形式,包括虚拟团队和双实线汇报的方式,它的目的,是在权责对等的情况下,更好的明确每个人的权利,以及所承担的责任。
最后,团队运营是重中之重,我介绍了激励措施和竞争模式这两个不错的实践方式。奖惩分明,良性竞争,有助于推动团队更好的输出力量。
## 课后讨论
你的公司目前是由哪个团队或哪些人来负责容量保障工作的,你觉得当前的组织形式有什么值得改进的地方吗?或者,有什么你认为做的特别好的地方,值得推广的吗?欢迎与我交流你的经验。