谈谈在DevOps实践中,感觉最重要的这三个技术……

从国内众多DevOps实践中,我们能看到下面三个技术尤其重要和火热:

容器:容器从根本上解决了软件对环境的依懒性,解决了各个环境之间的差异问题;它可以加速部署的速度,提高部署的效率;降低部署的成本。容器技术是在Linux的基础之上发展起来的,因此它本身的实施成本很低,就是在任何物理机和虚拟机的Linux操作系统上安装Docker服务(仅几十兆)就可以完成所有功能。在任何环境中实施Docker需要考虑好以下几个因素:主机的计算资源特性和容器允许的资源需求相匹配(计算密集型、内存密集型、IO密集型等);容器网络类型和服务路由的选型;容器镜像仓库的选择等。

持续部署:这是所有企业普遍的短板,需要设计统一的自动化部署流水线作为软件系统部署和更新的基础设施。持续部署流水线底层是有Jenkins之类的工具来完成的,它能实现快速的、可重复使用的、适用于不同部署环境的发布流水线。所有服务都可以通过它实现各种风格的发布;这些发布风格中比较重要的两种:蓝绿部署和灰度发布。

微服务:为了解决传统软件所特有的巨石应用的缺陷,用微服务的思路,全面地重构巨石应用,全面的在新系统中应用这种架构。微服务架构是容器技术出现之后,有迅猛发展的一项软件架构技术。它的松耦合和面向服务基础架构的特性都是现代软件和数据中心必备的特质。

以上三种技术相辅相成,有着比较深刻的关联。首先微服务和持续部署各自解决了特别多的传统IT的问题,这些问题都是长期以来制约企业业务发展的难题。

容器技术由于它的快速、轻量、微服务化的天然特性,很好的从不同侧面支持了持续交付和微服务架构。容器可以为持续交付提供弹性和高速的系统资源,环境管理和利用率提高了很多;容器的不可变性的特点也更好地支持了微服务架构。

企业实践DevOps所需要参考的最佳实践如下图所示:

(上图来源于:Exin DevOps白皮书)

     

      敏捷管理:在产品的计划、需求、设计和开发阶段主要采用敏捷开发方法论。在这些阶段中DevOps强调,设置合理的任务大小,从而确保能够开展快速迭代和开发;强调持续集成的实施,通过CI提高软件的质量和可用性;强调用更短的发布周期,增强反馈的数量和频度。

持续交付:在开发和部署运营阶段采用持续交付的方法自动化软件系统的发布、变更和升级等工作。DevOps强调使用持续交付工具作为基础架构尽可能的自动化手工部署工作。在研发阶段就开始设计部署自动化的脚本,对其使用流水线工具来操作执行,并辅助自动化测试工具。通过严密的自动化测试方案,确保实现可以重复使用的自动化部署流水线。通过它的反复运作,提高部署的效率,降低部署的风险,提高部署的质量。

ITSM服务管理:DevOps强调从传统的ITSM管理理念上升到关注业务持续性的轻量ITSM管理方法。运维人员在项目的早期要和开发、测试和部署人员充分地沟通和落实运维需求。确保在业务系统开发的初期,系统的业务持续性和可运维性等非功能性需求,都得到充分的落实和满足。

精益管理:业务开发运维的整个生命周期中,以上三类工作实践的所有工作活动中,都必须坚持贯彻精益的原则。DevOps特别强调的点包括:准时制业务流程、精益且无浪费的工作方法、单件流的运作流程、持续改进等。它的这些管理思路需要严格的落实到所有工作环节中。

由此可见DevOps在企业,特别是大规模传统企业的落地和推广还是比较复杂的。虽然相关的最佳实践都是已经存在了很多年的;但是,通过DevOps的价值观重构企业从研发到交付到运维的价值流谈何容易。基于我10多年的ITSM项目经验,我似乎感觉到DevOps不能单独依靠自顶向下的推广,当然高层领导的支持依然是重要的和必备的支持条件之一。更重要的可能是中层的带动和底层的创新;借鉴生产制造业已经久经考验的精益制造实践也是势在必行。总之DevOps运动会在近几年给IT行业带来较大影响。

时间: 2024-10-12 04:37:06

谈谈在DevOps实践中,感觉最重要的这三个技术……的相关文章

在落地DevOps项目中遇到的困难、挑战和解决思路

DevOps落地困境 本文章由www.mingpaixinxi.com网转载分享,DevOps落地为什么那么难?因为从设计人员.组织架构.流程.人员技能到工具,变化很大,要求很高,建设风险很高.从理念到落地,需要一定的周期才能够成熟,技术决策者一般都比较慎重. DevOps落地困境包括: 设计部门多 流程改造复杂 责任边界需要重新划分 考核等配套机制没有跟上 技术成熟度低 自动化是核心问题 回过头来看,人们把过去打包.配置.部署,甚至运维,都做了很多自动化的尝试.最为典型的是CI和CD,为什么说

