从SRE看DevOps平台建设.docx
《从SRE看DevOps平台建设.docx》由会员分享,可在线阅读,更多相关《从SRE看DevOps平台建设.docx(8页珍藏版)》请在第一文库网上搜索。
1、从SRE看DevOps平台建设JAbAk【导读】SRE可以被作是DevOps理论的一项具体实践,但也不能把它当作最佳实践神化。本文着重从SRE实践出发阐述了DeVOPS的建设思路。SRE就是在用软件工程的思维和方法论完成以前由系统管理员团队手动完成的工作。SRE的职责是运维一个服务,该服务由一些相关的系统组件组成,为最终用户(可以是内部用户也可以是外部用户)提供服务。SRE的终极责任是确保该服务可以正常运转。为达成这一目标,SRE需要完成开发监控系统、规划资源容量、处理紧急事件、跟踪修复事故根源等。SRE对重复性、手工性的操作有天然的排斥感,并有足够的技术能力快速开发出软件系统以替代手工操作。
2、DevOps的核心思想是协调开发Dev和运维OPS关系,使之能有效沟通和协作,通过工具链、流水线高效衔接,持续反馈,实现研发DeV到运维OPS流程的持续优化和完善。一、理解SRE和DevOps异同有人说SRE就是DeVOPs,DeVOPS等于SRE,其实是不对的。DeVOPS是一种协调开发和运维之间协作关系的思想理念,SRE是在Goog1e类似于DevOps思想理念的一种实践。SRE更关注站点或产品或应用服务等运行的稳定性,以“错误预算”协调开发和运维之间的利益关系,所以SRE其实更多是在OPS端。但关注“运维Ops”这无疑是正确的,和我们习惯于更关注“开发Dev是不一样的。SRE强调用工程化
3、的手段应对运维问题。软件运维问题达到一定规模时,也确实只能通过软件工程化的手段来解决。SRE团队替代了很多研发DeV的工作,使DeV更专注于业务应用或产品的研发,而不再关注软硬件基础设施和中间件工具,所以研发的工作就聚焦化了。同时通过SRE团队所构建的自动化工具链、流水线等提升了研发效率。DevOps和SRE的关系类似于SoA和ESB的关系。SRE是DevOps思想落地的一种方式。SRE模型成功的关键在于对工程的关注,如果没有持续的、工程化的解决方案,运维的压力就会不断增加,也就需要更多的人来完成工作。SRE的终极目标是推动整个系统趋向于无人化运行,也就是智能化,不仅仅是自动化。“如果系统正常
4、运转中需要人工干预,应该将此视为一种bug”。SRE既做运维也做开发。其开发时间不少于50%。既保障SRE有足够的时间和精力去进行真正有创造性的、自主性的研发工作,同时也保障了SRE团队有足够的运维经验,深度理解运维的需求,从而让他们设计出切实解决问题的系统。但SRE只是关注于运维工具和流程自动化的研发,而不做业务应用或产品的研发。这也从实践说明了DeVoPS的建设是需要靠自己而不是靠外部厂商。因为这是一个持续的,不断变化改进的过程。二、研发和运维之间的利益冲突企业中研发DeV和运维OPS之间最主要的矛盾就是应用服务迭代创新的速度与应用服务稳定运行程度之间的矛盾。我们总是强调敏捷研发、敏捷交付
5、,但是研发之后交付之后改怎么运维却考虑的比较少。虽然目前智能运维AIoPS等很多人都在讲,但个人觉得目前更多只是噱头,远未到智能运维的阶段。试想基本运维都没做好就去做智能运维,就像让不会走的小孩就要跑起来,有点可笑。要解决DeV和OPS双方的利益冲突,则需要同时能关注矛盾双方的诉求、保障矛盾双方的利益。既要保证“速度”,更要关注“稳定性”。但任何软件系统都不应该一味追求100+可靠。对最终用户来说,99.99%、99.999%和100%的可用性并没有实质的区别。因此DevOps建设就是追求这种矛盾的统一。我们说过,在软件整个生命周期过程中,研发阶段可能只占20%,大部分时间都是在运维、在持续优
6、化。所以SRE关注运维是正确的。解决方式就是通过软件工程化、系统化的方法来解决运维问题,这也就是很多人说的“研发运维一体化“(这里的研发是“运维研发”,不是“产品研发”)。企业DeVOPS建设就需要设法协调研发与运维之间的矛盾,满足双方的利益诉求。SRE是通过高层所定下的“错误预算”来协调双方矛盾的(但错误预算有其局限性,我们将在后续详细讨论DeVOPS效率建设问题)。在DeVOPS建设中,研发关注需求、CI,CD则需要和运维协作,这也是我们一直反对在容器云平台做流水线做C1CD的一个原因。运维平台、运维工具、运维方法、运维流程、运维组织和运维思想的首先建立是必要的。做好运维,将会更好的支撑敏
7、捷研发和持续部署发布,真正实现敏捷。三、DeVoPS建设思路对DeVOPS的错误理解之一就是一个人什么都干。要提升软件工程效率,就必须实现分工。这和社会生产发展规律也是一样的。只有分工才能提升效率。因此DeVoPS建设首先就需要考虑职责分工。从SRE实践我们看到,DeVOPS建设要关注运维,运维要分层,职责要轮换,体系要简单,追求矛盾的统一。用软件工程化的方式建设软件基础设施来支撑产品研发,提升研发效率。(1)DeVoPS建设重点在运维Goog1eSRE虽然也做运维工具和运维组件的研发,但本质上是运维团队。只有运维团队把软硬件基础设施准备好了,应用或产品开发团队才能更好的享受软硬件基础设施所带
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SRE DevOps 平台 建设