说明:本文根据谢海林老师在 2020 GOPS 全球运维大会 · 深圳站的演讲整理而成。
作者简介:谢海林,运营开发12级专家工程师,腾讯金融运维平台团队负责人,从“零”开始打造了金融级高可用磐石运维平台。随着支付业务的发展,磐石运维平台也一步一个台阶,在满足业务需求的同时,逐渐形成了具有金融特色的运维平台。
一、“磐石”的背景
今天在这个会场,有不少人讲了很多的体系化,要把整个体系做完整,是一件很不容易的事情,我做个小调查,这里面超过50人团队做这件事情的举个手?没有,我们团队只有十几个人来做这个领域的事情。所以我们首先要思考,这么大的体系里面,什么东西是最值得我们去做的,到底是做发布、做扩容、还是监控,还是做容器化?一定要找准和业务切合的发力点。 今天主要和大家分享我们找了那些点,同时在做这些点的时候,我们碰到了什么样的问题,以及是如何解决的?但是提醒一下,可能在你们业务上面并不管用,这可能需要你自己回去找这些点。 首先,交待一下我们的业务背景。经过2014年的红包之战之后,绝对算是海量业务,在春节大概有十万级每秒的支付,有百万级每秒的入帐,平时每天的量大概也有十亿级别,这是外面可以感知到的支付的情况。在这个背后的系统数量非常多,服务器也有好几万台,每天的日志量更是几千亿到上万亿的级别。 其次,互联网业务有一个特点,它是在奔跑中去更新迭代,所以变更也非常的频繁。但是我们用户的要求是非常高的。比如说坐地铁,你不能让我等,我等不了,所以200毫秒以内必须要返回,同时要可用,同时资金不能出现问题,实时要看到资金的余额和流水。举个例子,在春节抢红包,有的人因为抢了2块钱的红包,他就会觉他的流水是不是到了,如果没看到流水,他就会不加思索的来投诉,这就是我们的用户。 第三点,平台依赖的东西没有什么是100%正确的。硬件不可靠,程序有bug,人也会犯错;二、整体解决方案
在这样的场景下,对于运营平台来说,或者是对于做运维的同学来说,平台的要求是什么?老板只会说一句话,不管我们怎么干,只要不不出事就行。我们的对应思路就是: 全方位兜住不确定性,全方位降低未知风险的影响。那我们怎么做到不出事这个事情呢?我们是这么来思考的,首先需要定义我们需要解决的问题。第一,现网变更非常频繁,如何不人为搞出故障?80%的故障是人搞出来的,没有人动的时候系统好好的,人一搞就搞出问题,所以我们变更的时候不搞出人为故障。
第二,故障不可以避免,所以要考虑出现故障的时候,如何快速恢复业务,把影响降到最低。
第三,尽可能发现风险,提前解决那些未来可能导致故障的隐患。
第一,统一变更:变更是可用性的短板,一定要把变更做好,确保变更对业务的可用性的影响无损;
第二,故障处理:如果发生故障了,能不能减少故障对业务可用的影响;
第三,持续运营:在日常运营中,能不能持续减少业务可用的隐患。
三、统一变更体系
统一变更,业务无损变更方案,控制变更时不搞出故障。这个过程中我们如何思考的?这是我们整体的解决方案,说起来很简单。第一,统一系统化