DevOps到底是什么?

DevOps是什么?

其实DevOps是两个英文字的缩写,Development(开发)和Operations(运维),同时DevOps其实是一个文化和概念,并不是特定指某一个做法。

这个其实和敏捷(Agile)是一个概念,敏捷也是一个文化和概念。敏捷基本核心概念是把周期缩短,通过快速开发,通过失误提前发现问题,提前做调整,也就是Fail Fast的概念。

摘抄自网络的一句话,非常有代表意义,敏捷执行下来能够带来的一个好处

所有系统都有bug,但是当bug被修复的速度超过客户能够发现和反馈的时候,就不算是bug。
对DevOps来说,DevOps的核心理念是:

减少开发和运维之间的隔阂,让很基于敏捷的开发能够快速的上线并且整个流程非常流畅。

在这里插入图片描述
​DevOps是一个流畅的流程用白话一点来说,Dev代表着开发者,Ops代表着运维,代表开发结果上线。其实DevOps流行起来和敏捷开发有直接关系,我们常说敏捷对项目开发有多好,从项目管理来看如何执行,但是很少有人提到从工程师和实际开发的角度上面来说到底需要什么才能够支撑这种快速开发模式。

在比较严谨云环境发布过软件系统的人就知道,其实要更新一个软件版本,要经过很多流程,当遇到开发速度变快的时候,常常运维和开发可能脱节造成敏捷更本跑不动。所以,要跑好敏捷开发,没有DevOps基本上是不可能的。别说Ops了,如果你的Dev都被一些琐事浪费掉了时间(例如手动构建,手动测试等),那效率该有多低呢?

举个例子,在团队中开发的时候,常常遇到的事情是有些人commit 代码的时候忘记把一些程序上到版本控制中,结果另外一个工程师发现整个系统无法构建,而本来的开发者因为出差或者请假所以找不到的时候,那大家工作都会被耽误,这个还算小事,如果因此耽误到debug正式系统突发性问题的时候,麻烦就很大了。

结论,DevOps是技术上支撑敏捷开发可能性的环境。而要达到快,自动化是最为关键的地方,也是整个DevOps的核心。

DevOps主要关注的两个方面

关注组织架构

在这里插入图片描述
一致性理念,高效沟通,敏捷型、学习型团队
Ø统一思维、目标、技术栈及工具链
Ø协作机制和沟通机制
Ø响应变化的敏捷度
Ø软件架构设计能力
Ø快速试错,持续学习和创新

关注软件生命周期
在这里插入图片描述
高度自动化持续集成、持续部署和发布

Ø持续集成
Ø配置管理
Ø持续部署
Ø持续发布

DevOps中的构建和发布

DevOps中关于软件生命周期的东西,莫过于CI/CD(持续集成,持续发布),首先我们从DevOps这个单词说起。

DevOps中的Dev基本上有以下几个阶段
在这里插入图片描述
构建循环其实又对应到了几个不同的名词Continous Integration、Continous Delivery和Continous Deployment。

什么是Continuous Integration (CI)

作为开发人员,在开发的时候,最好是完成一个小的功能就要build一下,以校验有没有问题,越早发现问题,越容易处理。比较问题积累了一堆在解决的话,通常来说处理时间相对的短。当一个人开发的时候都有构建不成功的时候,合论一个团队多人开发呢。所以同样道理,越早将大家的代码一起构建,越早发现问题,越容易解决问题。CI讲的就是这个,如何越早和越快把大家的应用程序做构建,并执行测试以确保从最基本层面保证没有问题。

在这里插入图片描述

什么是Continuous Delivery(CD)

当程序构建没有问题,测试也没问题后,下一个步骤就是将其发布到线上。依照不同类型程序有不同上线方式,如果是微服务架构的,可能是发布docker容器,所以在这个阶段就是自动产生出对应的docker image 。如果是网站项目,可能就是发布tar包Java 程序,只需要将package提供给运维就可以快速上线了,所以CD主要指的是build package 的动作。

在这里插入图片描述
从整个阶段来说就是打包(build Package)

什么是Continouous Deployment(CD)

这个Continouous Deployment和Continous Delivery差异在于,Continous Delivery只产生出可用来上线的内容,传统上线或者更新还是要由人来操作的。Contiouous Deployment 则是连上线都自动化处理。比如以Docker image来说,就是自动把Docker image发布到容器服务里面,然后更改负载均衡的设置,让这个容器上线服务。到了这里,可以看到,整个过程变为,编译代码,测试代码,打包程序,发布程序的一条龙服务,开发完城后,可以一键完成上线。

希望大家对于DevOps 中的CI/CD有所了解。整个DevOps重点就是快,而要快就要能够重复执行,也就是达到自动化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DevOps 是一种新的软件开发方法论,它将软件开发、质量保证、运维和运营四个领域结合起来,提高软件产品的质量和效率。 DevOps 的核心思想是通过提高团队协作和自动化流程来缩短产品上线周期,提高软件的可用性和安全性。 ### 回答2: DevOps是一种结合了开发(Development)和运维(Operations)的文化、方法和实践。它旨在通过软件开发团队和运维团队之间的协作和沟通,打破传统的分工模式,实现软件开发、测试、交付和部署的流程自动化、持续集成和持续交付。 DevOps的核心理念是通过自动化工具和流程,将开发和运维环节紧密结合起来。它鼓励开发和运维人员共同参与从软件的开发阶段到部署和运行阶段的整个生命周期。开发人员与运维人员之间的协作和沟通可以减少问题和错误,提高软件的质量和稳定性。 DevOps重视持续集成(Continuous Integration)和持续交付(Continuous Delivery),通过频繁地集成代码和自动化的测试,能够快速发现和修复问题。持续交付则指的是能够在任何时候将可靠的软件版本交付给用户,实现更快速、更可靠的软件交付。 DevOps还注重监控、日志和问题解决。通过实时监控系统性能,快速捕获问题并及时解决,可以降低系统故障和停机时间,提供更好的用户体验。 总而言之,DevOps帮助开发和运维团队建立合作、高效的工作流程,加速软件开发和交付过程,提高软件质量和稳定性,满足当今快速迭代的软件开发需求。 ### 回答3: DevOps是一种软件开发和运维的方法论和文化。它通过将开发团队和运维团队紧密结合,促进沟通和协作,实现高效的软件开发和持续交付。 DevOps的核心理念是将软件开发和运维视为一个整体,强调开发人员和运维人员之间的协作和共同责任。传统上,开发和运维是两个独立的部门,存在着沟通障碍和合作困难。DevOps通过打破这种壁垒,使开发和运维团队能够更紧密地合作,共同解决问题,提供快速响应和高质量的软件交付。 在DevOps中,自动化是一个重要的概念。通过使用自动化工具和流程,可以减少手动劳动和错误。软件开发和部署过程中的许多重复、繁琐和容易出错的步骤可以通过自动化来处理,提高效率和质量。此外,DevOps还强调持续集成和持续交付的实践,通过频繁地进行代码集成和部署,快速反馈和修复漏洞和问题。 DevOps还注重监控和日志的重要性。通过实时监控软件的性能和运行状态,可以及时发现和解决问题,避免发生严重的故障。同时,收集和分析日志可以帮助开发人员改进代码和系统设计,提高软件的稳定性和可靠性。 总结来说,DevOps是一种团队合作的方式,通过结合开发和运维团队,借助自动化工具和流程,追求快速、高质量的软件开发和交付。它强调协作沟通、自动化和持续改进,旨在提高效率、减少错误和改善软件质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值