图:任意门运维负责人尤首智

编者按:2021年12月10日,在阿里云云上架构与运维峰会上,任意门(Soul)运维总监尤首智发表了主题为“Soul云上运维架构创新实践”的演讲,和大家交流了Soul云上运维方面遇到的问题、挑战以及在平台化建设过程中的经验分享。

尤首智曾就职于搜狐、奇虎、快手等知名互联网企业,一直从事运维架构、存储、DevOps相关的工作,是一名相关经验非常丰富的“互联网人”。2020年11月加入Soul之后,主要负责运维稳定性及平台化建设,推动DevOps体系落地。本文根据他的演讲整理而成。

一、Soul云上的问题与挑战

在加入Soul之初,我就面临着四个困难和三个亟待解决的问题:

第一、人力短缺。运维部门只有4名同学,研发线只有200个同学,对于一家年轻的公司来说,1:50这个比例是比较高的。

第二、无成型运维工具。工具是存在的,单点上看功能不完备,整体上看运维层面没有串联起来,这大大增加了运维成本。

第三、业务高速迭代。每周一个小版本,两周一个大版本,这与公司业务线的发展体系有关,而且Soul也在不断探索一些新的领域。

第四、基础架构的缺失。这导致接入和使用方式多种多样,每个部门保持自己独立的基础架构,这种工作形态同样也大幅提高了运维成本。

在这些困难下,我们认为,如何短期内提高运维效率,是Soul运维部门当时阶段首要解决的问题。因为只有提升了运维的效率提升,我们才有更多的时间去做更多的事情,包括提升业务的稳定性、更好地支撑业务快速迭代等。

二、运维效率提升

Soul对于运维提效制定了四个主要方向,同时也是我入职后落地工作的重要抓手:

01 解决云上效率问题

Soul在平台建设的过程中使用了大量的阿里云的PaaS产品,并且在日常维护中产生的工单较多,Soul将大量的工单处理交给了阿里云的同学,组成短期快速实现闭环的工作链条,这个给了我们更多的时间去梳理公司现状与问题,节省了极高的时间成本。

02 优化发布平台

Soul也是用了中小型标配的Jenkins、以及一部分阿里云EDAS产品能力,这两款产都不是一个完整的发布体系,都有部分功能缺失,于是我们就选择通过以下几个方面建设CI/CD体系:

◾  发布周期:由于没有固定的发布窗口,大大延长了故障的时间,无法及时处理故障问题,降低了用户的产品试用体验。比如凌晨上线,到第二天上班才知道故障的发生。

◾  完整迭代:从DEV环境到QA再到代码扫描,再到灰度最后到线上,完整的迭代周期串联是团队当初急需要做的。

◾  发布效率:发布当时面临最大的问题是稳定性差,CI/CD一体执行,发布底层salt和ansible执行效率低下;首先我们需要将CI、CD分离;编译所需参数存储于CMDB中,打包动作逐渐脱离jenkins,将编译功能集成在发布平台中;CD部分去掉salt,全部替换为ansible api;

◾  参与度:降低运维的参与度,提高研发与平台交互度,让运维有更多时间更多关注迭代内容、周期、发布次数等。

03 CMDB建设

CMDB是运维最重要的一个信息源,也是完整的运维体系的第一步。

Soul也将所有的信息源都写入到CMDB中,包括阿里云资产、自建应用信息、服务构建参数及组织架构人员信息。

存储相关信息的作用主要在于CI/CD、自动化运维、成本分析、报警、故障能够与客户端表现的直接关联。CMDB构建并没有在短期内一次性完成,是从阿里云的部分资产入手,最后到构建参数,逐步补齐。随着CMDB的逐步补齐,基础环境的标准化也在初步推进。

04 运维工单平台的0-1

Soul运维工单平台是运维对研发甚至是对公司唯一的入口。在此之前内,部均使用邮件方式沟通,但随之而来的是邮件丢失、延迟的等问题, 导致需求处理延误、因权限管理不清晰而有部分同学自行操作,继而发生各种问题。

Soul工单平台更接近云管控,逐渐替代掉阿里云控制台的权限,同时我们使用工单的方式逐渐的规范研发同学对中间件和阿里云底层资源的认知,主要分三个阶段:

阶段一:纯手工打造。工单平台抽象高频的操作和需求,但依然是人工执行。这个阶段的工单平台,更多仅像一个web入口,无太多自动化能力。

阶段二:人工决策,自动执行。这个阶段持续时间较长,工单需完成自动化能力补齐。

阶段三:自动决策,自动执行。将业务对资源的需求与资源类型/资源规格转化,常态化需求描述以及个性化需求描述,需要通过工单平台入口使得运维更加靠近业务。

到此阶段,在半年时间内,运维自身效率已提到提升,有了更多的时间参与稳定性架构改造,同时运维人员也更多的精力关注业务动向。

三、稳定性建设

01 面临的问题与挑战