敏捷开发在实践中确实更加有效

在Scrum的方法里面,使用Sprint的一个方式,就是在构建产品的过程中,产品的设计和开发是逐步完善的,也就是说,产品并不是一次设计完成的,这里就有一个问题,Scrum是否适合于大多数的软件产品开发?相对于传统的方式,我们编码前是否需要一个完整的明确的代码的设计? 这里有两个例子可以考虑,如果我们要开发一个操作系统,或者是开发一个Office系列软件,我们能否使用敏捷开发的模式? 对于操作系统而言,Unix开发的哲学是最好的实践方法. Unix开发哲学中其中一点是,做一件事情,把它做好,这意味

中小团队基于Docker的devops实践

笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev.qa.hidden.product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来?devops成了我们不二的选择. 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著. 实现方法 先来看下流程图: 工程师本地开发,开发完成后提交代码到代码仓库,[自动]触发jenkins进行持续集成与部署,部署完成会收到结果邮件.项目运行过程中可通过日

TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)

原文:TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践) 1.准备项 1.1.服务器一台,1H4G(更小内存应该也可以,自行测试),系统:Ubuntu 16.04 64位 1.2.数据库一个,MYSQL,MSSQL都可以(还有其他的,自行配置),教程是MSSQL 1.3.其他软件,Xshell (用于远程Linux服务器),WinSCP(用于管理Linux服务器上的文件) 2.装服务器环境 2.1.Docker环境安装: 因为墙

重构-在实践中理解

在老大的推荐下买了Martin Fowler的<Refactoring improving the design of existing code>,其实这本书就是作者重构的经验之谈,随便翻一下,尽管你看的多么仔细,如果你没有在实践中感受到它或者应用到它,其实你很难在需要的时候用上. 昨天服务上线的时候,老大就给我上了一课,首先是一个同事定位到我的一个查询接口超时,于是老大就和我一起看着块超时的代码,看到了这样的代码: B(){ // 在B中发现了代码块BlockA是冗余代码,其实是可以使用一

《DevOps实践:驭DevOps之力强化技术栈并优化IT运行》

DevOps实践:驭DevOps之力强化技术栈并优化IT运行 主旨 这本书并非坐而论道,而是介绍了DevOps全流程中的许多实践,以及相应工具的运用.虽然随着时代的推移,工具将来可能会过时,但是这些实践的应用和相应的方法是不会过时的,所以对于其中各种实践必要性和相关方法的讲解,是特别值得注意的.作者认为一切皆代码,所以各个章节是围绕代码的生命周期展开的,提到了这些环节的实践: 管理代码 构建代码 测试代码 部署代码 监控代码 DevOps和持续交付简介 DevOps的由来 Patrick Deb

在实践中深入理解VMware虚拟机的上网模式:NAT模式

0.说明 本篇博文为<在实践中深入理解VMware虚拟机的上网模式>系列的其中一篇:NAT模式. VMware虚拟机在我们学习过程中必不可少,不管是安装Linux操作系统来进行学习.搭建各种网络服务,拟或者是用来做集群测试.云计算平台OpenStack等的搭建,可以说,VMware虚拟机为我们带来了极大的便利,最直观的好处就是,我们可以节省很多用来购买各种设备的资金,同时也可以达到了学习各种技术的目的. 然而只要涉及到通过宿主机与VMware虚拟机中的操作系统进行通信,或者是VMware虚拟机

在实践中深入理解ARP协议

0.说明 在同一个网络(无特别说明,均指以太网络)中进行通信的主机,必须要拥有目标主机的MAC地址才能够正确地将数据发送给目标主机,那么如何知道目标主机的MAC地址呢?可以通过ARP协议.ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系.可以用如下示意图来形象表示其作用: 可以看到上面的图示是把ARP协议划分到网络层,也既是认为它是一个网络层的协议,这是出于它为网络层的IP协议提供服务而考虑的.但实际上,由于

博客专题计划:《在实践中深入理解常见网络协议》

距离学习CCIE的课程已经有近一年的时间,虽然这一年来已经丢下了挺多关于路由交换技术的知识,不过随着这一年时间以来通过对Linux和Python的学习研究和学校相关课程的学习,对于TCP/IP的理解是越来越清晰,至少可以慢慢形成自己的想法,于是想借此机会,整理一下过去的思绪,撰写<在实践中深入理解常见网络协议>的博客专题. 写博客已有近一年的时间,慢慢地也形成了自己写博文的一种风格,有一大部分也获得了许多网友的肯定,包括51cto网友,或者通过其它方式浏览我写博文的其它门户网站的网友,在此表示