支付宝的SRE实践之路
我在蚂蚁金服做SRE华蒙 tfs/TB10fDzdND1gK0jSZFsXXbldVXa-36-32.png" data-time="2020-03-19 11:42:05"> 2019-04-04 12828浏览量
简介: 有一种误解流传甚广,认为技术风险工程师是一个“背锅”的岗位,干着脏活累活……事实真的如此吗?蚂蚁金服技术风险部的孝泰同学以他的亲身经历来“辟谣”,并广发英雄帖——蚂蚁金服春季校招启动,欢迎同学们加入技术风险部感受不一样的风景,毕竟,做好几万台服务器的发布这种事儿还是非常牛x的。
有一种误解流传甚广,认为技术风险工程师是一个“背锅”的岗位,干着脏活累活……事实真的如此吗?蚂蚁金服技术风险部的孝泰同学以他的亲身经历来“辟谣”,并广发英雄帖——蚂蚁金服春季校招启动,欢迎同学们加入技术风险部感受不一样的风景,毕竟,做好几万台服务器的发布这种事儿还是非常牛x的。文/图 孝泰前言毕业进入蚂蚁金服到现在正好两年,阿里有句老话“一年香,三年陈,五年醇”,现在还在“香”“陈”之间,算不上新人更算不上老人。作为一个从校招就进入蚂蚁的同学,从刚开始对 SRE 工作的迷茫质疑,到如今的笃定前行,我想分享一下这两年我的经历和感悟。17 年蚂蚁的 offer 来的比往年来的更晚一些,其他公司 offer 都发了一段时间了,蚂蚁的 offer 才姗姗来迟。接到 HR 的电话还是挺振奋的,火急火燎跑到实验室把 SRE 的岗位说明给老师看了一眼,只记得他皱了皱眉头说: 嗯,这是一个背锅的岗位,要慎重,我顿时心头一紧。其实来了蚂蚁之后,我才发现 SRE 也并没有老师说得那么夸张,时至今日在招聘的时候我还经常跟人解释什么是 SRE,以及 SRE(原意为站点可靠性工程师,在蚂蚁金服又有了更广的释意:技术风险工程师)和 PE(运维工程师)之间的差别,如果说 PE 类似业务系统的“护士”,SRE 更偏向于“医生”的角色,医生既要懂基本的护理知识,但更重要的是要能诊断,能治疗,甚至还需要设计一些新的诊治工具。SRE 也是如此,不仅要支持日常运维,还要能做系统的高可用和资金安全架构设计,参与蚂蚁重大项目的技术风险评审和分析,发现并跟进线上问题及时应急止血,除此之外还要进行技术风险相关核对免疫和故障自愈平台的开发建设。虽说当时对 SRE 工作有些小误解,但最终还是选择了蚂蚁金服,第一份工作期待一个更高的平台。取花名的时候试遍了所有想取的名字都被人取过了,最后选中了“孝泰”,一是我这个姓有个历史人物叫这个名字,两个字字意也还不错,二是发音像“show time”,期望着能在蚂蚁秀起来。“excuse me?还要写前端”阿里针对校招生有很完善的培养制度, 刚入职的第一个月基本都在培训中度过。培训一完成,就被老大安排到一个业务团队去轮岗,要做大安全的 SRE,首先就得熟悉安全的业务。几个月的轮岗时光过得很快,和业务的同学合作也很愉快,临走的时候给轮岗团队发了一封感谢信,然后就兴冲冲的回到自己的 SRE 团队了。那个时候我们大安全 SRE 团队算上老大也才 6 个人,一般 SRE 团队都会分为高可用和资金安全两个小组,我被安排到了资金安全组,接到的第一个项目是风控数据校验平台的建设。这个平台是干嘛用的呢?众所周知蚂蚁金服的风控技术在业内是非常先进的,“你敢付,我敢赔”的用户保障计划背后就是海量的风控模型和策略在支撑,而这些模型和策略的执行又依赖严谨正确的大数据。如何保障策略模型计算所依赖数据的完整性、正确性,最大限度的及时识别数据风险,就是我需要攻克的第一个命题。当时热情高涨,SOFA 也用了一段时间了,准备大干一场,做了一段时间,老大说前端方案也要看起来,开始丑点也无所谓。听到要做前端,我虽然嘴上是答应的,但内心是拒绝的,从学计算机开始我就是做 java 栈开发的,从来没做过前端,也没想过将来会做前端,对 js 的理解仅停留在知道 java 和 javascript 的关系是张飞和岳飞。开始的一周挺艰难的,团队没有一个会前端,纯靠自己摸索和问其他团队的同学,缓步前进,两周之后才逐步能上手一点一点把平台的前后端都搭建起来。其实在蚂蚁这种事并不少见,以前没做过前端的,团队没有人做自己也要去做;没做过数据分析的,业务需要做,硬着头皮也得去学怎么清洗数据。毕业的时候常听人说,去大公司就是做一颗螺丝钉,但在蚂蚁金服需要的并不是一颗一成不变的螺丝钉,而是一个能自适应各种问题的“螺丝钉”,“螺丝钉”不断进化,直到有一天发现自己已经不是一颗“螺丝钉”,而是已经成为了整个系统的支架。“吹个牛x,我也做过数万台机器的发布”作为 SRE 做一次蚂蚁日常蓝绿发布是一件再普通不过的事情了,简单解释一下何为蓝绿发布,蚂蚁核心应用服务器一般会分为蓝绿两组,日常各分担 50%的流量,蓝绿发布时流量会先切到其中一组,这样一组流量是 100%,一组没有流量,没有流量的一组就开始发布,发布完之后再压测,压测完之后流量再被引回来,同理再发另外一组,一般一次蓝绿发布会持续两天。由于会涉及到切流量,并且发布的应用都是核心链路上的关键应用,所以至少看上去是一个风险极高的操作,所以常有老司机“吓唬”新人说操作稍有不慎就能被开除(当然这仅仅只是调侃一下的玩笑话而已)。一个普通的周三早上,我在百年锅贴吃着早饭,一个钉钉过来:这周你蓝绿发布,我战战兢兢的走到工位点开发布链接,看到发布单上全是各种名称带 core 的应用(蚂蚁核心应用名里面一般会有一个 core 字),不禁吸了一口凉气。我们团队本来蓝绿发布经验就比较少,还赶上开会,一个上午就我一个人在工位上瑟瑟发抖。整整两天,我都处于精神高度紧绷的状态,监控上每一个涨跌都深深的牵动我的心,流量按照计划被一点一点切走,应用一个一个被置为已发布,流量又一点一点被切回来,整个过程中虽然有些小插曲,但在老司机的帮助一下,都平稳顺利的完成了,在群里同步本次蓝绿发布结束的那一刻,吊着的心才算是放了下来。那是我第一次对蚂蚁金服的技术感到由衷的佩服,要知道不少公司为了降低风险都会把发布放到凌晨,但蚂蚁能在如此大的用户基数下,在工作日的大白天把全公司最核心的应用发布交给一个刚入职一年的同学,一定是对发布切流平台有着无比的自信,并且对技术风险有全面的把控才敢做的。像这种指挥千军万马的感觉,可能也是只有在蚂蚁金服这样的平台才能体验到的,虽说整个发布过程中我其实没有啥操作,基本上就是点点按钮,同步一下应用的 owner,但至少发布数万台机器的牛x是吹出去了。“恭喜你,晋升了”来蚂蚁的第一年,风控数据校验平台探索出了一套紧密结合业务的运营方案,校验的场景和覆盖率快速提升,在风控资金安全保障方面发挥了重要的作用。除此之外风控结果的正确性校验也有长足的进步,先后接入了支付、营销、会员等多个域的风控结果一致性校验。通过积极主动地参与到资金安全方案的设计和落地实施中,并且在数据分析、前端设计等对我而言的未知领域中不怕困难勇于探索,我的工程能力和业务理解能力都得到很大的提升。靠着业务产出的成果和个人的成长,我被提名了那一年的晋升。晋升答辩没有想象中那么紧张,虽说有时候还是会被问得一愣一愣,感觉自己没有 get 到评委的点,但大部分问题都还是能应对的,答辩结束之后 HRG 送了我一个书签,上面写着“感谢曾经努力的自己”。一个月之后,结果下来了,晋升成功。在蚂蚁晋升之后带来的一定会是更大的挑战和责任。晋升之后没多久,资金安全小组的师兄撤走了,这意味着我必须要独立负责大安全资金风险整体技术的保障和设计。相较于常规的蚂蚁业务,大安全的资金安全问题和高可用问题结合得更加紧密,就像人的内伤和外伤,高可用问题是外伤,重点是要及时应急止血,资金安全问题是内伤,重点是要在单笔粒度上对问题的实际影响进行感知,一个是表象,一个是实际影响,没有完全脱离内伤的外伤,但常常有很多内伤是完全没有外伤表现的,例如前面提到的风控数据正确性问题。要对风控这个超大数据业务做精细到单笔的技术保障绝非易事,举个例子一次故障导致 100 万笔交易没有经过风控扫描就完成了,那实际影响是多大呢?是 100 万笔吗?一般情况下大部分用支付宝的人是好人,对这部分人即使放过了也不会有实际资损。但要说一点资损没有吗?那也是不可能,因为每天风控业务都会面对大量黑产的攻击,总之要精细化地发现风控资金安全的每一笔问题是一件非常有意义也非常有挑战的事。负责资金安全的第一年,也曾因为对业务价值评估不准确,导致投入了大量心血做出来的东西到最后发现并不能解决实际问题,也曾因为对蚂蚁封网节奏感触不深,常常搞得束手束脚压力山大。在阿里有句土话叫“感到不舒服的时候就是在成长的时候”,但真的是难受到崩溃也未必是好事,就像一艘小船,无风难以前进,狂风又容易翻船,要跳出舒适区,也要学会自我调节。“屁股更大一点,看得更远一点”阿里土话有很多,“屁股要大一点”这句话格外出名,经常听老大说屁股要大一点,不要只看到自己的一亩三分地。屁股大本意就是说不要被自己所在的位置局限住了思维,要想得更多一点,要心系全站。今年我们的风控数据校验平台继续稳步向前,覆盖场景相较于去年又翻了几倍,鉴于目前已经取得的成果,也响应蚂蚁金服国际化的号召,今年我们还将校验能力赋能到国际化站点,为全球更多的用户保障了准确高效的安全服务。对于现有的校验能力,我们也并不满足,正在试水通过 AI 技术进行校验规则的推导,校验异常的聚类识别,并且已经取得一些阶段性的成果。除了风控数据校验以外,风控处理结果准确性校验也在紧锣密鼓的进行中。目前蚂蚁金服正在大力推进五代架构的升级,在升级过程中如何把控大安全业务的技术风险,保障风控业务的正确性,如何对现有的资金安全免疫架构进行升级也是我们接下来所要关心的。
52c9e5114af284f6f44eed319ebb8412bb27249b.jpeg这段时间常被老大问为啥不考虑将现在大安全数据检验能力产品化,赋能到全站,能不能屁股大一点,想得更远一点,但我也有难处,在这里也希望大家能帮个忙,如果有对蚂蚁金服 SRE 感兴趣的同学,想要和我们一起攻克各种高难度挑战,一起成长的同学,欢迎联系我,我们在大安全 SRE 团队等你。给校招同学的小建议在校招中拿到蚂蚁金服的 offer 是一件非常有成就感的事,需要也值得为之付出大量的努力。对于校招的新人,扎实的基本功一定会是面试官首要关心的,这方面的准备尤为重要。对于知识点的准备我觉得可以分为三层,第一层是能解释概念,第二层是能说明原理,第三层是了解实际应用的场景。例如在面试中问到了 java 的 volatile 关键词的问题,能说出是保证多线程访问变量的可见性,并解释什么是可见性可以得1分;如果能更进一步从 CPU 缓存角度讲清楚 volatile 关键字的实现原理,可以再得 1 分;由于这个关键词平时用得比较少,可能没有什么直接使用过的经验,但如果能答到比如说 Java 的 AtomicInteger 类中为什么会用到 volatile,解决什么实际的问题,又可以再得 1 分,个人觉得能从这三个方面解释清楚一个知识点,就算是对这个知识点掌握的比较扎实了。还有一点比较重要的就是要有一个比较清晰的职业规划,你的目标越明确就越能有针对性的进行知识的积累和提高。以蚂蚁金服 SRE 工作为例,如果你的目标是想成为一个 SRE 的话,除了前面提到的开发基本功以外,如果能有一些开源分布式框架的源码阅读经验,并且对其中高可用部分的设计有一定的理解,一定能让面试官眼前一亮。除此之外在 SRE 团队发展的方向有很多,大数据分析,人工智能,云计算的相关知识都会有用到, 如果你能对这些方向上的某一个有所了解也会成为你的加分项。在面试心态上一定要自信,应届生在项目经验上可能相对比较少,所以有时候会感觉说话没有底气,我甚至有遇到面试的同学在面试一开始就说觉得自己技术不太行,项目没什么挑战,虽然感觉上是挺坦诚的,但其实已经给面试官留下了很不自信的印象了。其实你行不行,项目有没有挑战是面试官需要去判断的,你需要的只是清晰的有条理的把自己的理解说出来就可以了。在面试策略上,无论你准备得多么充分,前几次面试的时候也一定会紧张的,所以要多参加一些面试,不要只准备想去公司的面试。很多企业都会把最优秀的员工投入到招聘中,参加面试对于自己没什么损失,和优秀的面试官交流自己的面试能力也会大大提高。如果能在面试你心仪的公司之前,就收割掉大量的 offer 的话,对于公司认同你的价值一定会有很大的帮助。总之无论现实如何,内心始终要坚信付出一定是会有收获的,你现在的付出将来一定会以各种形式回馈到你身上。祝各位学弟学妹们好运,期待能在蚂蚁金服和你们相遇!主管寄语SRE 不是背锅侠,我们只是对自己有超高的要求,对技术有着极致的追求。所以,孝泰从刚踏入工作岗位的青涩到目前能够独挡一面只用了两年时间。孝泰身上所体现出来素质,希望可以给到大家一些参考:有好奇心,主动学习新技能并加以应用;不甘于平庸,不断设定新的目标;皮实自省,被挑战不要紧,仍然先思考自身的问题持续改进最终取得成果。蚂蚁有大量这样的人才和战友,大家一起战斗一起成长。1f1e17dc86bbfdb2e17668241eb87806a18a3245.jpeg
这里充满机会,蚂蚁服务全世界十亿级用户,有世界级复杂度的业务场景,航天级服务可靠性的高标准技术要求,技术风险部需要保障 99.999%的服务可用性,0 差错的资金处理,这背后的挑战不言而喻。即使如孝泰所说的“螺丝钉”,也代表最硬核的技术沉淀,是富有广度和深度的技术精华。这里尊重人才,孝泰加入蚂蚁一年即得到晋升,这离不开孝泰的勤奋、努力及坚持,我们赞赏不甘平庸追求上进的同学,也会创造条件培养新同学。聪明、皮实、乐观、自省是蚂蚁的人才观,发掘人才并创造条件促其快速成长更是我们的价值观!这里开放且平等,我们直呼其名,每一位同学都可以充分发表意见,工作中孝泰总会提出自己的想法,尽管会被各种挑战,会沮丧,但也会被指导,挫折过后是更清晰的认知和更快速的成长!我们乐于同学们提出新思路,我们希望每位同学都是能够独立思考行动的个体。这里就是蚂蚁 CTO 线技术风险部,这里还有大量富有经验的师兄!对于即将走上工作岗位的同学们而言,第一次选择尤其重要,回想自己的工作历程,第一份选择带来的成长厚度或许真的决定了未来可达的高度。同学们,如果你已笃定将来的成长发展诉求,尽量选择能够给自己形成更硬核积累的机会吧。祝同学们早日找到满意的工作~
页:
[1]