美图稳定性和运维保障方案
作者:王关胜
一、谈一谈您在美图的工作经历
我现任美图公司高级技术总监,主要负责智慧办公、安全、IT与运维几块,其中运维会细分为数据库运维、SRE、DevOps等方向;在加入美图之前,一直在新浪微博,见证了微博服务器从几十台到万台的发展阶段;
在运维这个圈子待了十几年,看到技术不停地在迭代和发展,也投入了不少精力让个人和团队随时能跟行业的技术对齐。
在美图的工作经历,大概可以分为三小段:
第一段:2016年-2018年,美图2016年上市后,公司的基础设施还处于IDC的时代,自动化水平还比较低,主要补齐监控体系、运维体系工具建设,保障业务高效地交付和运行;
第二段:2018年-2019年,除完善运维体系外,主要推进容器平台建设,完成了在线业务95%的容器化改造;
第三段:2019年-至今,从19年开始,公有云大势所趋,我们顺应趋势,开启全量上云,抛弃自维护的7个IDC,2020年中已经完成了全量业务的迁移。
二、美图现在有超过2亿的月活用户,您作为平台稳定性负责人,感受到什么样的压力?
美图的用户基数确实不小,产品线也比较多,分为业务线、商业及广告线、实验室及中台类;比如大家常见的美图秀秀,美颜相机,美拍都是我们的ToC业务,也还有很多ToB的业务。
如果说稳定性挑战的压力,目前其实还好,几年来的建设,业务的故障率明显降低很多,稳定性大大提升。而目前的压力主要是面对一些不确定性的黑天鹅事件,在oncall和应急响应层面的快速处理机制。
回到稳定性层面,可以从体系建设和基础设施变化来说:
体系建设:研发维度像代码、架构、混沌工程、全链路压测等均有很好落地;而运维层面,在容量评估、弹性扩缩容、全链路的监控体系、oncall与应急响应,故障体系建设也相对完善。
基础设施变化:大概2019之前,自建IDC的阶段,基本上服务器选型与托管、网络设计与搭建、基础设施相关的工具系统开发,中间件的开发等都要较大的人力投入,且往往出现工具系统一大堆,都不好用;尤其是用户体验不好,各系统之间很难形成良好的API标准供更高层面进行自动化体系建设。终于当云趋势到来,我们毅然决定全面拥抱云,在启动全量上云之后,基本上IDC基础设施,部分的中间件,部分的数据组件均交给了公有云厂商;而我们更关注上层业务相关的体系建设,用云原生、DevOps、SRE、AIops等行业的先进指导思想,进行内部人员转型,推动不合理的旧体系重构,自动化和稳定性都有较大的提升。
三、美图的运维保障体系是怎样的?如何做到为用户提供稳定可靠的服务?
运维领域的东西确实很多,对于运维的保障体系,一切以故障和问题出发,去推导出合理的建设规划,美图已有一套完善的制度去量化评估业务的每一个问题和故障,研发和运维的绩效体系都要考核这些,可以粗略看下图。
回到整体的保障体系,我们也是从故障预防、发现、定位、恢复、改进等阶段推导出各阶段应该做的建设,整体如图:
对于前面提到的当前稳定性的主要压力来自于一些不确定性的黑天鹅事件,我们的SRE也建设了完善的应急响应平台,从全链路监控大盘、容灾、预案及编排、其他运维干预类动作全都统一在平台上一键式操作,并不定期演练;在应对大故障及活动保障时,可以快速拉起warroom进行及时的响应和干预,可以大概看下我们的平台。
四、美图的运维团队,您觉得最大的特点和优势是什么?
1)团队组织保持小而精,比如我们的DBA需要维护RDS、Redis、Memcached、kafka、mongodb等10余种数据资源及中间件。上云后只配备3人(含负责人),同时还需要基于云上资源开发统一DBaaS工具。
2)团队随时保持对标行业先进技术的敏感度,并以此来反思各阶段的建设,并且不管什么角色,都需具备至少30%工时以上的代码能力。
五、稳定的运维质量是美图发展的重要支撑,您对它有什么样的期待和愿景?美图未来在云上产品会有什么计划?
业务上云后,整体稳定的运维质量依赖两个方面:公有云厂商及自身团队的技术和建设积累,两者缺一不可。
对于云厂商,我们一贯以来的思路,在服务可控下,与云厂一起共同进步,逐步演化为高质量的云;
对于我们自己来说,未来要做的是进一步的云原生化,且会使用到成熟的PaaS、SaaS、甚至Serverless的产品;大家都知道,对于基础架构来说,云产品的成熟能一定程度上替代一些传统的固有的能力,这是好事,虽然这样会倒逼运维模式做一些变化,但是我们并不焦虑,我们的思想是开放的,秉持对最终业务的交付和稳定负责;
我曾经对云产品的使用从比喻和替代程度做过一个表格,在此可以分享给大家:
除了这些,我们未来还会重点研究云原生2.0、Iac、Gitops等,进一步提升业务稳定和交付效率。
六、华为云SRE提出了一套“确定性运维”的方案,包括产品可用性提升,动态风控和AIOPS工具等一套体系,你对这套体系有怎样的理解?
“确定性运维”的方案,我认为是华为云SRE从自身经验出发提出的一个新的概念总结,确实能很好的诠释华为云的价值观,一切以客户为中心,帮助客户更好的应对大事件及突发的保障,比如春节,双十一等重点活动保障。
华为云通过风险挖掘评估、容量保障、实时监测等措施,构建持续韧性的竞争力,保障华为云稳定运营,让用户体验更好的优质服务,每年在我们重大活动保障时,都能做到0故障。
另一方面,我个人觉得华为云提出“确定性运维”的方案,其实与我们整体的稳定性和运维保障方案不谋而合,目标都是为了整体性的业务稳定性负责,只是各自负责的界面不同。
七、您认为美图在智能运维领域做了哪些创新?有什么可以给业界分享的?
上云后,我觉得运维的目标更为明确了,从故障与稳定性、效率、成本三个维度,可以基于公有云的API能力,做更上层更专注于业务层的工具体系建设,对于传统的运维体系该抛弃的要敢于抛弃,能够自我否定,才能有更好的未来。
我们在这一块,做的引导还是非常及时的。迁云过程中,就会针对不同岗位的同学进行相应的引导,该转型的转型,代码能力不行的及时提升,然后以有限的人力建设更完善的平台,让整个交付链全部自助化。
具体的做法是:
组织结构上,保留DBA、SRE、DevOps三种思维转型的角色,更好为业务服务。
工具建设上,再也不用开发各种烟囱类的系统,从All in one或领域切分的思路,开发更为通用且易用性的系统,并把用户体验提升上来,毕竟要想自助化,首先工具的交付和易用程度得高。
为此我们以CMDB为核心,开发了简化的CMP系统;以FinOps为核心,开发了成本决策系统MTCC,将所有内外三方的技术相关成本全部系统化,指标化,这些成本还会非常细致的分摊到各产品线的利润中心,形成明确的ROI,方便做成本运营优化及更好的决策。除此之外,DBA重点打造DBaaS、SRE重点打造应急响应平台。监控上,重点以大数据的能力,打造更为统一化的可观测平台和基于AIops的实践,对部分场景做预测和根因分析。
今天谈的方面,都较宏观,每一块有机会都可以展开详细的来交流。
- 点赞
- 收藏
- 关注作者
评论(0)