如何使用IT新利器——DevOps

日期: 2014-08-06 作者:Clive Longbottom翻译:陈晓诚 来源:TechTarget中国 英文

有多种不同的技术变革都在深刻影响着企业IT部门工作的方式。虚拟化,云计算,软件定义一切,大数据,一切皆服务——这些都迫使IT做出改变,并关注新的工作方案,DevOps。   IT部门的大多数改变都是为了追求速度——对于用户的应用程序的响应速度;改变功能,应用程序和流程的速度,以更好地响应企业的需求。   传统的IT工作方式被迫做出改变。

传统的IT项目计划遵循一个长期的时间表 – 根据用户定义文件开发合理的项目管理标准,项目计划,审查,变更管理流程等,这一时间计划跨度在18个月。   问题在于花费18个月来解决问题,并不能解决真正的问题,届时,这个问题可能已经消失了,或者被其他新问题所取代。 ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

有多种不同的技术变革都在深刻影响着企业IT部门工作的方式。虚拟化,云计算,软件定义一切,大数据,一切皆服务——这些都迫使IT做出改变,并关注新的工作方案,DevOps。

  IT部门的大多数改变都是为了追求速度——对于用户的应用程序的响应速度;改变功能,应用程序和流程的速度,以更好地响应企业的需求。

  传统的IT工作方式被迫做出改变。 传统的IT项目计划遵循一个长期的时间表 – 根据用户定义文件开发合理的项目管理标准,项目计划,审查,变更管理流程等,这一时间计划跨度在18个月。

  问题在于花费18个月来解决问题,并不能解决真正的问题,届时,这个问题可能已经消失了,或者被其他新问题所取代。

  DevOps就是解决方案 - 本质上,通过自动化技术把开发和运营团队紧密联系起来,来支持业务需求变化的速度。

  DevOps是一种将企业的应用开发团队和那些系统运营团队相整合,合作进行任务执行的IT工作方案。软件定义的基础设施和云计算要求企业打破开发和运营团队之间的孤立。

  传统上,开发团队倾向于作为一个独立团体进行工作,根据不同的定义文件,在其项目上持续工作,直到他们创造出他们所认可的一个完整的应用程序。然后,它会经过一个测试阶段 - 通常还是处于开发名义下 - 在此之后,运营团队开始接管这一应用程序,并在企业内进行运行。

  通常来说,新的应用程序会有一些暂时的问题,开发团队会从支持部门那里获得问题名单,会对它们的优先级别进行评估, - “这个问题看起来很有趣?” - 并在程序环境内对他们认为必需的问题进行修改,然后再次提交测试,并再次进行运行验证。

  但是,如果有比“暂时的问题”更严重的问题,一切就要复杂很多。在操作环境中有重大问题的应用程序必须中止运行,其包含的数据必须同步到原先的应用程序中,这样员工,合作伙伴和客户可以重新进行工作。这些问题会令开发团队十分费解,因为在他们自己的测试环境中,一切运行良好。

  孤立工作会导致挫折和效率低下,因为每个团队都不理解其他团队的局限性或挑战。但更重要的是,IT和业务都受到了严重影响。

  以技术为中心的公司,如Facebook, Yahoo, Yammer, Amazon, Google和VMware都已经采用了DevOps方案。

  DevOps是如何解决工作孤立问题的


  开发人员必须更密切地与运营团队,以及整个操作环境进行合作。开发团队应该尽可能跟进实时数据集,这样任何问题都可以在早期被发现。

  DevOps方案的关键在于尽可能多的使用自动化技术 - 无论是把开发项目从测试阶段转移到运行阶段的流程,还是如何解决任何运行中产生的问题。

  项目必须被分解成更小的模块 - 所需的功能,必须严格进行优先排列,开发团队必须在操作环境中迅速开发出功能系统,来解决最高优先的需求。 “迅速”应该以星期来衡量 – 根据经验,第一次运行应该在12-18周之内进行。

  这就把需求从单一而庞大的应用程序,转移到由各种资源汇总的混合功能应用程序。数据中心内现有的功能应该与云应用和云服务相结合起来,这样就不需要持续重复开发,使用专业知识和数据集对整体复合应用程序所适用的领域进行增值。

  测试阶段应该在运行环境中并行实现,这样更多的性能问题可以尽早被发现,或者在虚拟环境中,由一些真实用户来进行测试。

  对于并行实现,通过使用虚拟化比较容易实现。现有数据库的副本可以对比运行DevOps代码的虚拟计算机。 然后测试可以针对现有网络负载进行运行,这样其性能可以在代码有效同时进行评估。

  确保异常情况可以迅速并有效地获得处理。测试阶段中人员力量是很重要的 –他们可以比计算机更有效的观察人们在使用应用程序时的规律和问题。多一些人员参与测试阶段 – 尽可能多的进行观测和评估。

  一旦测试阶段完成了, 然后就应该把应用程序切换到实时数据库, 把用户切换到新的代码。

  必须明白,DevOps方案,就其本质而言,是一个反复的过程。获得60%,70%或80%的解决方案,意味着下一步仍然有40%,30%或20%的问题需要解决。我们的目标应该始终是解决还剩下问题中最优先的部分,以及在最后代码运行之后出现的新需求。

  如何让你的DevOps战略硕果累累


  代码元素由开发团队所完成,尽可能使用自动化,完整的,全面认证的方式,把这些元素从开发团队的测试阶段,过渡到运行环境中,将有助于确保增量变化,并取得改善。

  重新运行,也可以是自动化的——尽管一个运行良好的DevOps项目不应该被要求重新运行,再执行,不过这也应该作为计划B。能够回到一个已知点 - 相当于一个备份,恢复时间目标和恢复点目标(RTO/ RPO) - 应该是任何DevOps项目设置的一部分。

  反馈也必须是自动化的。 没有必要等待支持部门收集意见和反馈,然后汇报给DevOps团队。获取反馈应该作为应用程序的一部分; 要求反馈应该作为流程的一部分。根据反馈对于业务的影响程度采取相应措施- 而不是这一问题从技术层面上听上去多么有趣。

  总体而言,DevOps对于加快IT部门确保其满足业务需求而言,是一个很好的方案。 然而,一个无法妥善执行的DevOps方案将导致更多的错误,会使用户对于他们获得的体验感到不满。

  实施DevOps策略并不是一件容易的事,因为它要求企业必须接受新的文化。 DevOps是一种文化,流程,技术和人文。

  它在文化和企业上需要重大改变,其中涉及到相当多的行为改变。这意味着要摒弃很多已经深入企业很多年的或显性或隐性的惯例。其中包括告诉那些已经工作多年的员工,他们每天惯于做事的方式已经落伍了,这是一个艰难的过程。

  只是简单把开发和运营团队放在同一个房间里,并不会带来一个成功的DevOps战略 - 每个团队都必须了解和认识到在云计算和软件定义时代进行合作工作的重要性。

  自动化技术,激励开发和运营团队合作工作,分配时间用于培训员工,根据创建即可执行原则来开发新的企业架构标准,将IT与业务目标相结合,所有这些步骤都将确保DevOps战略不会受到损害。确保一些细微的方面都涵盖到,将有助于DevOps更好发挥作用。

作者

Clive Longbottom
Clive Longbottom

数据中心专家,IT研究和分析公司Quocirca的联合创始人兼服务主管,该公司总部设在英国Longbottom,并在该领域拥有超过15年的经验。拥有化学工程背景,他从事工作过自动化,有害物质控制以及文档管理和知识管理项目。

相关推荐