内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行《DevOps在传统企业的落地实践及案例分享》演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。

摘要
在传统支撑模式无法满足业务价值快速交付要求的情况下,传统企业应该如何引入DevOps能力进行突破创新,本次分享将从以下几个方面具体探讨DevOps如何与传统融合进而落地:
1.DevOps的整体框架及落地方法探讨;
2.DevOps落地关键点之一:IT元数据平台的重要性及设计标准;
3.DevOps落地关键点之二:持续交付在传统企业的融合方法探讨;
4. 电力行业案例分享。DevOps整体体系框架

DevOps是一连串的工程实践的有机组合,其中包括敏捷管理、持续交付、IT服务管理等等。
DevOps是关注整个业务/应用/服务生命周期的管理,把业务和IT的战略进行了对齐。
DevOps以精益思想为基础,强调自动化、拉动式、“拒绝浪费、创造价值”等。

从软件研发模式看DevOps
目前的“瀑布流”模式开发中间有很多部门墙,从研发到测试再到运维,它们中间是完全断层的。断层的理念会导致我们在研发的过程中测试和运维都无事可做,这就是一种浪费。
现在做的敏捷迭代、测试驱动开发让我们组成小team模式。这种模式以业务价值流来进行交付,要能够保证快速交付产品、模块,并且是可以独立运行的。
DevOps让团队共享面向客户的价值、共享集成目标、共享质量责任。
DevOps也让运维的作用变得更加突显,此时需要全新的思维/平台/方法论来实现Dev的软件快速交付到Ops阶段,并且能够稳定地运营。DevOps的落地经验谈
移动互联网时代的业务特征就是快!产品的决策快、推出快、迭代快、变革快,快能抓住机遇、掌握主动。
对IT支撑也带来了一些挑战,例如快速交付产品、IT支撑可灵活扩展、更高要求的客户体验、项目时间紧、需要快速响应业务/需求变化。
无法快速响应业务激增的需求:新型互联网业务对资源需求的波峰波谷现象更突出,服务对外开放使业务量的不可预估。目前临时业务无论高峰、低峰期均需要大量的人工介入,系统灵活扩展性不足。
系统维护难度高:支撑系统X86分布式集群架构改造后,应用主机多,故障定位困难;缺乏自动化的系统处理,需要大量的人工介入,处理时间长,对维护人员技术要求非常高。
不能实现敏捷开发:需要开发人员对每台服务器进行复杂操作才能完成部署,需求测试环节需要根据业务依赖关系逐一测试,开发难度和上线效率不高,很难做到敏捷开发,快速发布,持续集成。
传统架构架构简单,运维快速定位,快速发布。但支撑内部整体目标架构没有统一的规划设计,系统烟囱式建设。
转变为云化架构后,通过核心云构建,实现资源共享,和设备资源层形成联动,实现应用的弹性伸缩。但是云化架构比较复杂,需要运维过程智能化,自动化转型。
我们如何提高产品交付给客户的速度、如何改变产品更快更好满足我们客户、如何恢复故障不至于影响我们的客户、如何更快通过我们的努力获得客户认可?
打通市场需求、开发、测试、发布、部署上线、运维等各环节,促进需求、开发、测试、运维团队更紧密地合作,敏捷开发,持续交付、自动运维,提高支持系统的生产、交付效率。

理念与价值先行
通过持续服务交付价值链打破孤岛,整合开发和运维的能力成为一个协作的团队。进行端到端持续服务交付流程的变革。对新的应用和服务,加快且缩短实现价值的时间。不影响安全性、兼容性和性能。顶层设计、全局规划

这张图是我们产品设计的全局规模规划图,但在所有公司都适用。以后无论是做运维自动化还是DevOps整体门户化,都是有一个统一运维的门户。从小做起,Start Small
基于某个角色、某个场景从小做起,从自己做起。基于某个系统或者某个功能域来实施导入,切忌贪大求全。构建元数据基础平台CMDB

要构建元数据基础平台CMDB,应该是自动化的。

CMDB成为IT运营管理平台的核心元数据。CMDB数据的“鲜活性”,核心靠场景驱动。

CMDB分核心模型和扩展模型。核心模型是业务、应用、主机和程序包;扩展模型是基于这个实例的关联对象。建立以应用为中心的资源管理模型。

工具也一种文化
作业管理,一方面把运维的脚本能力可视化,另一方面也在提高运维的效率和质量。
调度管理,提供面向复杂事务的能力封装。

基于作业和调度能力,面向角色场景化收敛和归类各类能力。
好的经验,通过自动化的手段沉淀,工具化,极简管理过程。工具是真正推动变革的有效手段,自底向上的核心手段。组织二元性

服务主管,对IT服务及时性相应负责,类似Scrum的PO。
DevOps工程师,有义务提高和维护自动化流程,构建完整的自动化过程和工具,提升效率。
把关人,负责监控IT服务的运行状态和下一步发布的进展。
可靠性工程师,监控部署过程中的服务并处理正在服务执行中产生的问题。
流程主管,领导并促进团队,这个角色类似于在Scrum中的Scrum Master。

运维交付团队。分资源交付团队、应用交付团队、运维研发团队。运维研发负责运维交付能力自动化。
开发测试团队。设立测试研发团队,负责测试能力自动化。
DevOps研发团队。负责从持续交付的角度端到端的能力集成。
服务主管、流程主管角色不变。
如上图所示,等待时间和实际所用时间相差很大,这中间的浪费非常大,这就是部门墙导致的。我们需要保证每一个运转的中心都是一直在工作的。不管是需求、开发、测试还是运维,都应该是拉动式的,因为只有他自己才知道当下处于运行状态还是空闲状态。自动化别人,先自动化自己

