编辑导语:随着互联网的发展,用户对产品的要求越来越高,更多的用户追求“好看”和“好用”。笔者分享一种新的开发模式——DevOps开发模式。有兴趣就来看看吧。
大家在大学里一定学过瀑布开发,在工作中一定听说过敏捷开发。现在DevOps开发出来了,这个估计就不太了解了~

来吧,让我们接受知识的洗礼。知识就是力量和金钱,奥利。
我先跟你说两句。第一句是趋势,第二句是概念。
趋势:目前很多大公司,如阿里、腾讯、今日头条、美团等等,都在使用DevOps开发模式。
理念:DevOps =开发者+运营商,即开发团队和运维团队的融合。
哈,就看概念吧。什么感觉?不可能理解感觉这个概念,这辈子也不可能理解。
没关系,这里只要记住两件事:第一件事是DevOps把开发和运维绑定在一起;第二件事是DevOps不是工具什么的,而是方法论。
剩下的就交给我了,往下看,一定要给你解释清楚。
一.发展历史
了解一个新事物为什么会出现,比如DevOps,最好的方法就是了解他的过去和他的历史。
如前所述,DevOps是一种开发模型。提到“发展模式”这个词,你能想到什么?是瀑布开发还是敏捷开发?
好了,我们先来看看这两种开发模式的进化史。
二。瀑布开发
1.背景
互联网早期,程序员是作为科学家存在的,那个时候程序员的办公室也叫实验室。
那时候还没有那么多网友,大多数时候都是怀着敬畏之心去问他们的需求。
而只要开发出来的产品能解决他们的问题,他们就争先恐后地给程序员烧香送锦旗。自然,他们不敢对RD循环有太多的要求,需求自然是恒定的。
在这样的背景下,瀑布开发模式诞生了,如下图所示:
2.特征
瀑布开发模式有三个最大的特点:
需求是固定的;开发周期固定,可能是3个月,也可能是1年;设计、开发、测试、运维各个环节都是独立的。当前环节完全完成,就会涉及下一个环节。3.不足之处
相信大家都知道这种模式的弊端。综上所述,需求无法快速验证!
可能花了一年时间开发的东西早就没了,不再适合市场;也有可能工作半年后,你发现自己拿出来的东西和用户的需求完全不一样,只能彻底推翻,从头再来。
这时,敏捷开发出现了。
三。敏捷开发
1.背景
随着时代的发展,网民越来越多,口味也越来越刁钻。
产品只是“能用”,已经不能满足他们的胃口了。越来越多的网民越来越追求“可用性”和“好看”。
而且,这些人越来越“善变”。也许今天他们认为这很好,明天他们认为这很好。软件开发的周期也缩短了。
时代背景下,总有那么几个大脑进化得更快。因此,敏捷开发模式登上了历史舞台:
2.特征

