devops

DevOps

工作中,或多或少都听别人聊到过DevOps、瀑布开发、敏捷开发、持续集成、持续交付这些概念,今天来仔细探究一下这些单词。

参考一遍不错的文章,讲的很深入浅出:DevOps到底是什么意思?

起源
  1. 一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护

  2. 最初,程序比较简单,工作量不大,程序员一个人可以完成所有阶段的工作。

  3. 随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大。软件的复杂度不断攀升。一个人已经hold不住了,就开始出现了精细化分工。

  4. 码农的队伍扩大,工种增加。除了软件开发工程师之外,又有了软件测试工程师软件运维工程师

  5. 分工之后,传统的软件开发流程是这样的:

    软件开发人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署。

瀑布模型

早期所采用的软件交付模型,称之为**“瀑布(Waterfall)模型”**。瀑布模型,简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。

  1. 这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。大家按部就班,轮流执行自己的职责即可。
  2. 但是,项目不可能是单向运作的。客户也是有需求的。产品也是会有问题的,需要改进的。
  3. 随着时间推移,用户对系统的需求不断增加,与此同时,用户给的时间周期却越来越少。在这个情况下,大家发现,笨重迟缓的瀑布式开发已经不合时宜了。
敏捷开发

于是,软件开发团队引入了一个新的概念,那就是大名鼎鼎的——“敏捷开发(Agile Development)”

  1. 敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。

  2. 其实简单来说,就是把大项目变成小项目,把大时间点变成小时间点

  3. 敏捷开发大幅提高了开发团队的工作效率,让版本的更新速度变得更快。

  4. 很多人可能会觉得,“更新版本的速度快了,风险不是更大了吗?"

    其实,事实并非如此。

    敏捷开发可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的版本变化是比较小的,风险会更小(如下图所示)。即使出现问题,修复起来也会相对容易一些。

  5. 虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。研发们发现,运维那边,依旧是铁板一块,成为了新的瓶颈。

  6. 运维工程师,和开发工程师有着完全不同的思维逻辑。运维团队的座右铭,很简单,就是**“稳定压倒一切”**。运维的核心诉求,就是不出问题。

devops

这个时候,我们的DevOps,隆重登场了

  1. DevOps是一组过程、方法与系统的统称,用于促进开发技术运营和**质量保障(QA)**部门之间的沟通、协作与整合。【维基百科】
  2. 在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。
CI/CD

有两个词经常会伴随着DevOps出现,那就是CI和CD。CI/CD参考

  1. CI是Continuous Integration(持续集成)
  2. CD对应多个英文,Continuous Delivery(持续交付)或Continuous Deployment(持续部署)。
参考:

DevOps到底是什么意思?

CI/CD参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值