开题1

------------恢复内容开始------------

------------恢复内容开始------------

4.1  拟采用的开发方法

本课题拟采用C/S的架构模式,服务端与客户端均使用python语言编写,服务端与客户端之间通过的RPC的方式通信,便于简化通信流程、屏蔽通信细节、开发时可以只关注上层业务逻辑。数据库采用云平台上主备部署的PostgreSQL,以满足数据库服务的高可用性,并使用SQLAlchemy作为ORM(对象关系映射)框架,简化数据库操作。为满足服务的高可用性,Server以主备方式部署,采用虚拟IP的方式提供服务,通过Nginx+Keepalived实现主备切换。升级服务采用OpenStack服务组件Swift作为软件仓库,保证软件源的可靠性。

4.2  开发环境

 开发语言:python、shell

 开发系统:windows10、CentOS Linux 7.1

 编程环境:pycharm,

 数据库:SQLAlchemy、SQLAlchemy

 运行环境:python虚环境,OpenStack环境

4.3  测试方案

测试是保证系统能够正常运行的关键步骤,拟在这次开发中进行单元测试、功能测试、性能测试,具体测试方案如下:

单元测试:

单元测试采用python自带的单元测试框架unittest模块,该模块封装好了一些校验返回结果的方法,以及一些用例执行前的初始化操作。使用该测试框架主要对函数模块级做白盒测试。

功能测试:

功能测试需要在实际的OpenStack云平台上执行,拟搭建OpenStack测试环境进行黑盒测试。功能测试拟采用基于OpenStack的测试框架Tempest,Tempest 测试框架包含 Openstack 基本组件(nova, keystone, glance, quantum, cinder)的测试用例,同时支持 JSON、XML 两种 REST API 格式类型的测试, 以及CLI 测试。基本的功能测试主要包含以下几个方面:

  1. 测试单节点单个服务组件升级能力
  2. 测试多节点主备类服务组件升级能力
  3. 测试多节点多服务组件灰度升级能力
  4. 测试服务组件版本回退能力
  5. 测试升级过程中管理面业务的中断时间

性能测试:

性能测试主要测试升级服务的并发处理能力,即测试单批次能够最大并发升级的节点数,同时需要测试在主Server实例节点故障的情况下的故障切换时间

5.   技术难度及特色分析

  基于OpenStack的云平台升级服务的技术难度主要体现在如下几个方面:

第一,不同的服务组件升级的处理不同,不同版本的配置文件也不一样,服务包统一采用RPM包的格式进行管理,需要提取服务组件升级的公共处理流程,对组件升级流程精准控制,提供通用的升级能力。

第二,对于众多的待升级节点和上面部署的待升级服务,为了尽可能地保障升级过程中管理面业务不中断,需要实现完备的灰度编排策略对升级流程合理编排,同时还涉及对服务切流和引流的操作。

第三,考虑云平台的节点数量较多,升级服务需要提供多节点并行升级的能力,升级过程中Server端与Client端的交互比较复杂,需要定义通用的通信接口,对Server的处理能力要求较高。

基于OpenStack的云平台升级服务可以满足云平台基础服务组件的升级需要,为服务组件提供通用的升级编排能力,由控制节点上的upg-server进行升级任务编排,通过每个节点上部署的upg-client调用服务组件的升级脚本执行具体的组件升级操作,能够极大地提升云平台服务组件的升级效率。升级时根据灰度策略对待升级的节点分批执行,首批节点升级完成后可设置观察期,支持在升级失败和验证观察期发现业务异常的情况下的回退操作,保障在升级过程中业务的连续性。

6、本人主要工作描述

基于OpenStack的云平台升级服务是一个比较复杂的服务系统,涉及Server端的编排处理与Client端的具体控制,本人需要完成的主要工作有:

(1)    对系统需求进行分析与广泛的调研。

 

posted @ 2022-01-11 21:40  tangjian5429  阅读(26)  评论(0编辑  收藏  举报