从电子游戏到DevOps

在一个项目团队中,开发与运维之间的关系像极了知名大型游戏《刺客信条》里的故事:开发就是追求自由的刺客联盟——我喜欢用各种新颖技术手段去满足用户爸爸那些花里胡哨的需求,你别管那技术好不好用,总之它实现了需求;运维就是那支持秩序的圣殿骑士——我要的是稳定运行!稳定运行!稳定运行啊!

于是,产品与运维之间形成了一道墙。

开发部门夜以继日地打造出自己的“杰作”,并怀着今晚就能开庆功会的心情把自己的“杰作”交给了运维部门,殊不知墙那面的运维们对开发的抱怨才刚刚开始:
? 这款优秀的产品在目前的底层平台上无法运行,因为这个平台太古老了,因为这个平台空间不足,因为这个平台不支持某某版本……
? 这款产品的体系结构跟我们的{存储,网络,部署,安全}模型不匹配。
? 这款产品的报告、安全、监视、备份balabalabala 我们搞不懂 ,所以没法把它做成实际可用的产品。

当运维将问题源源不断地反馈给开发后,开发的回复一定是:
? 这不是我们的错,我们的代码非常完美,是(运维部门的)部署做的太差劲了。
? 运维部门比较笨,他们不懂新技术,为什么他们没法实现最新的技术呢?为什么他们这么落伍呢?
? 在我的机器上运行的没问题啊……

刺客联盟与圣殿骑士互掐了几百年,但事实上他俩都不过是想维护人类文明;开发与运维互看不顺眼,但他们的初心都是想这个项目能顺利验收。

虽然开发和运维这样相爱相杀的关系看上去和游戏很像,但其对项目的危害性可不是游戏,开发与运维陷入一场暴风骤雨,客户则成了蒙受损失的一方,最终团队失去了客户,失去了金钱,失去了项目。

DevOps就是为了让开发和运维告别这样的悲剧而被提出的。它是一种框架,包含了很多优秀想法和原则,它重视开发部门和运维部门打破隔墙,通力合作。

DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。


在DevOps环境中,开发人员和系统管理员会构建一些关系、流程和工具,从而更好的与客户互动,最终提供更好的服务。

DevOps的三大原则
基础设施即代码
DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等;

持续交付
持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等;

协同工作
开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:a、自动化(减少不必要的协作);b、小范围(每次修改的内容不宜过多,减少发布的风险);c、统一信息集散地(如wiki,让双方能够共享信息);d、标准化协作工具(比如jenkins)。

DevOps的影响
交付
使用DevOps有多爽?有调查报告发现,在2016年,根据全球4600位各IT公司的技术工作者的提交数据统计,得出使用DevOps的公司团队平均每年可以完成1460次部署。与传统组织相比,DevOps组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。

协调合作
强有力的发布协调人弥合了开发与运营之间的技能鸿沟和沟通鸿沟,采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。

自动化
强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。

如今,IT行业已经越来越与市场的经济发展紧密挂钩,能否让公司的IT配套方案及时跟上市场需求的步伐,在今天显得至关重要,DevOps或许就是给与公司和团队的一剂良方。

最后推荐几个在实现DevOps上已很成熟的项目管理工具:CORNERSTONE、Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker。

要说这些工具各有什么特色,改天我们再聊吧。话说不知道刺客信条故事的最后结局会不会也和运维与开发一样,最终两个派系握手言和共同进退呢……

原文地址:https://blog.51cto.com/14425587/2415907

时间: 2024-10-11 03:36:59

从电子游戏到DevOps的相关文章

为 DevOps 提供专业级、全栈式性能监控服务

相信大家都清楚,深谙 DevOps 的公司做起事情来更加高效.相较于竞争对手而言,他们的代码重用率更高,错误率更低.但是,成功取决于多种因素,其中就包括:是否能够准确监控应用在不同环境下(可能是多语言环境)的所有变化.所以,运维团队还需要一个支持连续开发与测试的软件分析方案,同时加强与其他部门的协作.沟通. 国内应用性能管理领军企业 OneAPM 提供的数据既能检测和监控开发团队提交的新性能,也能确保运维的稳定性.作为一家 DevOps 为导向的公司,OneAPM 完全理解软件团队所面临的诸多挑

DEVOPS的六个切入点

今天上午,听IBM的人讲了IBM公司一整套DEVOPS的解决方案,主要包括下面六个方面: 1.业务持续规划 2.业务协同开发 3.业务持续测试 4.业务持续集成和部署 5.业务持续监控 6.用户体验持续反馈 最后回到1形成闭环. 其中第4点,持续集成和部署是过去几年应用得比较多的东西,比如用jenkins+saltstack完成CI和CD,也是实施DEVOPS比较好的切入点.

