本文是一篇工程硕士论文,本文采用 SWOT 分析法,总结出微服务架构的优势、劣势、机会和威胁,并以 UC 系统在 2018 俄罗斯世界杯的网络直播项目为背景,参考了国内外已有的运维管理研究成果,针对系统运行维护最重要的资源管理和风险管理进行研究,包括人力资源安排、服务器资源评估、规避和降低因故障产生的负面风险三个方面。
第1章 绪论
1.1 选题背景
伴随着新媒体平台的兴起和移动端用户的增长,人们对电视台直播、网络视频的观看方式也发生了巨大的改变,从传统的有线电视、经典的数字电视、PC 端网络视频观看,逐渐转变为通过 IPTV(通过 IP 城域网在电视屏幕观看)、DVB(通过 Internet 在 PC 端和移动端观看)、OTT(通过互联网在电视屏幕端观看)三种方式进行观看,多样化的观看方式让人们有了更多的选择。正是在多元化直播、视频业务的推动下,央视对于 2018 俄罗斯世界杯的直播不再采取独播的方式,而是选择了同 A 视频、B 视频合作的方式,来为广大球迷呈现这场四年一度的足球盛宴。
基于微服务架构的 UC 系统(User Center 系统)作为 A 视频核心系统之一,该系统在 2018 俄罗斯世界杯期间的稳定性、可用性,直接影响着用户通过 A 视频观看世界杯的体验。2018 俄罗斯世界杯的赛事直播从 6 月 14 日开始总共历时 32 天结束,A 视频从 4 月份开始建立世界杯赛事直播保障项目,从系统运行稳定、用户体验多个方面展开工作,保证赛事直播期间系统运行的稳定性、可用性。
........................
1.2 本文研究的动机
微服务架构目前已成为互联网公司的主流技术架构,但是作为一种新型的技术架构,在加速项目迭代开发的同时,也给项目运维管理带来一些新的问题。世界杯直播期间对于系统动态实时性能要求非常高,无疑给使用微服务架构的 UC 系统的运维管理带来更大的挑战,本文通过管理学方法分析世界杯期间所面临的资源管理、系统风险管理问题,并引入有效的技术管理手段来保障系统的稳定性、可用性,对于微服务架构的系统如何运维及保障大型活动有着充分的借鉴意义。
本文结合 2018 俄罗斯世界杯网络直播项目,针对基于微服务架构的 UC系统运维管理问题进行系统地分析。采用 SWOT 分析法总结出微服务架构在项目运维中的优势、劣势、机会和威胁,并通过文献归纳法梳理出资源管理和风险管理在软件运行维护过程中可借鉴的理论和方法。在资源管理部分,采用随机森林算法、结合运维技术工具并基于 Web 服务器 SPECweb2005 估算法分析和解决系统运行维护过程中的合理人力资源安排和正确评估服务器资源问题。在风险管理部分,从硬件故障、软件故障、网络故障、运营故障、产品缺陷、数据故障六个方面提出针对性的技术解决方案。
........................
第2章 微服务架构运维管理理论综述
2.1 软件运维管理的基本观点
伴随着互联网行业的高速发展、竞争加剧,如何快速的完成线上产品迭代、丰富产品功能,成为互联网产品增加活跃用户的关键所在,而一种被称作微服务的开发方式在此时得到了各大互联网公司的青睐,成为了互联网产品开发的标准架构。但是在满足软件产品快速迭代的同时,微服务架构在开发阶段的应用,也给互联网产品的运维管理带来了挑战[1],提出了更加专业化的要求。
一个软件的生命周期通常包括定义及规划、需求分析、软件设计、程序编码、软件测试、运行维护六个阶段[2],而运行维护是整个软件生命周期中持续时间最长的阶段。这个阶段的工作,包括软件扩容、机房迁移、大型活动保障时,如何评估出最合理的人力资源、服务器资源、网络带宽资源来进行维护;软件运行过程中,如何利用监控手段提前消除故障隐患,通过预案对已发生的故障快速处理,有效降低风险。
2.1.1 资源管理
项目资源管理指在成功完成项目的各个过程中,识别、获取和管理所需的资源[3],项目经理及其团队通常需要保证在正确的时间和地点使用正确的资源,常采用以下资源估算方法。
1. Web 服务器 SPECweb2005 估算法
在软件运维管理过程中,当面临大型活动保障时,针对服务器资源数量的评估通常基于对单个服务器性能的评估,Web 服务器 SPECweb2005 估算法[4]衡量的结果是一台 Web 服务器能够有效处理客户端请求的最大数量(如式 2-1),该估算方法需要借助于系统的在线用户数量、用户同时在线率来评估出并发请求数。
............................
2.2 微服务架构的概念
微服务最早由 Martin Fowler 与 James Lewis 于 2011 年共同提出[9],微服务架构风格是一种开发方式,它基于一组小型服务实现一个单独应用,每个服务的运行都拥有自己独立的进程并采用轻量级的机制进行通信,通常是一个基于 HTTP 协议的 API。这些服务围绕业务功能而建立,且凭借自动化部署机制实现独立部署。这些服务至少需要一个中心机制对其进行管理,且各服务可使用不同的编程语言编写而成并使用不同的数据存储技术。
基于微服务架构的用户中心系统(如图 2-3)由多个前置服务、组件服务、中间件服务构成,这种架构使得每个服务能够独立部署、独立扩展,快速响应客户端的需求,完成持续交付。有别于传统的单体架构,其思路不是开发一个巨大的单体式应用,而是将应用分解为小的、互相连接的微服务。
.............................
第 3 章 UC 系统运维管理现状和问题分析 ......................15
3.1 UC 系统运维管理的现状.......................15
3.2 UC 系统运维管理问题分析..........................15
第 4 章 UC 系统运维管理解决方案 ...........................22
4.1 合理安排人力资源 ..........................22
4.2 服务器资源评估及应对 ....................28
第 5 章 UC 系统运维管理方案实施效果分析 ...........................38
5.1 资源管理方案实施效果分析 ..........................38
5.1.1 人力资源管理方案 ........................38
5.1.2 服务器资源管理方案 ............39
第5章 UC 系统运维管理方案实施效果分析
5.1 资源管理方案实施效果分析
5.1.1 人力资源管理方案
基于历史数据使用随机森林算法对 2010、2014 两届世界杯的互联网在线观看人数影响因素进行了预测,针对预测的结果对开发运维人员的维护任务进行合理的安排。在 UC 系统 2018 年俄罗斯世界杯网络直播结束之后,基于随机森林算法对本届世界杯在线观看人数的数据进行分析,2018 年俄罗斯世界杯在线观看人数影响因素重要性(如图 5-1)排在前三位的仍然是比赛时间、比赛赛制、是否人气球队。
这届世界杯的比赛时间为 18:00、20:00、22:00、23:00、24:00、2:00、3:00 七个开赛时间,人气球队为巴西、西班牙、阿根廷、德国、葡萄牙、法国,球星为梅西、克里斯蒂亚.罗纳尔多、内马尔。在本届世界杯的开赛时间中,有多个时间符合中国观众的观看习惯,最终比赛时间也成为了影响在线观看人数最重要的因素,而在实际的在线观看人数数据中,20:00、22:00 的在线观看人数是最多的,该结果在 2010 年南非世界杯在线观看人数影响因素重要性中也得到了验证。
.........................
第6章 总结与展望
6.1 总结
微服务架构如今已成为互联网公司的主流架构,过往的技术管理方案更多的去探索微服务架构在敏捷开发流程当中的优势,但是对基于微服务架构的项目在系统运行维护当中的技术管理方案还很缺乏。
本文采用 SWOT 分析法,总结出微服务架构的优势、劣势、机会和威胁,并以 UC 系统在 2018 俄罗斯世界杯的网络直播项目为背景,参考了国内外已有的运维管理研究成果,针对系统运行维护最重要的资源管理和风险管理进行研究,包括人力资源安排、服务器资源评估、规避和降低因故障产生的负面风险三个方面。
(1)人力资源安排
结合 2010、2014 年世界杯在线观看人数的数据和赛事特点,探索基于随机森林算法分析影响世界杯在线观看用户数量的因素重要性,并基于预测结果来合理安排开发运维人员的维护任务,最终通过 2018 年世界杯网络直播在线观看人数的数据来验证基于随机森林算法预测在线观看人数影响因素重要性排序的合理性。
(2)服务器资源评估
在如何正确评估服务器资源中,结合网络请求量漏斗模型分析基于微服务架构的 UC 系统不同组件之间网络请求量差异,以 Web 服务器 SPECweb2005估算法为基础正确评估服务器资源,同时采用备选方案以应对直播过程中用户数量增加超出预期的情况。
(3)规避和降低因故障产生的负面风险
系统运行和维护当中的负面风险主要是由于故障产生的,而在本文基于风险管理流程,包括风险识别、风险评估、风险应对、风险监督四个方面来探索该管理流程对于负面风险的规避和降低是否有效。在风险识别中采用根本原因分析法列出产生故障的根本原因,根据对用户的范围将硬件故障、软件故障、网络故障、数据故障、运营故障和产品缺陷进行等级评估,从故障上报、异地容灾、性能监控、持续部署、熔断机制、重试机制和补偿机制七个方面规避和降低因故障产生的负面风险,最终通过风险监督对上一个流程的不足之处进行总