Soul不能“挂”是整个团队最重要的OKR,原因是2020年Soul上过两次热搜,都是因为架构不稳定导致站点异常从而引发热议。

第二点是服务预警与快速恢复,这一部分是缺失的状态,导致故障发生后无法第一时间精准定位根因。

第三点是架构演进,Soul的业务体量在持续上涨,体量变大的架构演进是必然的。

02 故障定位与处理

稳定性的生命周期中,故障与非故障的时间占比是非常重要,非故障时间需要增加架构的稳定性建设、复盘、演练,才能让故障的时间占比下降,使业务的稳定性向着更加健康的方向发展。最近一年时间里,着重于稳定性建设时间,增加演练次数,下面也会着重分享稳定性改造的相关案例。

03 稳定性改造

在过去一年当中,稳定性建设方面,Soul大致进行了上图中的六个工作,我们将从中挑出三个较有代表性的方面展开分享。

改造1:监控系统的演进

2020年底,Soul的监控只有AMRS,虽好用但不适合Soul,比如IT治理没有做好,主机组+报警模板+报警联系人+组织架构+发送通知关联不起来,导致只有运维收报警,研发同学收不到。运维同学只能手动转发给研发同学进行处理。

在K8s平台方面,Soul当时使用的是Promethues。Promethues最大的问题是无成型web交互,查询及报警语句有相对较高的门槛。

到2021年3月,我们开始正式做监控治理,使用OpenFalcon进行底层云产品的监控,同时将公司内部的多套Promethues及阿里云的Promethues服务进行合并,统一Promethues数据源。这样公司里面只有两款监控产品:一个面向底层资源,一个面向K8s。

2021年6月,我们开始自研监控系统OWL,从名字“猫头鹰”上能看出来,我们希望它能代替运维同学在晚上值班。

OWL监控沿用OpenFalcon前端的页面,兼容Promethues数据,将Promethues的查询及报警语句抽象出来,进行格式化的展示,并添加报警功能。这一点类似于grafana的promethues插件部分,目前已经将所有的报警整合在OWL报警平台当中,同时也实现了信息采集及报警功能完善。

下一个阶段是报警网关,报警网关还需要拥有报警接手+解决+报警升级的能力,方便运维同学对问题的跟踪。随着报警逐渐的添加,报警的数量也逐渐在增长,也出现了报警信息被淹没的情况,为了方便运维同学对问题的跟踪,报警网关进入了下一阶段的迭代,报警接手+解决+报警升级,减少群里的重复性报警的同时又不会漏掉关键报警。

改造2:接入层改造

上图左侧架构是Soul 2020年的架构,右侧是最新的、改造后的架构。

左侧架构中,SLB对接ACK pod及ECS;优点非常明显,不会出现大故障,缺点则是可维护性较差,导致小故障不断,客户端表现的很多异常,大部分来自接入层。

右侧是新架构改造,统一接入层,开启ingress入口模式,优势是能够轻松实现全链路的把控与追踪以及成本的优化,统一的高防与WAF接入。

改造3:MySQL切换PolarDB

MySQL切换PolarDB是2020年,SOUL与阿里云深度合作的第一个项目,改造的背景是MySQL分库分表机制有问题,磁盘与CPU不匹配,单实例已超过阿里云SLA标准,达到了6T的数据。

而Soul的业务场景是读多写少,同时团队也在考虑分布式DB,这两个特性与PolarDB与Soul的匹配程度非常高,团队人员用了1个月时间,将大于1T的30组MySQL实例,全部迁移至PolarDB,迁移后无论是在费用、稳定性及使用率多个方面均正向收益。

对于以上的架构的改造,对于Soul来说,不一定是最好的,但却是最实用的、短期内可以支撑业务的高速迭代方案。

四、未来方向

最后,分享一下Soul在2022要做的几件事情:

1、继续探索云上能力。对于Soul这样的中小型公司,底层技术能力部分其实可以依赖公有云,特别是Soul在做多方向试探的业务场景,可以借助公共云的帮助实现自有业务迭代。

2、私有的管理方式。对于公有云的基础能力,加上自定义的管理和接入使用方式,完全能够助力业务的快速迭代。例如RDS、Redis,可以把它当作一个实例;ECS则可以看作是一台物理机,通过这样的使用方式,来去掉IaaS层的压力。

3、产品的PaaS化。Soul团队也将深度学习阿里云的产品思维,将自有的PaaS产品做得更加产品化。

最后的最后,我希望致敬每一位运维人,致敬我们平凡中的不平凡。

点击大会官网,查看尤首智在峰会上的精彩演讲视频。

