从Ops迁移到DevOps所产生的变化

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

[[373728]]

 DevOps方法在软件团队中越来越受欢迎,可以在竞争激烈的市场中取得领先地位并有效地交付创新产品。如果您已经阅读了《凤凰计划》,那么您就会对从一家Ops到DevOps的过渡情况有所了解。

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

什么是DevOps?

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

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

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

DevOps的好处

DevOps的最大优势之一是它提供了快速的反馈循环。这使企业能够快速识别错误并了解客户的需求。它还使他们能够非常快速地发布功能。此外,它导致更高的效率和更好的软件。

DevOps的另一个好处是交付了更高质量的产品和更少的故障。确定软件质量的关键方法之一是软件中的缺陷数量。采用DevOps和Agile方法具有巨大的积极影响,将开发流程的质量提高了41%。当然,开发团队和运营团队之间的协作与提高产品质量有很大关系。

采用DevOps可以有助于稳定和平衡的工作环境。释放时间的紧张感和压力会破坏团队的稳定性并降低他们的生产率。

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

如果操作正确,DevOps可帮助降低企业的生产和非生产成本。可以减少维护,人员,质量成本等,使公司工作更快,利润更高。


DevOps与传统Ops有何不同?

当开发团队和运营团队是分开的时(在传统运营中就是这种情况),每个团队都在照顾交付的一部分–开发人员进行开发,然后运营。换句话说,IT Ops的目标是:确保生产中一切正常运行。它们确保资源可用并以最佳性能运行。他们提供了可靠且优化的基础架构,这意味着确保尽可能少地更改以保证它。

相反,DevOps鼓励这些团队团结一致,了解彼此的任务和关注点,并始终保持全局。由于更高水平的自动化和自助服务工具,他们在管理支持上花费的时间也更少。利用这些额外的时间,团队可以致力于改善基础架构,创新和自我完善。

心态开关

从IT Ops迁移到DevOps的第一步是要了解您可以控制整个交付过程。IT Ops负责确保系统的稳定性和可靠性,确保更改次数减少,变量减少并且最终用户流程到位。

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

在DevOps中,决策制定离实际工作团队更近。

基础设施

基础结构设置曾经是一些脚本,这些脚本可以自动化过程的某些部分,但需要手动触发。这花费了很多时间才能完成,并且产生了许多本可以避免的错误。

在DevOps中,ops的工作远不止脚本。它实际上是在编码-基础结构本身已成为代码。通过代码构建和配置云基础架构。这是大多数开发人员从“服务器思维”到“服务思维”的转变。基础架构即代码使您能够定义基础架构组件的外观。组件中捆绑了有关如何配置它的逻辑。您需要为该组件准备好进行部署的步骤定义一个管道

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

自动化是关键

在传统的IT实践中,自动化部分是关于创建一致性并记录所有内容并减少变量。文档是必不可少的,但是它绝不能减慢自动化速度,更糟糕的是,它可以成为不自动化的借口。

手动工作和重复性任务总是容易出错。一遍又一遍地进行相同的配置,否则可能变得毫无趣味和效率低下。

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

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

失败与错误

DevOps遵循Fail Early理念。在传统的IT环境中,失败不是一种选择。您为避免损失的风险做任何事情:介绍会议,流程,批准…

在DevOps中,失败是游戏的一部分。这是不可避免的。如果您的故障很小且过早发生,则可以控制故障,从而可以快速恢复。关于失败的讨论至关重要,因为它是学习的机会。出问题的地方比做正确的事更重要。DevOps是一种无可指责的文化。DevOps实践支持这种文化,从测试驱动的开发,小批量部署,自动化开始。

可见度增加

传统的IT公司在看谁看到内容方面有流程和限制。有权进行监视被认为是巨大的责任。在DevOps中,每个人都必须具有对该软件的访问权限和可见性。这有助于开发人员领先于问题,更好地检测问题和解决问题。应将应用程序日志记录与环境日志记录结合使用,以便开发人员了解应用程序在不同环境中的工作方式。访问监控有助于团队确定故障点,提高自动化程度和软件质量。

工具

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

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

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

自动化工具旨在支持发布速度和应用程序质量。它们将帮助您快速而轻松地还原任何不需要的更改。如果代码外发生更改,则工具将还原更改并保持服务器处于稳定状态。

入门

DevOps没有简单的指南。绝对应该从改善开发和运营团队之间的沟通和协作开始。这将帮助他们更好地了解需求和彼此的任务,以便他们可以共同实现一个共同的目标。Ops工程师已经具备使用工具,构建自动化和支持环境的能力。他们需要转变思维方式,并专注于持续发展方法

从小处着手,然后逐步扩大规模。将DevOps文化整合到一个小团队中并观察其成就总是比较安全的。从这个过程中学习调整和调整公司的结构和方法。这就是您如何为您的特定业务找到合适的平衡点。

 

责任编辑:姜华 来源: DevOps云学堂
相关推荐

2020-05-21 11:12:38

DaaSDevOps托管服务

2010-09-29 11:06:21

活动目录OpenLDAP

2010-07-20 09:48:33

2013-06-21 13:49:08

MariaDB

2012-05-21 10:23:36

2016-10-26 16:44:44

WatchfinderAWS云计算

2011-06-24 10:10:35

SVN

2020-07-27 11:35:26

GitHub代码开发者

2022-06-06 07:24:09

Caddy开源Ubuntu

2021-11-29 09:44:03

UmiJSVite前端

2011-04-25 09:35:31

TwitterJava

2013-05-03 09:49:38

MySQLMariaDB

2009-02-06 10:32:00

UnixLinux服务器

2014-04-21 15:01:15

2021-01-07 08:00:00

KubernetesDevOps容器

2012-02-24 09:34:48

SVNGit

2020-06-11 08:02:38

VMwareHyper-VOpenStack

2009-04-16 17:23:37

OracleBasicFileSecureFile

2020-09-09 09:38:47

GoLangNodeJS编程语言

2022-07-27 22:48:29

消息中间件RocketMQ架构设计
点赞
收藏

51CTO技术栈公众号