人们越来越认识到传统意义上的开发和运维行为存在严重脱节现象,很多公司的开发部门和运维部门存在深刻的矛盾,这都是脱节造成的。下面来看个简单的例子:
开发部门要开发一款新产品,要满足所有客户的需要,从而给公司带来利润,但是这款产品要求使用最新的技术和运行平台。于是开发部门加班赶代码,终于如此完成了任务,然后把自己的产品甩给了运维部门,后者还没完全接手,前者就忙着开庆功会去了。接到产品后,运维部门出现问题了。我们先来做个假设:
- 这款产品在现有的平台上根本无法运行,因为现有的平台太旧/空间不足/版本不支持等。
- 这款产品体系结构与我们的存储/网络/部署/安全模型不匹配。
- 这款产品的服务/安全等问题,我们不明白,所以没办法把它做成可行的产品。
然困难重重,运维部门还是把产品安装好了。但不幸的是由于做了太多的不合理的修改,这款产品最后被告知失败。最终,客户没拿到产品,公司也没赚到钱。
为什么需要DevOps?
DevOps的出现就是为了避免这种情况发生,同时能让大家用更有效的方式去工作。DevOps鼓励开发部门和运维部门通力合作。在DevOps环境下,开发人员和运维人员会构建一些关系、流程和工具,从而更好的与用户互动。只有当人们愿意相互交谈,关心相互的工作时,才能更好更快的创造商业价值。
DevOps是一组软件交付实践的集合,强调在应用程序开发、测试、基础设施及运营团队之间加强沟通与协作。通过一组通用标准及自动化实践,DevOps协助统一IT孤岛,帮助持续交付应用与服务,与不断变化的用户需求相适应。
据云计算跨平台IT管理供应商CA Technologies的最新全球调查报告显示,亚太及日本地区的IT领导者已经看到了开发DevOps为企业带来的实际商业利益。据报道,DevOps已有效地帮助中国企业,使其软件及服务用户增长14%,同时开发运营的费用降低14%。
尽管任何人都可以使用这一服务,但是该服务最适合那些需要快速扩展基础设施或是希望在今后扩展基础设施的企业。创建DevOps并不是靠管理者颁布或是采取一些管理手段来实现的,而是靠流程自动化不断集成的。
从某种程度上讲,开发者并不愿意承担应用程序生产过程中出现的问题。经过多年的发展,他们创建了一种应用程序可把操作系统放入其中管理,开发者们发现,放入其中管理是真实可行的,但有时也很苦恼。Nick Heudecker指出这一困扰:“应用开发人员现在可从NoSQL中获得其想要的一切,但是如果不要数据管理员对此进行管理的话,那么大企业的数据质量和信息管理,将面临很大的挑战。”这些问题需要年轻的DevOps专业人士来处理,但有一点很清楚,传统的软件发布方式已经过时了。
与传统的软件发布方式相比,DevOps主要通过以下几个方面来提升效率和质量:
- 减少每次发布的变更范围。与传统的瀑布式开发模型相比,采用DecOps的工作方式意味着更频繁的发布、每次发布包含的变化更少。
- 强开发与运营协调。通过采用电话会议、即时消息等协作工具来确保所有相关人员理解变更的内容;使用统一的流程和工具,例如故事墙、燃尽图、在线项目管理工具( 例如Mingle、JIRA)、配置管理工具(例如Subversion、Git、Mercurial)等。
- 动化。借助强大的部署自动化手段和标准化的环境管理来降低部署操作的成本、确保部署任务的可重复性、减少部署出错的可能性。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
如何减少不必要云服务成本
由于初始成本相对较低,业务经理有时候可控制自己的云预算,但这既是好事也是坏事。 企业可以不受IT干扰,但业务经 […]
-
华为软件开发云平台:“一多二全三高”能否满足企业的需求?
在2017年3月22日,华为青岛软件开发云上线大会上,华为也表示,中国的软件与信息服务业,2016年总收入达到4.9万亿,软件从业人员是570万。
-
“以建应变”:敏捷+DevOps驱动数字化转型
数字化转型由软件驱动。如今在数字化转型中,交付软件实际上处于每一个业务的核心,这一软件趋势也正好与CA Technologies一直强调的应用经济相一致。
-
如何选型市场上的顶级编排软件
一旦编排软件的购买者已经确定了自己的环境、目标、规模和增长预期,那么他们就可以开始调研可用的编排技术、特性和功能了。