DevOps、CI/CD流水线、Jenkins_Docker案例

微服务(Orchestration)架构 - 开发流水线与 DevOps 工具集

课程地址:18微服务orchestration架构—开发流水线与-devops-工具集

一、DevOps(开发与运维 – Development and Operations)

参考DevOps到底是什么意思?

一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。一般由软件开发程序员、软件测试程序员,软件运维程序员这三种程序员来负责这个过程。

img 软件交付模型依次有瀑布模型、敏捷开发模型和DevOps模型。

瀑布模型

瀑布模型是最早期的软件交付模型,就是等一个阶段所有工作完成之后,再进入下一个阶段。软件开发流程如下:

  • 软件开发工程师花费很长时间编写项目代码。
  • QA(质量保障)团队对项目代码进行测试。
  • 运维团队负责部署项目的最终发布版。

以上这三个阶段,即开发,测试,部署。

但是,项目不可能是单向运作的。客户也是有需求的。产品也是会有问题的,需要改进的。随着时间推移,用户对系统的需求不断增加,与此同时,给的时间周期却越来越少。在这个情况下,笨重迟缓的瀑布式开发已经不合时宜了。于是就发展出新的软件交付模型——“敏捷开发(Agile Development)”。

敏捷开发

敏捷开发能应对快速变化需求。每次开发一个部分就进行测试,然后再进行下一轮开发。通过重复交替进行开发和测试,可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。

img

而且,DevOps小步快跑的形式带来的版本变化是比较小的,风险会更小。即使出现问题,修复起来也会相对容易一些。

虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。运维的部署部分还是没有参与其中。

DevOps

DevOps由Development和Operations组合而得,它强调了开发团队和运维团队的沟通合作,通过自动化流程来使得软件构建、测试、部署的整个过程更加快速、频繁和可靠。如下图所示,DevOps打破了开发团队与运维团队之间的高墙,使二者可以更高效地合作。

开发和运营之间的壁垒和鸿沟

注意开发到运维中间其实还有测试环节,所以DevOps实际上包含了三个部分:开发、测试和运维。

快速的部署的好处是可以更快地发现软件的问题,更快地将产品交付到用户手中,更快地获得用户反馈,从而帮助团队进行更快地更新迭代。而且,DevOps小步快跑的形式使得每次版本改动较小,即使出现问题也比较容易解决。

img

在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

下图可见DevOps贯穿了软件全生命周期,而不仅限于开发阶段。

img

DevOps与虚拟化、容器、微服务

微服务就是将一个提供多种服务整体产品进行拆分,拆成各自提供不同服务的多个个体。微服务架构下,不同的工程师可以对各自负责的模块进行处理,例如开发、测试、部署、迭代。

虚拟化就是一种敏捷的云计算服务。它从硬件上,将一个系统“划分”为多个系统,系统之间相互隔离,为微服务提供便利。

容器不是划分为不同的操作系统,而是在操作系统上划分为不同的“运行环境”(Container),占用资源更少,部署速度更快。

虚拟化和容器,其实为DevOps提供了很好的前提条件。开发环境和部署环境都可以更好地隔离了,减小了相互之间的影响。

二、什么是 CI/CD 流水线?

有两个词经常会伴随着DevOps出现,那就是CI和CD。CI是Continuous Integration(持续集成),而CD对应Continuous Delivery(持续交付)或Continuous Deployment(持续部署)。三者关系如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值