自动化是一个由点到线到面的过程。要先从一个小的点切入,把自动化做完之后才可以一点一点影响到周围,进行扩散。
自动化是一个逐步覆盖更多角色的过程。做完一件事再做第二件事的时候,它们都是互相影响的。
自动化也是一个环境逐步覆盖的过程,先生产,再测试,再开发。持续交付是最佳的DevOps实践

从上图可见,开发、测试、预发布和生产所做的事有很多都是重复的。如果能把这些自动化、工具化,重复的工作就不存在了。
还要做到标准化。从开发、测试到运维,基础环境和应用架构都是标准化的。当我们把所有的事情都做到标准化、无状态化、微服务化的时候,这些操作将会变得特别简单。并且要把整个交付的过程可视化,要知道进度到了哪个阶段。构建面向应用的最强驱动力

CMDB系统要实现向资源管理系统的过渡,应用的变更场景最终是对资源的变更,应用的状态最终是由其资源的状态来决定的。
今天的分享就到这里,谢谢大家!

转自《DevOps在传统企业的落地实践及案例分享

[转载]DevOps在传统企业的落地实践及案例分享的更多相关文章

  1. 腾讯云AI应用产品总监王磊:AI 在传统产业的最佳实践

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海 ...

  2. DEVOPS落地实践分享

    DEVOPS落地实践分享 转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: DevOps的理念已经说了很多年,其带来的价值逐渐被接受,很多企业也逐渐引入了DevOps.目前普元DevO ...

  3. 企业DevOps研发模式下CI/CD实践详解指南

    阅读全文大概需要 10分钟. 1. 前言 借着公司今年新组建的中台研发部东风,我作为其中的主要负责人,在研发中心主导推行DevOps研发管理模式转变及质量管理创新建设,本篇文章摘取自今年9月底,笔者在 ...

  4. DevOps落地实践点滴和踩坑记录-(2) -聊聊平台建设

    很久没有写文章记录了,上一篇文章像流水账一样,把所见所闻一个个记录下来.这次专门聊聊DevOps平台的建设吧,有些新的体会和思考,希望给正在做这个事情的同学们一些启发吧. DevOps落地实践点滴和踩 ...

  5. DevOps落地实践点滴和踩坑记录-(1)

    记录初衷 本人一直在从事企业内DevOps落地实践的工作,走了不少弯路,也努力在想办法解决面临的问题,期间也经历过不少人和事情,最近突然有想法把经历过的,不管好的不好的都记录下来,分享给和我一样的一线 ...

  6. 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践

    本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...

  7. [转载] DevOps年中盘点:国外最受欢迎的10篇技术文章

    本文根据高效运维系列微信群的群友投稿整理而成.“高效运维”公众号作为本系列群的官方唯一公众号,原创并独家首发. 欢迎关注“高效运维”公众号,以免费参加「运维讲坛」每月一次的线下交流活动:并抢先赏阅干货 ...

  8. 传统企业IT为什么对微服务叶公好龙的心态?(转)

    这两年来,“微服务”.“云计算”.“大数据”.“人工智能”的概念在IT界成了新的宠儿:珠联壁合.声名远播.势如破竹.如日中天!从实践落地的情况来看:微服务诞生于互联网,当然是首先在互联网界遍地开花,高 ...

  9. 干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践

    本文根据博云在dockerone社区微信群分享内容整理 过去几年博云在企业中落地容器云平台遇到了很多痛点,其中一个比较典型的痛点来自网络方面,今天很高兴跟大家聊聊这个话题并介绍下我们基于OVS自研的C ...

随机推荐

  1. Apache和Nginx运行原理解析

    Web服务器 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. 应用层使用HTTP协议. HTML文档格式. 浏览器统一资源定位器(URL). Web服 ...

  2. Winform导入文件

    winfrom的选中文件的路径放进文本框,我还是一个新手,欢迎大家在评论里面多多指教

  3. setTimeout与Promise的区别

    1,4,3,2 Promise是一个micro task  主线程是一个task  micro task queue会在task后面执行 setTimeout返回的函数是一个新的task macro ...

  4. 《剑指Offer》第20题(Java实现):定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

    一.题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 二.思路解析 首先定义一个Integer类型的栈,记为stack,此栈用来完成数据 ...

  5. CentOS7下开放端口

    memcached等服务启动后,外网默认是无法访问的,因为防火墙不允许,所以要开启防火墙,让其可以访问这些端口号. 方法一:使用firewall 1.运行命令:firewall-cmd --get-a ...

  6. mac pfctl / centos iptables 使用

    mac使用pfctl 为了测试zk client的重连功能,需要模拟zk client与zk server网络连接出现问题的情况,经过查询资料发现可以使用防火墙阻止zk server启动端口上的流量实 ...

  7. nuget安装本地nupkg文件

    打开visual studio,菜单选择‘工具’->‘选项’ 然后 接下来,选择‘程序包源’,把‘包括预发行版’打钩,然后安装需要的包到工程即可,如下图:

  8. laravel 默认所有请求带session解决办法

    laravel  app/Http/Kernel.php protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\Encr ...

  9. UE4的委托

    UE中委托的使用很广泛,许多Event的触发都有对应的虚函数和委托,虚函数不用讲,只能在派生类中使用,而委托可以在别的类或者蓝图中使用,就应用范围而言,委托的使用更灵活.以AActor的 /** * ...

  10. SQL视图命名规则:一般以V_xxx_xxxxxx