设为首页 加入收藏

TOP

海西 · 云交付 DevOps实践落地方案(一)
2019-09-17 18:55:15 】 浏览:47
Tags:海西 交付 DevOps 实践 落地 方案
?
一、背景概述
(一)产品背景
1.互联网+的需要
  在信息越来越繁杂的互联网时代,公司所运行的项目越来越多,项目相关服务繁多,服务之间存在复杂的依赖关系,运维与管理任务越来越繁重,手工交付需要花费很多的人力与时间,且安全性和时效性均无法保证。对于多资源型分布/分离式部署项目,Udeployer应运而生。
2.随着企业对版本上线质量和速度的要求越来越高,敏捷开发、Devops的接受度越来越高
 传统的交付方式因为项目之间缺少依赖、环境不一致、版本不一致、人为操作失误等情况使得项目交付过程中问题不断,而互联网企业发展节奏快、版本发布频率高,上线出故障影响面广、影响度高,因而企业对于敏捷开发、持续集成、自动发布都有强烈的需求。
(二)产品定义
Udeployer是一套完整的持续交付生态系统,在交付过程的每一个步骤都是可视化、自动化的,可以带来包括效能在内的显著的好处,同时也改进了软件的总体质量。Udeployer集合了SVN、Jenkins、swarm、docker、registry等工具,在跨网段、跨内外网等方面可以完美兼容。Udeployer提供项目配置中心,抽象公共配置,项目配置灵活装配。在整个版本交付生命周期推荐使用Udeployer,能够把人为的干预最小化、节省各环节等待时间,使得交付的流程更清晰化,一旦把人的干预去掉,质量就更加可预测,会变得更好。
(三)产品目标  
  1. 1. 构建环境依赖和应用依赖,快速实现多点部署并实现横向部署;
  2. 2. 实现从代码变更到代码构建,镜像构建和应用部署的全流程自动化;
  3. 3. 保障项目交付过程中环境的一致性与连贯性,让交付的不仅是代码,还有基于不可变架构的运行环境;
  4. 4. 持续反馈,随时随时随地构建、随时随地获取回馈信息,让每次集成或交付,都会第一时间将结果实时反馈;
  5. 5. 减少人工操作,避免开发与测试在人工操作上的失误。
  6. 二、产品介绍
(一)产品理念
(二)系统拓扑图
(三)系统业务构架描述
(四)系统功能介绍
系统功能主要分为三个层面:源码交付层、版本发布层、容器管理层。
(1)源码交付层
1.1 源码交付层实现对版本的管理。
将SVN版本号与业务版本号一一对应,通过SVN版本号记录业务版本号,包括新版本的创建、多版本的演变过程、多版本逻辑的相对独立、多版本的映射关系等。
1.2 源码交付层通过合并主干、创建分支、版本归档、版本回滚功能实现对源码路径的管理,保证不同版本源码的一致性。
(2)版本交付层
版本交付层通过项目管理、任务管理、工作流管理功能实现持续集成、自动部署、一键发布。
    项目管理主要实现版本交付所需要的准备数据的创建与管理,包括项目列表、应用列表、数据库列表、部署模板、邮件模板、配置模板等基础数据的创建;
    任务管理主要是实现任务的创建与管理,包括自动化部署、Jenkins构建、重启应用、关闭应用、自动触发邮件发送、分发命令、日志查询、SQl脚本执行等任务;
    工作流管理主要实现对任务工作流程的装配与管理。用户根据实际场景需求,通过自定义工作流模板,将任务单个或多次装配到流程中,定义成模板,实现一键或批量执行多个任务。
(3)容器交付层
容器交付层主要通过对集群、节点、容器、镜像仓库的创建与管理,提供全流程标准化的主机管理、应用持续集成、镜像构建、部署管理、容器运维、主机及容器监控服务,实现公有和私有集群的容器化管理,确保不同环境的容器一致性,统一不同环境的依赖关系。
Swarm集群主要是实现集群的创建与管理。用来管理docker集群,可进行节点挂载;
节点主要是实现节点的创建与管理,包括节点挂载集群、添加容器;
容器主要是实现对容器的创建与管理,包括选择镜像、挂载节点等;
镜像仓库是集中存放镜像文件的场所,包括公共的与私有的,提供对镜像文件的查询。
(五)产品方案规格
产品方案不同的规格介绍,或者对产品方案技术规格的介绍。
(一)产品第一阶段
将产品功能分为两个部分:服务组件、我的服务。
服务组件主要负责执行服务功能的基础数据的准备工作,完成项目列表、应用列表、数据库列表、部署模板、邮件模板的创建与管理。
我的服务是功能执行模块,包括SVN源码交付、SQL脚本执行、应用部署、分发器、日志查询。SVN源码交付包括合并主干、创建分支、版本归档、版本回滚、版本发布操作记录功能,实现一站式全生命周期的管理,同时让所有记录都有迹可循,便于跟踪记录。
(二)产品第二阶段
实现配置中心,将配置文件统一集中管理。对于企业用户而言,把不同环境的配置,写到同一个配置文件中,是极其不安全的,是一个非常危险的动作。为解决这一安全隐患,交付系统采用集中式的配置管理系统,将不同环境的配置严格区分地存放。将配置文件按照类型区分为公共配置文件、项目配置文件。公共配置文件可保存为模板,多次循环使用,解决了多次创建的烦恼。通过文件目标路径维度将公共配置文件与项目配置文件进行存放管理。通过路径快速定位到具体的文件,更具时效性、可操作性、安全性。
(三)产品第三阶段
随着公司业务的不断发展壮大,体系越来越多,需要运维的工程也越来越多。如何快速、安全、稳定的交付功能,投入到生产中式企业必须解决的一个问题。交付系统通过工作流的方式,用户可以将每个工程所需要执行的任务装配成工作流,保存为模板,实现一键执行及批量执行。支持同一任务的不同环节装配、多次装配、不同环境、多场景的工作流创建。这样不仅减少了浪费,提高开发和交付过程的效率,还可以使软件随时处于生产就绪状态,以便可以随时实现部署。                                                                                                                                                              &
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇项目实战2—实现基于LVS负载均衡.. 下一篇java 网站源码 在线编辑模版 代码..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目