软件工程方法之DevOps

我们经常看到DevOps这个词,那么DevOps究竟是什么呢vOps 是一种软件开发方法。它将持续开发、持续测试、持续集成、持续部署和持续监控贯穿于软件开发的整个生命周期。当前几乎所有的顶尖公司均采用了该方法,用以提高软件开发质量,并缩短软件开发生命周期。从而以达到每个公司对软件产品的期望,交付出客户最满意的产品。

什么是瀑布模型

在了解DevOps之前,我们先看一下什么是瀑布模型,瀑布模型是将软件生命周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 其过程是将上一项活动的输出作为该项活动的输入,利用这一输入实施该项活动应完成的内容,然后对当前活动的工作结果进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。

由此可见,传统的瀑布模型的缺点是非常明显的,而且从总体上来看,瀑布模型的项目整体进度是比较慢的,那么现在被大多数公司采用的则是DevOps。

什么是敏捷开发

敏捷开发是一种价值观与原则,指导我们更加高效的开发。

敏捷开发以用户需求为核心,采用迭代(时间周期)、增量(循序渐进,功能模块) 的方式开发软件,目的在于快速覆盖、响应市场需求。大项目划分为小项目,分别完成,独立运行,如微服务开发过程,就是将系统独立进行开发。传统的开发模式,注重文档约束,而敏捷开发原则的推行原则要求团队内部交流便利、文化相对开发,除去必要的文档约束,如Api接口文档,最注重的是团队成员的高效交流,以此来提高产品、项目的开发效率、开发质量。

敏捷开发提倡用户参与到产品或项目开发的整个流程当中,通过用户反馈使得产品更加符合用户频繁变动的需求。

CI代表持续集成(Continuous Integration),CD代表持续交付(Continuous Delivery)和持续部署(Continuous Deployment)。也可以将它们看作是类似于软件开发生命周期的过程。

测试阶段

构建阶段结束后,将会继续进入到代码的测试阶段。在这个阶段中,我们会进行各种各样的测试,单元测试就是其中之一。在该阶段中,会测试代码中多个组件间的关系或者单个组件的功能,同时也会进行软件的可用性测试。

自动测试阶段

只要我们的代码部署成功,我们就可以运行另一组可用性测试了。该阶段结束后,如果所有的测试都通过了,那么就可以将其部署到生产环境中了。

验证阶段

整个生命周期将会继续迭代下去,直到我们得到可以直接部署到生产环境中的代码或者产品。除此之外,在生产环境中我们还需要对代码进行度量和验证,以实时监控应用的线上运行状态。到目前为止,我们已经了解了 CI/CD 流水线及其工作原理。

参考资料:《How to build CI/CD pipeline from scratch》

谢谢你请我喝咖啡

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92729 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月9日
下一篇 2020年4月10日

相关推荐