我们是如何做DevOps的? (2)

项目管理:项目的创建和维护,默认提供了.netcore的api和控制台,java的api和前端站点的应用初始化代码框架,开发人员开发新的应用直接根据应用类型选择对应的模板就可以在git默认创建代码仓库和初始化框架代码,并自动生成应用的http和https的域名

构建记录:获取gitlab的pipeline,展示所有分支的构建记录信息,可以一键跳转到git仓库

部署管理:部署构建的镜像到指定的环境,提供实时部署和定时部署功能

容器管理:提供容器的查看功能,可以看到容器的存活状态和容器实时日志

配置字段权限申请:针对PRE和生产环境查看配置,需要先走钉钉审批申请流程

配置信息:进行配置的维护,包括新增、编辑、删除,PRE和生产环境操作需要钉钉流程审批

操作日志:针对应用的操作日志记录

用户设置:在使用rdms前,需要先将用户git仓库的token设置在rdms上,这样用户在rdms操作与gitlab相关的业务才能正常使用

3.2.2 RDMS几个核心页面的展示

首页-创建应用

20200608103107

构建记录

20200608103152

部署管理

20200608103224

容器管理

20200608103254

3.3 技术架构

20200608103316

对接系统的说明

通行证:RDMS的目标用户是研发中心人员,这些人员在通行证中都有默认的账户信息,与通行证打通,可以直接登录使用

GitlabAPI:目前RDMS的CI还是采用的gitlab的ci支撑,包括新应用在rdms的创建到git仓库的代码初始化等,都需要调用gitlab的api接口

钉钉flow:安全管控的原因,PRE和生产的任何操作都会触发钉钉审批流,所属项目的项目经理审批通过后才会获取到数据或者执行操作指令

福禄开放平台:提供了网关相关的功能和菜单、角色等维护功能,公司所有后端服务都需要入驻开放平台

蜂巢:公司的调度作业平台,rdms的定时部署功能依赖该服务的支撑

运维工单系统:rdms的CD流程没有直接与kubernets进行交互,而是通过运维的工单系统包装了运维底层的shell脚本层,然后提供给rdms相关的api接口,也是基于安全控制的考虑

shell脚本层:shell脚本层会调用kubernetes的api进行kubernetes的相关操作(部署、配置更新、容器重启、日志查看等);调用阿里云的dns解析接口,对应用的域名自动解析;调用oss的接口,进行前端站点文件目录的维护

3.4 后端应用的devops实现详解

20200608103348

举个栗子进行介绍

根据模板,创建一个应用

20200608103503

根据名称默认生成域名

20200608103531

初始化代码仓库,默认生成develop分支

20200608103601


20200608103707


在rdms第一次部署到对应环境(开发、测试、生产等)时,会默认读取appsettings.Development.json的文件,并写入kubernets的configmap

构建完成,进行部署

20200608103749

在kubernets生成pod

20200608103815

通过域名访问接口文档

20200608103903

3.5 前端站点的devops实现详解

20200608103933

同样的,举个栗子介绍

首页-创建前端站点

20200608104011

根据名称生成域名

20200608104037

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpszjw.html