DevOps Workshop 研发运维一体化第一场(微软亚太研发集团总部)

准备了近两周,写了大量的操作手册,设计了大量的动手实验场景,终于在中关村的微软大厦完成了两天的DevOps培训. 最初报名160人,按照之前的培训经验,一般能到一半就不错了,没想到这次现场登记人员就超过140人,再加上没有登记的人员,现场基本爆棚,由四个大会议室组成的MPR会议室人满为患,大家对DevOps这个全新的软件开发运维一体化的的理论和实践充满期待. 第一天对软件开发的需求管理.项目计划和源代码管理进行的全面而深入的介绍,并且为到会的所有开发人员提供现场动手实验的机会,大家兴致高涨,按照

成都OpenPart——DevOps专场活动参与感

今天下午去参加了成都OpenPart——DevOps专场,感觉很好. 题外话: 回想一下,工作将近四年了,这是第一次参加类似的活动.自从结婚带了小孩以后,就基本上每个周末奔波工作和家里两个城市之间,这样的生活,一直持续到现在. 回家陪小孩玩,有很多乐趣,但是自己也慢慢意识到,时间就这样无情的流失了,每个周末什么都没有干,就很快过去了,有时候很想自己一个人静静坐下来,泡杯茶,看点自己想看的东西,这样的想法,看起来仿佛是一种奢望.现在小孩慢慢也大了,我想也应该给自己更多的时间了,孩子也该让她自己成长

DevOps 转型,只有工具怎么够!

敏捷软件开发已经打破了需求分析.测试.开发之间的壁垒.在软件开发流程中,开发与运维之间面临着相同的隔离问题.DevOps运动的目标就是打破开发与运维之间的壁垒,鼓励开发与运维之间的协作. 敏捷软件开发已经打破了需求分析.测试.开发之间的壁垒.在软件开发流程中,开发与运维之间面临着相同的隔离问题.DevOps运动的目标就是打破开发与运维之间的壁垒,鼓励开发与运维之间的协作. 新运维工具的出现以及敏捷工程实践的建立使得DevOps变成了可能[1],但对于DevOps好处的认识还远远不够,即便拥有最好

演讲实录 | DevOps 与传统的融合落地实践(上)

导读:5月6日,优维科技与数人云主办了[DevOps&SRE超越传统运维之道 · 深圳站],6月北京站敬请关注~本文是优维科技CEO王津银关于DevOps与传统的融合落地实践的精彩分享 王津银/优维科技创始人&CEO 中国开放运维联盟发起人,精益运维"理论提出者,中国第一批DevOps Master授权讲师,持续交付专家,业内人称"老王"."互联网运维杂谈"公众号创办者.致力于互联网运维整体解决方案的产品化能力提升,缩短企业到达互联网运维的

活动干货|基于Docker的DevOps实现

作者:精灵云 众所周知,传统开发模式已经面临了诸多难题.首先,在代码集成方面,因为没有合适粒度的代码合并,大规模的合并会有很大的风险,且传统开发模式中没有自动化测试,以至于测试周期特别长,人力成本高昂.其次,传统开发中的单体应用,通常都很庞大,单体应用把所有模块都包含在一个应用中,升级单个模块也需要对整个应用进行升级,所以升级和创新都很不方便,常见的比如银行系统就是如此. 同时,传统的开发模式中单独采用微服务的情况也会由于服务数量多而没有有效管理,在大批量的部署和测试的时候容易出现问题.除此之外

DevOps is dirty work - What's the deal

什么是DevOps?终于又回到这个最初的问题. 第一次看到这个词的时候,还身陷于各种敏捷概念轰炸中.用“身陷”这个词其实并不准确,因为那个年代的我也是那些热情洋溢地无处不宣传敏捷的热血文艺青年中的一员.就像天生的一样,我从未接触或真正实践过瀑布模型.瀑布开发对我来说一直是书里的概念,各种流程背得滚瓜烂熟都是应付考试用的东西.打从第一脚踏入老东家N记,Scrum Master骄傲地带着我各楼层领略五颜六色的进度小纸条和大小各异的手写燃尽图的那一刻开始,我就被敏捷浸淫而无法自拔.N记也不愧为国内敏捷

DevOps means no Ops!

DevOps means no Ops! 只单纯地搞网络的话或许你可以搞得非常好,并且获得不错的薪资,不过,5年后~10年后~,那时候随便一个人经过简单的学习就能通过Web界面或者专用的工具就能搞定一个复杂的网络,因此在搞好网络的同时,在熟悉开发,这样能为自己减轻很多简单重复的操作(从上次IDC核心割接就看出,配置全是手工刷!).不过前提是网络你要搞得非常熟练,且不可逐本舍末! 2016-1-12 大四下,回北京继续实习前