开发产品防脱节,DevOps来帮忙


人们越来越认识到传统意义上的开发和运维行为存在严重脱节现象,很多公司的开发部门和运维部门存在深刻的矛盾,这都是脱节造成的。下面来看个简单的例子:

引用
开发部门要开发一款新产品,要满足所有客户的需要,从而给公司带来利润,但是这款产品要求使用最新的技术和运行平台。于是开发部门加班赶代码,终于如此完成了任务,然后把自己的产品甩给了运维部门,后者还没完全接手,前者就忙着开庆功会去了。接到产品后,运维部门出现问题了。

我们先来做个假设:

  • 这款产品在现有的平台上根本无法运行,因为现有的平台太旧/空间不足/版本不支持等。
  • 这款产品体系结构与我们的存储/网络/部署/安全模型不匹配。
  • 这款产品的服务/安全等问题,我们不明白,所以没办法把它做成可行的产品。

虽然困难重重,运维部门还是把产品安装好了。但不幸的是由于做了太多的不合理的修改,这款产品最后被告知失败。最终,客户没拿到产品,公司也没赚到钱。

为什么需要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)等。
  • 自动化。借助强大的部署自动化手段和标准化的环境管理来降低部署操作的成本、确保部署任务的可重复性、减少部署出错的可能性。

部分英文出自:ReadWrite / 编译:CSDN

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