要从Ops迁移到DevOps,这是你应该知道的

DevOps方法在软件团队中越来越受欢迎,它可以帮助团队在竞争激烈的市场中取得领先地位并有效地交付软件产品。

今天,许多公司决定走这条路–从Ops迁移到DevOps。软件团队相信DevOps可以节省大量精力,并使他们专注于实际业务。为什么会是这样?从Ops迁移到DevOps有什么好处?

The Phoenix Project,可以帮助你对从一家Ops到DevOps的过渡情况有所了解。

什么是DevOps?

DevOps是一组鼓励敏捷思维方式以提高软件交付的效率和质量的实践。在传统的瀑布式开发 中,开发团队和运维团队被认为是分开的,每个团队都有其给定的任务,并且仅负责交付过程的一部分。通过这种模型,开发团队和运维团队在整个软件生命周期中相互依存,紧密合作。

在DevOps之前,传统模型涉及一组定义的阶段流,其中一个阶段的输出是下一步的输入。这使得所有阶段都相互依赖,从而使得团队交付新功能和修复错误花费的时间更长且成本更高。

DevOps的关键要素是协作,自动化,持续集成,持续交付,测试和监视。

DevOps的好处

DevOps的最大优势之一是它提供了快速的反馈。这使企业能够快速识别错误并了解客户的需求。它还使企业能够非常快速地发布功能。

DevOps的另一个好处是可以提供更高质量的产品和更少的故障。确定软件质量的关键方法之一是减少软件中的缺陷数量。根据CA Technologies进行的一项调查,采用DevOps和Agile方法具有巨大的积极影响,将开发流程的质量提高了41%。当然,开发团队和运维团队之间的协作,与提高产品质量有很大关系。

采用DevOps可以有助于营造轻松和谐的工作环境。传统方式的紧张感和压力会破坏团队的稳定性并降低他们的生产率。

DevOps的自动化任务为团队留出了更多的创新空间。DevOps可以在软件开发过程的每个阶段实施自动化和监视。从集成,测试和发布到部署和基础架构管理。

DevOps可帮助降低企业成本,包括软件维护,人员支出等,使公司工作更快,利润更高。

DevOps与传统Ops有何不同?

当开发团队和运维团队是分开的时,每个团队只负责交付的一部分,即开发人员进行开发,然后运维人员负责部署和维护。IT Ops的目标是:确保生产环境中,软件正常运行。使用传统的方式,就意味着尽可能少地更改软件和基础环境,以保证它的稳定。

相反,DevOps鼓励开发团队和运维团队协作,了解彼此的任务和关注点,并始终保持关注全局。由于更高水平的自动化工具,DevOps团队在软件运维上花费的时间也更少。利用这些额外的时间,团队可以致力于改善基础架构,创新和自我完善。

1. 思维方式

从IT Ops迁移到DevOps的第一步就是要了解,软件工程师可以控制整个交付过程。

IT Ops负责确保系统的稳定性和可靠性,要求尽量减少更改次数。

但是在DevOps中,这种思维方式行不通。工程师现在成为组织的方向盘,他们构建自动化交付流程,改善应用程序交付,找到确保安全性的新方法,并对软件的失败和错误提前预判。

2. 基础设施

组织搭建基础设施,曾经是利用一些脚本,这些脚本可以自动化过程的某些部分,但还是需要手动触发。这需要花费了很多时间才能完成,并且产生了许多本可以避免的人为错误。

在DevOps中,ops的工作远不止脚本。DevOps实际上是在编码,通过代码构建和配置云基础架构。这是大多数开发人员从“服务器思维”(server thinking)到“服务思维”(service thinking)的转变。基础架构即代码,使组织能够定义基础架构组件的外观。你需要为该组件的部署步骤,提前定义一个流水线。

要成为基础架构编码员,而不是基础架构管理员,你需要考虑工作负载和服务而不是服务器。

3. 自动化

在传统的IT实践中,自动化部分涉及创建一致性并记录所有内容并减少变量。而且,手动操作和重复性任务总是容易出错。一遍又一遍地进行相同的配置,可能会使运维人员感到毫无趣味和效率低下。

自动化是开发周期每个阶段的一部分。从代码提交到构建触发,执行单元测试,打包,部署到环境,验证测试,再到最终部署到生产环境。

自动化配置基础架构,配置环境和部署软件是DevOps的主要优势。这有助于组织在数小时内交付代码到生产环境,并获得更快的产品反馈。

4. 失败与错误

DevOps遵循快速失败(Fail Early)理念。在传统的IT环境中,软件失败常常不能容忍。组织需要为风险的避免做任何事情。

在DevOps中,失败是软件的一部分,这是不可避免的。如果你的故障很小且过早发生,则可以控制故障,从而可以快速恢复。失败是至关重要,因为它是学习的机会。出问题的地方比做正确的事更重要。

5. 可见度

传统的IT公司,关于谁看到软件的哪些内容方面,有严格的流程和权限控制。

在DevOps中,每个人都必须具有对该软件的访问权限和可见性。这有助于开发人员,更好地检测问题和解决问题。应将应用程序日志记录与环境日志记录结合使用,以便开发人员了解应用程序在不同环境中的工作方式。

监控有助于团队确定故障点,提高自动化程度和软件质量。

DevOps工具

DevOps的最佳盟友是带来效率的工具。在整个软件交付周期中,你需要多个工具来实现自动化:

  • 协作工具:例如交流聊天和知识共享
  • 构建工具:源代码管理,持续集成,数据库管理
  • 测试工具
  • 部署工具,配置管理, 组件管理,编排和调度
  • 监控工具,日志记录

学习所有这些不同的工具本身可能会很困难,但是你还需要确保选择的工具兼容。

自动化工具旨在支持软件发布速度和应用程序质量,保持服务器处于稳定状态。

DevOps实施

DevOps没有简单的指南。

组织要想实施DevOps,应该从改善开发团队和运维团队之间的沟通和协作开始。这将帮助他们更好地了解需求和彼此的任务,以便他们可以共同实现一个目标。

Ops工程师已经具备使用DevOps工具,构建自动化环境的能力。组织要想实施DevOps,开发团队和运维团队需要转变思维方式,专注于持续集成和持续部署等方法。

组织要想实施DevOps,应该从小处着手,然后逐步扩大规模。将DevOps文化整合到一个小团队中并观察其效果总是比较安全的。从这个过程中学习和调整公司的结构和方法。

这就是,你如何找到适合组织业务的DevOps流程的方式。

译文链接:https://dzone.com/articles/want-to-move-from-ops-to-devops-here-is-what-you-s

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址