摘 要:DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战。开发团队要求的不断满足新的客户需求,并快速实现新的功能。而运营最关心的是“稳定压倒一切”,任何差错都有可能对生产环境中的用户造成直接影响。
DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。企业通过以下7个方面来实施DevOps:
1. 确定共同目标
在当今的经济竞争环境下,只有企业保持足够敏捷,才能在激烈的竞争中脱颖而出。传统过程中,开发人员和运维人员各自为营,工作角度和目标完全背道而驰。然而DevOps需要所有团队人员彼此配合,完成企业的共同目标。DevOps需要一个更加宽阔更加有力的组织性的改变——一个是拥有共同目标和预期效果。对为什么公司正在向更好的合作发展和通过DevOps实现更高的敏捷性的需要达成共识是有效实施的关键。
2. 不断发展的架构模型
容器技术、单页面的Web应用程序(SPA)、Node.js、移动互联网应用、物联网和Web API等这些先进技术已经成为了应用接下来发展的前景。他们颠覆了传统软件开发的生命周期(SDLC),从而也颠覆了传统架构的模型。由于代码数和单元部署数正在向快速增长的方向发展,这也意味着源代码管理、版本管理和发布管理等变得更加相关和繁琐。然而开发人员总数想着更快更直接地完成新的产品,势必忽视更多运营管理和部署的问题。为了使这些类型的中断管理有意义,唯一的方式是通过一个成熟的DevOps的方法,和一个强大的DevOps平台。企业通过采用DevOps战略,从而获得更好的服务。
3. 集成现有的安全和治理模型
越来越多的企业正在朝着新的混合模型的方向发展,它是涉及了传统内部部署的数据中心、公共云、私有云和将服务与平台作为一种服务能力的软件所形成的新的混合模型。新的混合模型相比于同类型的模型,带来了更多的架构发展趋势的讨论,从而诞生了如何在这么多不同实体和供应商下实现管理和发布的问题。然而一个集中的DevOps策略可以在很大程度上减轻混合模型的问题。企业通过将现有的安全模型和工具集成到平台来实施DevOps策略。同时评估安全模型和工具所引起的差别,在必要的地方引进新的工具和能力,以此来实现无缝地协同合作。
4. 环境异质性(机器/OS)
当环境越是单一,所需的自动化工具的数量(图像、配置管理、发布、监控等)可能会相对较少,这就使不同部门在分享经验、代码和调整等变得更加简单。任何已经获得成功的IT运维组织都必须与不断拓展的平台和应用类型所带来的复杂性做斗争,这时,企业需要一个架构和平台策略,来帮助企业决定该向哪些领域投资,以及放弃那些不相关的领域。
5. DevOps的启用
对自动化而言,先进的工具是关键性的因素。事实上,DevOps的概念并不是新的概念,但是在当今的时代下,现有的各种先进技术和工具使得进行自动化变成了可能。但是,只是提供一个将工具无缝集成的平台是远远不够的,实现DevOps计划时,还需要使用同等水平的“设计思维”。例如,将DevOps工程师作为计划团队的主要成员,当开始一个新的项目时,团队的管理者申请什么样的模型元素呢?如何重载 DevOps平台?什么自动化元素已经可以使用对应着哪些需要被新创建?在DevOps的世界中现有团队成员的应该肩负什么样工作职责和扮演什么样的角色?这些问题都是制约实施DevOps战略的重要因素,企业需要解决这些因素,从而产生一个合适的“设计思维”。
6. 改造投资
一个企业的DevOps平台和计划不会是免费的,从而产生什么样的业务线(LOB)来完成支付,是否使用开源产品等的问题。DevOps将会是一个很好投资,这是投资于交货速度、通过自动化实现高质量的交付和采取的减少形式或重新分配资源来降低成本,从而在SDLC进行传统的活动。由于企业级的工具通常不是完全免费的,存在一定的获取和管理的成本,然而将“自动化服务”利用于消费模型中,将开源工具集成到平台上,编写自动化脚本并且完成管理。
7. 自上而下与自下而上的购买
当行政级别的企业部署DevOps战略时,他们更多关注更多的是一些成本数、降低的部署周期时间和积极吸引他们进入市场的时间。包括DevOps在内,得到执行层面的帮助和支持是任何转型成功的关键因素,但只是一个自上而下的方法不会使DevOps成功,只是到达开发人员和在每个环节并得到他们很好的实施的先决条件。DevOps通过自动化水平也重新定义了在开发和测试团队的角色。开发人员和测试人员有自己的工具和方法,如果使用战略需求的标准化工具时,他们会非常不情愿的放弃原有的工具。当许多员工之间互相抱怨时,这是没有成功转型的一个很好的迹象。开发人员和测试人员也围绕如何建设完成现有的知识领域,应用组件的依赖关系是什么,什么是更相关的测试场景等等,这是实现自动化等的关键信息。当开发人员和测试人员成为合作伙伴时,也意味着转型是成功的。
DevOps是IT交付过程令人兴奋和具有深远意义的转变。随着软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作, DevOps势必会成为企业转型的主流。