最大的特点就是一个字:快!
具体来说,敏捷开发可以更快地发现问题,产品可以更快地交付给用户,团队可以更快地获得用户的反馈,从而更快地做出响应。
另一个特点是开发和测试从对立变成了同一战线。
在瀑布模式下,测试的工作就是尽可能的找出开发出来的东西的毛病,适当的拼个你死我活。而敏捷开发则将两个目标统一起来,共同努力更快更好地开发产品。
从敏捷宣言中,我们可以窥见它的真正含义:
十二项敏捷宣言:
我们的首要任务是通过尽早和持续地交付可评估的软件来满足我们的客户。愿意接受需求的变化,即使是在开发的后期。敏捷流程可以控制变化,从而为客户赢得竞争优势。经常交付可用的软件。分娩间隔越短越好。可能是几周到几个月。在整个项目开发期间,业务人员和开发人员必须夜以继日地合作。围绕那些有积极性的人建立项目。给他们需要的环境和支持,相信他们能很好的完成工作。与开发团队以及在开发团队内部交流信息的最快和最有效的方式是面对面的交谈。可用软件是进步的主要衡量标准。敏捷过程倡导可持续发展。投资者、开发者和用户应该始终合作,保持稳定的开发速度。为了增强敏捷性,我们应该注重突出的技术成就和良好的设计。简单性——最大化不必要工作量的艺术——至关重要。最好的架构、需求和设计都来自自组织团队。团队应该定期反思如何变得更有效,然后相应地改变和调整其行为。敏捷宣言是给银河系带来和平,维持各自平衡的重要一步。
长期以来,与以往基于过程和机械化的方法相比,这是第一种基于文化和“人性”连接不同关键项目利益相关者的方法。
人们开始互相交流,举行基本的会议,开始不断地交换意见和看法。
他们开始意识到他们的共同点比他们想象的要多,客户开始成为他们中的一员,而不是像以前一样只是在项目上砸钱然后祈祷一切顺利。
3)缺点
敏捷开发虽然大大提高了软件开发的效率和版本更新的速度,但其作用仅限于开发环节。我们发现,在运维方面,非常落后的在线手动部署已经成为新的瓶颈。
运维工程师和开发工程师的思维逻辑完全不同。运维团队的座右铭很简单,就是“稳定压倒一切”。运维的核心需求是没有问题。
什么情况下最容易出问题?当变化发生时,事情最容易出错。所以运维是很排斥“变”的。
于是,两人的矛盾爆发了。
这时,神秘的主角DevOps隆重登场。
第三,DevOps开发
1.背景
当今时代,互联网用户的数量越来越多。在这种背景下,许多互联网厂商和各种现象级产品,如微信、淘宝、Tik Tok等。,纷纷诞生,互联网竞争越来越激烈。
快速迭代产品,快速占领市场,快速占领用户心智,已经成为所有互联网公司的目标。此时对产品开发提出了更高的要求,需要对产品进行持续的开发、集成、测试、部署和监控,每天每时每刻都可以推出新版本。
是时候把开发和运维的矛盾联系起来了。怎么才能缓解?然后把它们放在同一战线上:
2.特征
在这种模式下,会“更快”,会更上一层楼:用户可以很早就拿到最终产品或服务的一部分进行实际体验,以便尽快把产品送回需求管理团队和产品研发团队。
而这一切都需要归功于:DevOps把开发、测试、运维拉到了同一战线!
敏捷有自己的宣言,DevOps也有自己的清单:
操作列表:
开发团队和运维团队之间没有障碍,都是DevOps统一流程的一部分。从一个团队转移到另一个团队的工作可以得到高质量的验证。没有工作的积累,所有的瓶颈都处理好了。开发团队不占用运维团队的时间,因为部署和维护都在同一个时间盒里。开发团队不会在周五下午5点后交付部署代码,让运维团队周末加班擦屁股。开发环境是标准化的,运维人员可以轻松扩展和部署。开发团队可以找到合适的方式交付新版本,运维团队可以轻松部署。各队之间的沟通线路清晰。所有团队成员都有时间进行实验和实践来改进系统。定期在系统中引入缺陷并处理它们。每一个学习到的经验都应该记录下来并与相关人员分享。事故处理成为日常工作的一部分,处理方法为人所知。综合来看,在人力成本如此之高,市场竞争如此激烈,用户需求变化如此频繁的情况下,DevOps是大厂商必须选择的道路。
四。结论。
好了,这就是今天给你的总结。知道这个有什么用?

作为一个互联网行业最前沿的产品经理,你说你应该了解这些东西。那么,作为颜值和智商兼备,然后日夜盼望世界和平的码农,眼前就有这样一个机会。不应该好好珍惜吗?
#专栏作家#
小庄同学;微信官方账号:小庄的产品笔记。人人都是产品经理专栏作家。互联网资深人士,各大平台专栏作家。
本文由人人作为产品经理原创发布。未经许可,禁止复制。
题目来自Unsplash,基于CC0协议。


