编辑推荐: |
DevOps
作为一种理念,推动开发和运维之间的合作,有效回应了当前的商业需求。它的实现是新观念、新工具、新技能的三者叠加。希望本文的介绍对大家有帮助。
本文来自于CSDN,由火龙果软件Alice编辑推荐。 |
|
手工编译,上传服务器文件,执行各种命令,启动和停止服务器,发现一个
BUG,改完再重复之前说的步骤...... 如今看起来啼笑皆非的重复劳动,在没有 DevOps 概念之前,全靠
IT 人员手工完成。
不仅如此,DevOps 概念的提出,最初因传统模式运维之痛而生。众所周知,DevOps 一词的来自于
Development 和 Operations 的组合。字如其意,DevOps 就是让软件开发人员和运维人员更好的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
《RightScale2018 年度云计算调查》报告数据显示,DevOps 的整体采用率从 74%
上升到了 78%,同时企业的 DevOps 采用率达到了 84%。30% 的企业正在全公司范围内采用
DevOps,同比增长 9%。
这些数字的提升不仅代表了 DevOps 可以带来实际效果的共识,也印证了 DevOps 这两年开始受到越来越多的企业重视。DevOps
概念的深入人心,离不开云计算、容器 /Docker、微服务、敏捷等相关概念和实施的成熟发展。其背后本质是企业
IT 的精益运营,以面对更快的业务试错与业务创新。
概念虽好,落地却难?
DevOps 的一个巨大好处就是可以高效交付。DevOps 理念指向“高度的自动化”,试图制定一条从开发到运行自动运行的流水线,最大程度地摆脱人工的束缚,达到企业生产力的升级。
比如,持续的集成与开发,实现从开发测试、上线运维的一体化自动流程;智能预警帮助用户自动监控集群运行状态,快速定位到问题具体发生的位置,及时通知用户以快速解决问题等。
DevOps 另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感。
由此可见,如果能采用 DevOps,公司就能够做更多的创新,缩短开发周期,将产品更加快速地推向市场;同时创造差别化的公司业务和价值,提高组织效率,而不是不停地修补旧问题。
虽说 DevOps 优势多多,前途大好,企业对 DevOps 的评价也很高,但实际情况却是说的人多,做到的很少。
究其原因,在于 DevOps 并不是简单地将开发部门和运维部门合并,更是企业文化、组织结构的变革,是通过自动化的基础设施、合理的流程规范以及智能的自动运行系统测试来加强开发部门和运维部门之间的协作和沟通。
首先,这涉及到观念问题。DevOps 的最终目的是加强开发部门和运维部门之间的协作和沟通,如何把现在的文化朝
DevOps 思维模式扭转,并且在开发和运维之间找到共识?
对于传统企业,特别是大型分布式组织,在整体意义上的 DevOps 成功往往是不可能实现的。因为 DevOps
要求深层次的文化和组织变革,要改变的太多太多。这意味着大家要扔掉奉行了几十年的显规则和潜规则。你不得不告诉老部下们,大部分他们知道的和每天做的事物都已经过时了。
其次,想要为 DevOps 和应用灵活性而重塑团队,就要有打破 IT 分组壁垒的勇气,并且需要在团队成员筛选上做出艰难的决定。
困难重重,如何实现?
毫无疑问,DevOps 对组织是非常有价值的,但是需要注意的是,整个公司都需要参与到 DevOps
里才能成功。DevOps 需要高级领导层的支持,也需要和最终产品相关的所有人的参与,而不仅仅是开发和运维部门。
第一,在开发和运维之间找到共识,这需要强大的领导力来实现变革。当然,它也需要花费时间和金钱,并且需要在团队成员筛选上做出艰难的决定。
可以从小处开始,不要期望一开始就能让所有人都信服 DevOps。实际中,在特定项目的小型组织内赢得大家的支持,就赢得了会在公司其他地方帮助宣传
DevOps 的大使们,这会带来乘数效应。
第二,围绕业务系统而不是职责来组织工作,这就是 DevOps 打破 IT 分组壁垒的寓意。一个团队应该有开发人员创建代码,从用户界面到业务逻辑和数据结构,也应该有运维人员负责操作自动化和部署。团队待在一起,共同为他们的应用和系统负责。
当然,为了促进 DevOps 战略,调整考核和激励机制是必要的。应该奖励系统创建和运维的整体团队,并且根据团队工作的全部要素来确定奖励。
第三,团队需要选择最合适的工具。虽然 DevOps 是一个概念,但工具是实现 DevOps 的重要组成部分。近几年来如日中天的
CORNERSTONE 就是实现 DevOps 最合适的工具之一。
在不了解DevOps生命周期的情况下,对DevOps的理解也会片面化。我们以CORNERSTOENE一站式云端
DevOps平台为例。让我们一起探讨DevOps的生命周期。
一、持续开发:
这是DevOps生命周期中软件不断开发的阶段。与瀑布模型不同的是,软件可交付成果被分解为短开发周期的多个任务节点,在很短的时间内开发并交付。
在CORNERSTONE任务模块里,任务分配给谁,就会是谁的责任。而且任务支持多责任人与子任务关联,所有的任务和状态都会体现在任务模块里,这个任务过程中的参与人员随时知道任务的状态和目前碰到的问题,可有效推进工作的解决。有了CORNERSTONE能够帮助我们追溯和监控,促进对于接任务的人员有效负起责任,并能够及时同步到信息。
二、持续测试:
在这个阶段,开发的软件将被持续地测试bug。CORNERSTONE平台覆盖完整的测试流程,可进行测试用例的编写,建立用例库,减少重复性操作,让研发团队的协作更高效,产品交付更快速。常用的两个功能为:
1)测试用例管理
通过编写测试?例,制定测试计划并执?,测试结果可直接关联到缺陷,方便对问题进行跟踪处理,实现对迭代质量的全程把控。
2)缺陷管理
强大的缺陷管理与统计功能,通过分组、解决状态、优先级等列表对缺陷进行全方位记录与跟踪,同时明确缺陷责任人,及时跟进解决缺陷;同时支持导入导出功能,导出时支持任意格式,不受模板限制。
三、持续集成:
这是支持新功能的代码与现有代码集成的阶段。由于软件在不断地开发,更新后的代码需要不断地集成,并顺利地与系统集成,以反映对最终用户的需求更改。更改后的代码,还应该确保运行时环境中没有错误,允许我们测试更改并检查它如何与其他更改发生反应。
CORNERSTONE?持将持续集成的结果部署到对应的测试环境,所有部署版本在测试环境中可随时访
问,?持灰度发布到产环境中。
四、持续部署:
它是将代码部署到生产环境的阶段。在这里,我们确保在所有服务器上正确部署代码。如果添加了任何功能或引入了新功能,那么应该准备好迎接更多的网站流量。因此,系统运维人员还有责任扩展服务器以容纳更多用户。
CORNERSTONE支持依赖脚本pipeline实现的DevOps,支持持续集成与自动化部署,可直接在可视化的服务器上进行操作,同时满足多种开发语言,彻底解决敏捷开发在运维层面的瓶颈,方便开发人员对项目开发生命周期进行全盘管理。
五、持续监控:
这是DevOps生命周期中非常关键的阶段,旨在通过监控软件的性能来提高软件的质量。这种做法涉及运营团队的参与,他们将监视用户活动中的错误/系统的任何不正当行为。这也可以通过使用专用监控工具来实现,该工具将持续监控应用程序性能并突出问题。
CORNERSTONE嵌?一体化监控运维平台,实现IT环境的数字化、标准化,直接运维分析的基础,减少
人工干预,降低?工成本。
最后,好工具得有能人掌控才能发挥其威力。即使找到了好用的工具,也需要有熟悉这个工具链,拥有相应技能的
IT 人员来提供技术支持,才能完成实现自动化的使命。
写在最后
总体而言,DevOps 作为一种理念,推动开发和运维之间的合作,有效回应了当前的商业需求。它的实现是新观念、新工具、新技能的三者叠加。虽然实现起来还有种种问题,但
DevOps 是大势所趋,作为企业的高层和开发运维人员,对这样的变革不能视而不见。 |