Soul运维总监尤首智:企业如何从0到1建设云上运维体系相关推荐

  1. 还在为运维烦恼?体验云上运维服务,提意见赢好礼!【华为云分享】

    华为云应用运维管理服务AOM提供一站式云资源.网络.中间件.上云业务等全链路的数百种运维指标,让您一站完成云上运维. 即日起至2019年11月8日<云上运维系列活动:聆听您的声音>启动招募 ...

  2. 映客高级技术总监黄继:7天从开发到上线,云上高效运维实践与探索

    2021年10月22日,在云栖大会的<云上运维最佳实践>分论坛,映客高级技术总监黄继发表了主题为"7天从开发到上线,云上高效运维实践与探索"的演讲,为大家阐述映客团队如 ...

  3. 业务上云后,云上运维势在必行

    随着云计算的发展,企业上云已经成为了一种必然趋势.企业上云的初衷是把复杂的IT基础设施交给云平台去管理,企业可以专注于业务与应用.从而降低企业IT运营成本,提高IT部门工作效率. 业务上云的优势 1. ...

  4. 【案例】正浩创新:多云多资产,实现敏捷云上运维

    深圳市正浩创新科技股份有限公司,品牌名"正浩EcoFlow",是一家专注于移动储能和清洁能源领域的国家高新技术企业,是移动储能与清洁能源技术的全球行业领跑者,入选<时代> ...

  5. Cmdb、Saltstack、Web化,莉莉丝游戏云上运维心得分享

    在2017游戏行业全球同服和安全攻防技术沙龙上,来自莉莉丝游戏的蒋海洋分享了<莉莉丝游戏云上运维之路>.他通过介绍莉莉丝游戏的概况.进化历程,引出了莉莉丝游戏使用的cmdb,Saltsta ...

  6. 云时代,用对工具就能让云上运维工作事半功倍!

    在云时代,运维人员已经无法看到任何设备,也不再需要维护物理硬件的稳定性和可靠性,所有对物理设备的操作变成了执行命令和代码,在多云.混合云的云端环境下,只要用对工具,能让云上运维工作变得事半功倍. 做好 ...

  7. 数云运维总监陈延宗:基于阿里云计算巢,数云CRM一键云上交付

    12月21日,在弹性计算年度峰会上,数云CRM运维总监陈延宗发表了主题为<计算巢最佳实践--数云CRM一键云上交付>的演讲,介绍了数云CRM在阿里云计算巢平台的最佳实践. 图:数云CRM运 ...

  8. 阿里云发布多款云管工具,任何角色都可以轻松完成云上运维

    无论是在传统的开发过程,还是在云上,运维都是一个十分重要而又繁重的工作.随着企业规模的扩大,系统架构的复杂度在增加,部署规模也在不断扩大,控制台不再能满足其需求,需要一个便捷.实用的运维系统或者运维工 ...

  9. 领航智变时代 2020 NAVIGATE领航者峰会云上起航

    4月20日,由紫光集团和旗下新华三集团主办的2020 NAVIGATE领航者峰会首次全面移师线上,盛大启航.本次线上峰会从4月20日到25日持续6天,以"智·变"为主题,通过33个 ...

最新文章

  1. 每天学习30分钟新知识之html教程1
  2. [zz]libvirt中CPU和内存的细粒度管理机制
  3. mysql校验字符集
  4. 【数字信号处理】线性时不变系统 LTI ( 判断某个系统是否是 “ 非时变 “ 系统 | 案例一 | 先变换后移位 | 先移位后变换 )
  5. WOC?老板让我从Word中复制出1000张图片?
  6. Spring Boot集成CKFinder
  7. 华为ipd产品开发流程_IPD(集成产品开发)成败取决于什么?
  8. tp5支持啥数据库_MS Access数据库是被严重低估的一款优秀软件
  9. 图形基本变换c语言代码,图形变换-C语言课程设计.doc
  10. flash加xml图片叠加焦点图,左右箭头翻页
  11. 2017年网易校招题 数字翻转
  12. 国庆海报没有灵感,给你设计要点素材!
  13. oracle重建spfile,【11g】【10g】【实验】spfile文件的恢复(from memory;)
  14. spring aop获取目标对象的方法对象(包括方法上的注解)(转)
  15. C++ Tricks(一)—— 判断字符串 string 对象的所有字符都相等
  16. 2022 年“泰迪杯”数据分析技能赛——竞赛作品的自动评判(Python代码实现)
  17. Apollo公开课六:规划
  18. 紫书刷题记录:UVa1594,Ducci序列;
  19. 用计算机制作演示文稿教案博客,制作演示文稿[教案].doc
  20. java实现斗地主洗牌发牌功能

热门文章

  1. html 左边固定右边自动,css经典布局之左侧固定大小右侧自动适应
  2. excel导入mysql 截断_Excel导入数据库时出现的文本截断问题解决方案
  3. springboot项目接入短信
  4. python中sorted函数的用法及字典如何根据键或值进行排序
  5. PayPal收款流程
  6. 通过实景单反相机拍摄实现三维模型展示
  7. 微信小程序-仿今日头条客户端
  8. iOS wkWebview播放HTML5 video视频 自动全屏问题解决
  9. MongoDB的安全认证
  10. 12月5日计算机考试浙江卷英语答案,英语b级试卷?2019年12月b级真题试卷。