对于长期在孤立的架构下工作的组织来说,转移到协作式DevOps系统似乎是难以成功的。为了进一步提高效率,必须改变观念,并进行团队文化改变。例如:许多人认为只有自动化工具才能解决DevOps,其实这是不准确的。
只有当团队团结一致并朝着一个共同的目标努力时,DevOps才会取得成功。
这是成功实现DevOps的前提:
DevOps实施需要时间
DevOps并不像开发和运维整合在一起那样简单。适应了孤立工作的团队都发现很难适应协作工作。这是一次巨大的转变,正确实施需要时间。
测试的质量成为贯穿交付管道的连续过程。这样可以确保产品快速完成,并在到达交付时间点时就已经进行了足够质量检查和测试,以确保没有错误。
分步实施
任何更改都需要时间。因此,更好地分阶段实施DevOps。
- 步骤1:根据公司的要求,DevOps更改的第一步将是建立敏捷的开发过程。
- 步骤2:如果要为DevOps进行自动化,则组织需要适当的框架。
- 步骤3:实施持续集成的过程。编码人员经常将其代码推送到公共源代码存储仓库中。编码人员不是在周期结束时提交代码,而是在软件开发的每个节点都及时提交代码,以便可以更早解决冲突。
- 步骤4:接下来是持续交付阶段,这是集成阶段的扩展。使用连续交付系统,确保最新代码及时部署。
- 步骤5:然后将部署和测试阶段设置为自动化。
- 步骤6:最后一步将是连续部署阶段。此阶段扩展了连续交付阶段,在此阶段,如果所有测试均通过,则软件将自动部署。这样做可以快速获得反馈,并可以迅速进行处理。
领导的重要性
通过孤立的运营,所有领导角色的人物都被固定在了他们的核心领域。但是在DevOps中,leader们必须与其他流程团队合作以确保操作顺利进行。随着团队之间交互方式的可能变化,领导者必须对团队成员的努力提供必需的支持。
在DevOps环境中,所有部门相互混合,以便每个人都知道在每个阶段都会发生什么。这些过程是连续的。在这里,领导角色至关重要,以确保各个模块之间的集成顺利进行。DevOps的leader必须建立一个环境,使每个成员都能为项目的成功做出贡献。
自动化和工具
尽管DevOps的成功很大程度上取决于团队和流程,但不能否认工具在实现正确自动化方面的重要作用。从传统的软件工具转移到DevOps工具是具有挑战性的。但是,通过为合适的人员分配合适的工具,公司可以轻松地遵循连续的部署,集成,测试和交付过程。
DevOps成功的一些最佳工具是:
- 代码存储库管理 –Subversion,Git,CloudForce,Docker Hub
- 服务器构建 –SonarQube,Jenkins,Artifactory
- 管理配置 – Ansible,Saltstack ,Puppet,Chef
- 连续测试自动化 –Selenium,RF,Jenkins,appium,UiAutomator,IBM Rational Functional Tester
- 虚拟基础架构 – Microsoft Azure,Google Cloud,AWS Cloud,VMware vCloud
- 基础架构云端管理 –Docker,Azure Manager,Google Cloud Deployment Manager,AWS CloudFormation
即使市场上有数百种工具可用,公司也要决定合适的工具来集成和耦合,以实现连续的过程,确保了各阶段之间的平稳运行。
团队支持
短时间内的文化转变似乎是不可能的。将开发,运营,测试和质量保证部门的人员,工具和流程整合到一个统一的流程中,这是一个很大的挑战,必须耐心地解决。
DevOps的转换过程必须以获取长期利益的方式进行。从入门级到管理职位的团队必须组成团队,并且必须告知每个团队所带来的价值。成功的跨职能工作需要得到奖励,领导者必须随时提供帮助,以便顺利过渡。
持续监控绩效
领导者必须亲身实践,以确定限制产出的瓶颈。过渡和变化的系统将带来一些挑战。DevOps流程需要在开发,集成,测试,部署和工具操作中进行连续监控。确保建立适当的反馈系统,以便可以发现问题并使用所选工具纠正问题。
- 持续集成:通过在DevOps中进行持续集成,确保快速发布新开发的代码。
- 连续交付:通过连续交付,您可以合并其他自动化和测试功能,以便准备部署最新代码。
- 持续部署:在持续部署的最后阶段,代码将经过自动测试,然后在没有任何人工干预的情况下投入生产。
结论
DevOps是一个巨大的转变,不能一蹴而就。成功的DevOps环境需要逐步增加,团队协作,强大的领导能力,正确的工具和自动化。
- 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。