【软件工程】DevOps的研究和解读

前言

最近学习了一些关于敏捷开发模式的课程,正好结合我最近在看的一个概念——DevOps,来阐述一下软件项目开发的一些观点和概念。

1、DevOps的历史由来

为了有一个完整的叙事逻辑,在此再简述一下早期软件开发:

  • 早期程序员什么都给会:对所要开发的软件的所有环节都有透彻的了解,从规格说明书编写、到软件开发、到测试、到部署、再到技术支持;
  • 随着业务的扩大,程序员群体内部开始分化为:软件工程师、网络管理员、数据库开发者、网页开发者、系统架构师、测试工程师等等。而网页开发者又能很快进化成后台开发者,前台开发者,PHP开发者,Ruby开发者,Angular开发者等等。

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

  • 软件开发人员编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署。早期所采用的软件交付模型,称之为“瀑布(Waterfall)模型”。

只是,这种模型比较理想化:

  • 适用于用户需求非常明确、开发时间非常充足的项目。大家按部就班,轮流执行自己的职责即可;
  • 但是,项目不可能是单向运作的;客户也是有需求的;产品也是会有问题的,需要改进的;
  • 于是,软件开发团队引入了一个新的概念,那就是大名鼎鼎的——“敏捷开发(Agile Development)”。

敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。其实简单来说,就是把大项目变成小项目,把大时间点变成小时间点(有关于敏捷开发的大致定义我就不赘述了,相信大家都有一个概念):

在这里插入图片描述
但是!

  • 敏捷开发虽然大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。研发们发现,运维那边,依旧是铁板一块,成为了新的瓶颈;
  • 对于做运维的人来说,他们的核心诉求就是“稳定压倒一切,天生排斥“改变”。(深有体会…原来做开发的时候还和运维吵过架2333);
  • 开发人员(Dev)和运维人员(Ops),一个跟随客户需求经常迭代版本,一个运维老版本讨厌版本迭代,而DevOps就是用来解决这一问题的工具/思想,用于协同敏捷模式下的开发和运维
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值