1.项目概述

    开发应用系统自动化部署能力,集成代码仓库、制品仓库、持续集成、代码检测、自动化测试、镜像构建等主流DevOps工具链,实现应用软件面向多种环境的自动化部署和运维,使软件的构建、测试和发布变得更加快捷、频繁和可靠。

2.系统架构

2.1 总体架构-应用架构

产品发布自动化软件设计_云原生

    产品发布自动化软件提供代码构建、规范检查、单元测试、镜像打包、快速部署、灰度发布等持续交付工具链,使开发者专注业务的开发和测试无需关注运行环境和运维,加速应用的快速迭代和上线。

3.技术架构

3.1 系统总体架构图

产品发布自动化软件设计_云原生_02

    产品发布自动化软件是通过简单配置,自动部署测试环境容器化确保与开发环境一致,自动部署生产环境滚动升级、减少错误、实现运维自动化。

3.2 关键组件

3.2.1 Jenkins

    Jenkins是一款开源 CI&CD 软件,是基于Java开发的一种持续集成工具,用于自动化各种任务,包括构建、测试和部署软件;支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

3.2.2 Maven

    Maven是Apache的开源项目,是一个项目管理和综合工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

3.2.3 Node.js

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。

3.2.4 Harbor

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

3.2.5 Docker

    Docker 是一个开源,轻量级的应用容器引擎,基于GO语言开发,用于创建、管理和编排容器。与VMware 虚拟机相比,Docker 使用容器承载应用程序,而不使用操作系统,所以它的开销很少,性能很高。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

3.2.6 Kubernetes

    Kubernetes,简称K8s,是Google开源的一款容器编排工具,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下:1) 使用Docker对应用程序包装、实例化、运行。2) 以集群的方式运行、管理跨机器的容器。3) 解决Docker跨机器容器之间的通讯问题。4) Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。

4.系统功能

4.1 镜像管理模块

4.1.1 原型设计

(1)镜像列表

产品发布自动化软件设计_原型设计_03

    镜像列表展示当前用户下所有已构建的镜像,功能区包括删除镜像等基本功能;可根据镜像名称进行搜索。

4.1.2 接口描述

4.1.2.1 Harbor获取镜像列表接口

4.1.2.2 Harbor删除镜像接口

  • 用处:用于删除选择的镜像
  • 参数:name
  • 输出结果:操作成功or操作失败
  • 依赖组件:http-client
  • URL:/api/repositories/11,  方式DELETE

4.1.2.3 Harbor查询镜像标签接口

  • 用处:用于查询镜像的标签
  • 参数:标签名称
  • 输出结果:标签列表json
  • 依赖组件:http-client
  • URL:/api/repositories/${name}/labels方式GET

4.2 应用编排管理

4.2.1 原型设计

(1)应用编排列表

产品发布自动化软件设计_Docker_04

    应用编排列表展示开发者编排的应用,功能区包括新增、编辑、删除、编排、发布等基本功能;可根据应用名称进行搜索。

(2)编排

产品发布自动化软件设计_云原生_05

    应用编排服务列表展示应用下的多个服务,功能区包括新增服务、编排服务内容、删除服务、保存服务等基本功能。 

(3)发布

产品发布自动化软件设计_kubernetes_06

    应用发布主要输入应用版本和公开方式。 

4.3 应用市场管理

4.3.1 原型设计

(1)市场应用列表

产品发布自动化软件设计_原型设计_07

    市场应用列表展示已经发布的应用信息,功能区包括删除、运行等基本功能;可根据应用名称进行搜索。

(2)运行

产品发布自动化软件设计_Docker_08

    运行需要输入启动名称和选择命名空间。


4.4 应用实例管理

4.4.1 原型设计

(1)应用实例列表

产品发布自动化软件设计_Docker_09

    应用实例列表展示已经运行的应用实例,功能区包括概况、停止等基本功能;可根据应用名称进行搜索。

(2)概况

产品发布自动化软件设计_原型设计_10

    概况展示应用运行所有信息,可以修改伸缩和端口等信息。

4.5 配置字典

4.5.1 原型设计

(1)配置字典列表

产品发布自动化软件设计_云原生_11

    配置字典列表展示字典信息,包括名称、创建人和创建时间;支持添加、复制、编辑、删除功能;支持根据名称进行搜索。

    配置字典中可以配置数据的键值对,在应用编排时提供配置信息或者生成配置文件。

4.6 节点管理

4.6.1 原型设计

(1)节点列表

产品发布自动化软件设计_原型设计_12

    节点管理列表显示了节点基本信息,包括节点类型和状态、节点IP,操作系统及内核信息、CPU和内存的使用量。

    进入节点详情页后,列出来CPU、Memory、FileSystem的使用情况,更详细的系统信息。

4.7 事件管理

4.7.1 原型设计

(1)事件列表

产品发布自动化软件设计_原型设计_13

    事件列表展示了系统事件的信息,包括事件来源、子对象、资源类型和资源名称、事件类型、事件总数、事件原因和事件信息。

4.8 监控管理

4.8.1 原型设计

(1)监控管理页面

产品发布自动化软件设计_原型设计_14

    监控管理页面展示了系统硬件的总体使用情况,也监控了每个POD处理器、内存和网络的使用情况

4.9 报警模板管理

4.8.1 原型设计

(1)报警模板列表

产品发布自动化软件设计_原型设计_15

    报警模板列表展示报警模板的信息,包括报警名称、监控项、报警级别、报警阈值、持续时间和报警;支持添加、编辑、删除功能;支持根据名称进行搜索和高级搜索。