瀑布式开发和敏捷开发的运维部署工作的差异及方法
发表时间:2023-10-15 14:05:02
文章来源:炫佑科技
浏览次数:232
菏泽炫佑科技
瀑布式开发和敏捷开发的运维部署工作的差异及方法
无论是瀑布式开发、敏捷开发还是开发,整个流程都分为设计、开发、测试、部署四个部分,但每个部分的开始和结束时间节点是不同的。 如下所示:
开发模式的差异.png
从瀑布式开发到敏捷开发自动化软件开发,各个阶段的切换速度越来越快。 瀑布式开发和敏捷开发的运维部署工作就此结束,结合敏捷开发思想,部署工作也变得敏捷。
开发模式.png
2. 瀑布式开发 2.1 瀑布式开发简述
瀑布式开发是一种早期且广泛采用的软件开发模式。 要求有明确的需求,根据需求分步规划。 每一阶段工作的完成是下一阶段工作开始的前提。 每个阶段都要经过严格的审核,确保每个阶段的工作都做得足够好,才可以得到许可。 进入下一阶段,适合有明确需求的项目。
*大的风险是,产品开发完成后,如果在产品测试阶段发现问题,或者发现不能满足市场需求,那么就需要重新开发,甚至重新规划。
3. 敏捷开发简述 3.1
敏捷开发是一种以用户需求演化为核心,提倡拥抱变革、迭代、渐进的开发方法。 首先制作出用户*关心的软件原型并交付给用户。 用户在实际场景中发现问题并反馈。 研发人员迅速进行修改,弥补需求的不足。 上述过程不断迭代,直到用户满意为止。
敏捷追求“更早地交付价值,更灵活地应对变化”。 适合需求不明确、有创新性或需要抢占市场的项目,尤其适合互联网项目。
3.2 原则 我们*重要的目标是通过一致且尽早交付有价值的软件来满足客户的需求。 做好面对需求变化的准备,即使是在开发后期。 敏捷流程利用变革为客户创造竞争优势。 定期交付工作软件,交付周期从几周到几个月不等,间隔越短越好。 业务人员和开发人员必须在每个项目上共同努力。 激发个人的斗志,以他们为核心构建项目,提供必要的环境和支持,辅以信任,从而实现目标。 在团队内部和外部传达信息的*有效和高效的方式是面对面的对话。 工作软件是衡量进步的首要标准。 敏捷流程促进可持续发展。 业主、开发商和用户需要能够共同努力,以保持稳定、持续的步伐。 通过不断追求卓越的技术和良好的设计,敏捷能力得到增强。 注重简单性并尽量减少不必要的工作量的艺术。 *好的架构、需求和设计来自自组织团队。 团队定期反思如何提高绩效并相应调整其行为。 3.3 声明 4.1 简要说明
它是一种方法论,=+,即开发团队和运维团队融合在一起,尽可能地为公司创造更多的价值。
是一种软件开发实践,它将人员、流程和技术结合在一起以提供持续的价值。 该方法分为规划和跟踪、开发、构建和测试、交付以及监控和运营。
.png
独特的是,开发、IT 运营、质量工程和安全团队共同努力,提高发布新产品、版本或更新所涉及的所有任务的效率。
将开发和运营合并到一个团队中,专注于快速交付和稳定的基础设施。 其目标包括:
4.2 价值观
它是一种文化,一种软件开发或基础设施的方式,以及构建和部署软件和应用程序的方式。 它假设开发和运维之间没有障碍,并且它们一起工作并且不冲突。
基于其他两个领域的实践:精益和敏捷。 它不是公司内的一个职位或角色;而是一个职位。 它是一个组织或团队对持续交付、持续部署和持续集成的不懈追求。 概念以三种方式定义:
4.3 原则一、持续交付八项原则
持续交付八项原则给出了这样一个可操作性的定义。 在企业中,研发和运维系统必须相互配合。 开发团队在负责功能性需求实现的同时,在架构和编码方面也关注非功能性需求。 为此,测试团队和运维团队将围绕各自职能的需求,规划和建设相应的管道工具系统,加速企业IT价值链的流动,为企业创造更大的商业价值。企业。
为软件发布创建可重复且可靠的流程:标准化发布操作,构建可靠的脚本/工具,并通过自动化流程进行编排。 自动化几乎所有事情:区分场景并自动化计划任务。 将一切纳入版本控制:可描述、可衡量、可监督、纳入运维平台管理。 尽早且经常做那些伤害你的事情:尽早发现错误并纠正它们。 “DONE”意味着“已发布”:向用户受众的交付已完成。 交付过程是每个成员的责任:协同工作,减少等待的浪费。 持续改进:闭环,持续改进能力。 2. 提倡的原则4.4包含一些工具链
实践涉及到开发部门以及软件开发的整个生命周期,也就是说在整个开发生命周期中,涉及到大量的新旧工具,包括从规划、编码、测试、发布、监控的自动化流程工具, ETC。
工具链.png
一种方法论,包含一系列基本原则和实践,并从中派生出工具。 这些工具体现在软件开发和交付过程的连续阶段中。
4.5 实践中需要建立哪些能力 1. 不可或缺的自动化能力
主要体现在三点:
2. 建立持续支付能力
主要体现在三点:
3、利益共同体的合作文化
为了提高业务响应效率,我们必须有共荣、真诚合作、共同进步的态度。
合作文化.png
成功的关键在于文化变革。 除了上面提到的工具之外,组织文化的改变也同样重要。 我们总结了很多其他因素,比如人的思想和思维方式、开发和运营流程()、精益(Lean)、自动化()、测量()。
在组织文化方面,我们建议:
4.6 *佳实践:CI/CD
它是CI/CD思维的延伸,而CI/CD是技术的核心。 没有 CI/CD 和自动化测试,这是没有意义的。 因此,以CI/CD为基础瀑布式开发和敏捷开发的运维部署工作的差异及方法,优化程序开发、测试、运维等各个方面。
1.CI
CI:持续集成是一种开发实践,提倡团队成员经常集成他们的工作。 每个集成都通过自动化构建(包括编译、构建和自动化测试)进行验证,以尽快发现集成错误。 。 保持正在开发的软件处于工作状态,让产品能够快速迭代,同时保持高质量。
2.光盘
CD包含两层内容:持续交付和持续部署。
持续交付是持续集成的延伸,或者说是持续集成的下一步。 它将集成的代码部署到类似生产的环境中,以确保新的更改能够以可持续的方式快速发布给客户。 如果代码没有问题,您可以手动将其部署到生产环境。 它强调无论如何更新,软件都可以随时随地交付。
持续部署是持续交付的下一步。 在持续交付的基础上,开发人员或运维人员定期以自助方式将稳定的构建部署到生产环境。 持续部署的目标是代码可以随时部署。 ,并能自动进入生产环境。
持续交付是指团队确保每个变更都可以部署到生产中,但实际上可能不需要部署,通常是出于业务原因。 持续部署意味着每次变更都可以自动部署到生产环境。
5.比较瀑布式、敏捷式,.1瀑布式的优缺点
瀑布的优点和缺点.png
5.2 敏捷的优点和缺点
敏捷的优点和缺点.png
5.3 优点
优势.png
5.4 敏捷性与共存
关于敏捷和敏捷,要了解的*重要的一点是它们并不相互排斥。
是一种促进参与软件开发和维护的所有参与者之间协作的文化。
敏捷可以被描述为一种开发方法,旨在在需求不断变化的现实中保持生产力并推动发布。
虽然与敏捷不同,但如果两种方法一起使用,将会带来更高的效率和更可靠的结果。 它是对敏捷的有效补充,是将运维融入到产品开发过程中的一种思维方式,是敏捷开发方法论的升级。 它强调自动化工具的实现和应用,帮助实现软件的快速迭代。
六、未来发展
它是精益思想在IT领域应用的必然结果。 它起源于开发端的敏捷运动。 由于端到端系统优化的需要,发展成为开发、测试、运维联动。
从它的发展脉络我们可以发现,必然的发展方向就是向业务端延伸。
6.1
业务是产品研发和运维的源头,完整的价值流必须从源头开始。 这不是一个预测,而是一个正在发生的事实,并且大多数实现已经包含在业务方面并成为。
要实现的目标如下:
需求管理:从业务代表/产品经理/开发人员/测试人员的角度提供适合各自角色的需求仪表板。 链接打通:打通从需求到设计、研发、测试、运维、运营的信息链。 价值流可视化:将价值流从端到端可视化传递,提升交付质量:设定验收标准,统计达标率、反馈要求和*终交付质量 6.2
机器学习(ML)系统是一个软件系统,因此它也适合构建和运行可靠的ML系统。 然而,机器学习系统与其他软件系统有以下不同之处:
机器学习系统与其他软件系统在源代码控制的持续集成、单元测试、集成测试以及软件模块或包的持续交付方面也存在一些显着差异:
6.3
客户端涉及H5、iOS,人工较多,管理难度越来越大。 可以利用自动化减少人工,实现一站式建设和运维平台。
七、总结
这篇文章是我自己整理和总结的。 内容来源于网络和书籍。 如果您引用作者的文章,可以联系我,我会在出处注明。
如果您需要任何修改,请给我发电子邮件:
素材参考:《敏捷软件开发》
如果您转发博客,请注明,谢谢。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等