DevOps平台中的自动化部署框架设计

本文介绍了DevOps平台中的自动化部署框架设计,旨在克服传统配置管理工具在开发、测试人员自助部署等方面的局限性,实现DevOps目标。文章详细阐述了需求、概念模型和总体设计,包括设计阶段(装配、组件、平台)、转换阶段(部署环境、执行计划)和运维阶段。设计阶段涉及架构设计版本化、组件模板和依赖关系,转换阶段则涉及部署环境配置、部署策略和执行计划生成。自动化部署框架采用DevOps平台结合Jenkins执行,利用Jenkins Pipeline实现部署的灵活性和扩展性。
摘要由CSDN通过智能技术生成

转载本文需注明出处:微信公众号EAWorld,违者必究。


本文目录:

一、背景

二、我们的需求是什么?

三、概念澄清

四、概念模型

五、总体设计

六、关键点设计

七、总结


一、背景


说到自动化部署,大家肯定都会想到一些配置管理工具,像ansible,chef,puppet, saltstack等等。虽然这些工具给运维效率和安全性带来了很多好处。但是实际工作中,我们还是会遇到一些问题: 


  • 这些工具无法普及到开发、测试人员,经常找运维帮忙,无法自助; 

  • 项目人员无法直观的参看到系统的部署架构设计,及架构的演进过程; 

  • 从物理架构设计到最终上线,无法形成闭环; 

  • 受差异性的基础设施影响较大。


二、我们的需求是什么?


我们DevOps平台的部署模块就克服上面这些问题,为实现DevOps以产品为核心,以项目管理为驱动,将需求、设计、交付、运维整个链路打通这一目标提供有力支持。具体来看其需求涵盖一下几点: 


  • 将架构设计纳入DevOps管理过程中,支持架构设计版本化; 

  • 一次架构设计多次部署; 

  • 以最佳实践为基础,实现架构设计模版重用; 

  • 多环境部署,同时支持应用在虚拟机、容器上的部署; 

  • 支持多种部署模式(单机、高可用)、部署策略(全新、蓝绿、滚动升级、回滚)


三、概念澄清


在正式讲解我们的设计之前,我们想澄清CI/CD的基本概念,因为本次的主题和持续集成、持续交付和持续部署这些名词总有些渊源。


1、什么是持续集成?


持续集成(Continuous Integration)指的是,频繁地将代码集成到主干,以便快速发现错误、防止分支大幅度偏离主干。 


持续集成的目的,就是在产品快速迭代的同时保持代码质量,它的核心措施主要有两点: 

1)代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。 

2)通过Code Review、代码质量分析工具对代码质量进行把关,以便确定是否能够集成。

 

Martin Flower说过, “持续集成并不能消除Bug,而是让他们非常容易发现和改正。”


2、什么是持续交付?


持续交付(Continuous Delivery)指的是,新版本为了能够快速安全的交付到生产环境中,需要将新版本先交付到类生产(Production-like)环境中(如UAT/Staging/Lab环境),以便进行相应的业务验证、安全验证、性能验证等过程。 


一旦类生产环境验证通过,新版本就进入到生产阶段。 


持续交付可以看作是持续集成的进一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。


3、什么是持续部署?


持续部署(Continuous Deployment)指的是,新版本通过类生产环境的验证后,自动部署到生产环境中。 


持续部署可以看成持续交付的进一步。持续部署的前提是自动化完成测试、构建、验证等步骤。 


持续部署的目标是,代码在任何时刻都可以进入自动地进入生产阶段,为最终用户提供服务。 


持续交付和持续部署的区别可以参考下图:

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值