Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

面向 OTT 桌面的 DevOps 研究与应用论文

发布时间:2023-08-24 11:52:04 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)
 
   摘 要:近年来,智能电视上的 OTT(Over the Top) 桌面非常流行,它提供了内容分类浏览、播放、搜索、运营和推荐 等功能。由于业务需要,功能还在继续升级更新中,这使软件的复杂度越来越高,带来开发和维护的难题。高效的开发运维 系统 (DevOps),是软件迭代升级的重要保障。该论文基于OTT桌面的应用场景和亚马逊云原生资源,研究和设计了高效的 DevOps 系统,包括 OTT 桌面系统框架,微服务,持续集成和交付,以及集中式日志系统,并应用到了商业项目中。

  关键词:OTT,DevOps,CI/CD,微服务,容器,敏捷开发,AWS

  OTT Desktop-oriented DevOps Research and Implementation

  WU Yongchao, XU Hui

  (Samsung Electronics (China) R&D Center, Nanjing Jiangsu 210012)

  【Abstract】: The OTT(Over the Top) desktop on Smart TV is popular in recent years. It support contents category, playback, search,operation, recommendation, and etc. For the business development, more and more functions were integrated and updated frequently still, that make high software complexity and maintenance cost . Efficient DevOps system is primary process for software development and operation . Based on AWS cloud native, this paper researched DevOps system to support OTT desktop software, include system framework design, microservices, continues integration and continuous delivery, and centralized log system. The DevOps system was applied in commercial mass product.

  【Key words】: OTT;DevOps;CI/CD;Micro service;container;agile development;AWS

  引言

  在家庭场景中, TV 是重要的视频应用设备,不 仅集成了直播电视,还集成了大量 OTT 点播内容。如 图 1 应用场景,包括音视频分类、浏览、播放、搜索、 推荐, VIP 付费等, 且支持 SSO 单点登录 (Single Sign On),与其他业务联动,如智能家居,视频通话,家庭 留言等。

\

 
  如图 1 展示,用户开机就能看到海量的影音内容, 也就是 OTT 桌面。该桌面集成的媒资数据,覆盖国内 头部 CP(Content Provider), 如腾讯优酷芒果爱奇艺 华数等。在横向 Tab 页中,还支持体育,音乐,健身 等内容,并可以动态扩展。为了配合政策需要,还需要 支持运营管理,内容动态上下线和编排,用户隐私条款 调整等。在用户最佳体验的背后,支持模块非常多,且有多个团队参与,这需要良好的开发运维系统来支持。 开发运维 DevOps 理念结合了软件开发 (Dev, Development) 和系统运维 (Ops,Operations), 旨在构建快速的软件开发和交付流程,高质量满足业务发展需求。 在过去的几年里,随着智能电视的快速发展,很多的家 庭常用功能,被增量更新到线上设备中,同时 DevOps 流程和方法也得到了完善和验证。在这篇文章中,分几 个部分展开描述:第 1 部分介绍相关领域背景,第 2 部 分介绍 OTT 桌面系统的框架设计和功能模块。第 3 部 分是 DevOps 系统的研究和应用,最后简要总结并考虑 进一步提高的方向。

\

 
  1 相关领域背景

  1.1 DevOps

  DevOps 是一组过程、方法与系统的统称,用于促 进软件开发、运维和质量保障部门之间的沟通、协作与 整合。Lwakatare 等人 [1] 分析了围绕 Development 和 Operations 的相关理论, 讨论了 DevOps 的五个维度: 协作、自动化、定制化方法、监控和量化。Senapathi[2] 指出, DevOps 目的是通过自动化流程,减少沟通成本, 缩短用户需求的响应时间,常见的就是敏捷方法和持续 集成交付。Steven[3] 认为 DevOps 主要是团队文化和 敏捷方法的角色分配。总结来看, DevOps 团队跨越了 整个软件生命周期,在需求定义,软件设计实现,部署 和维护中提供支持。DevOps 最佳实践包括:敏捷软件 开发, 持续集成 (CI, Continuous Integration) 和交付 (CD, Continuous Delivery), 微 服 务 设 计,Infra. 管 理等。尽管不同的团队有不同的 DevOps 实践理念,但 是目的都是快速交付 [4]。

  1.2 微服务

  微服务架构是基于多个独立和互相通信的小颗粒服 务,最后实现了整体用户服务功能。微服务体系风格背 后的一个强大动机,就是端到端的集成服务系统,在维 护和部署上非常复杂,对局部功能的更改,需要完全重 建 [4]。而微服务中,每个服务独立部署,对外提供独立访问接口。通过这种服务层面的松耦合化,功能模块才 灵活迭代,适配不同的业务变化。Balalaie 等人 [5] 强调 了微服务和 DevOps 的协同作用。在过去几年中,微服 务和 DevOps 在 IT 概念中显示出相同的增长率,主要 原因是微服务实现了连续部署,这是 DevOps 的主要目 标之一。

  1.3 AWS(Amazon Web Service) 云计算

  AWS 云计算 [6] 提供了弹性的基础计算资源,并提 供编程接口。企业用户可在硬件维护,软件升级,安全 补丁,用户权限管理等方面降低成本。本文实践主要基 于 AWS,采用 DevOps 方法,快速交付应用程序和服 务。许多 DevOps 实践都是在云环境中使用微服务架构 实现的 [2.4.5.7.8]。

  1.4 容器

  容器 (Container) 可为基于微服务的应用提供最小化 的部署单元和独立的执行环境。在使用容器的任何环境 中,可以复用容器编排策略和部署相同的应用,而无需重 新设计。通过将微服务放入容器,可方便地编排各种服 务, 包括存储、网络和安全防护。K8s(Kubernetes) 是 开源的容器化应用管理系统,用来管理策略规划,健康检 查以及扩展规模。AWS ECS(Elastic Container Service) 实现了类似的服务,且完全托管。

  2 框架设计

  基于面向服务的设计 (SOA, Service-oriented Archi tecture),多媒体应用提供端到端的使用体验,并在 Service 层支持一致的 API 网关、鉴权、功能配置, 概 要架构如图 2 所示。

\

 
  2.1 UI 层

  UI 层是桌面展示层,该层采用瀑布流设计来显示 多媒体内容。每种媒资类型或者 CP,都可以作为独立 的 Tab, 如电影, 电视剧, 综艺, 儿童等。但是该层是轻量级设计,主要覆盖几个基本功能:

  (1)丰富的渲染模板控件。根据 Service 层的视图 编排配置,展示对应的内容。

  (2) 运营服务预置。开机阶段能根据设备信息, 设 置国家项,语言项,安全配对密钥,域名配置,条款配 置等。

  (3)用户引导。对应与客户端环境配置,如网络。

  OTT 桌面设计策略是预置和配置,根据 Service 后 端配置来更新功能列表,前端不做深入集成,较少大版 本升级次数。

  2.2 Service 层

  该层是主要的业务逻辑层,通过 API 网关统一提供 接口出来,同时负责安全接入策略。图 2 中给出了主要 Servic 处理模块。

  (1) CP 数据集成。处理从媒资合作方读取原始媒 资存储到媒资 DB。

  (2)媒资视图编排。基于 UX 设计规范,以及运用 需求,生成 TV 端需要展示的布局文件。

  (3)搜索服务。为媒资数据建立 Solr 索引,提供 高性能的搜索功能。支持精确搜索,模糊搜索等。

  其他重要模块还包括运营 Portal,它支持位置调 整,内容下线,广告露出等业务和互联网电视牌照方需 求。以及其他必要功能,如登录鉴权,时钟对齐等。

  2.3 存储层

  应用需要存储媒资数据,用户数据,运营数据以及日 志数据。这里我们使用 AWS Aurora、S3 以及 DynoDB, 并结合亚马逊其他工具,提供分析查询统计功能,可在 官网 [6] 获取更多信息。

  2.4 基础 DevOps 工具

  由于业务模块开发跨地区跨团队,代码主要采用 Git 分布式管理, 并和 Jenkins 集成, 自动化完成代码 和功能模块管理, 如:(1)SonarQube 代码静态检查, Junit 等单元测试;(2)Maven/Gradle 编译打包;(3) 基于权限管理角色的 CI/CD, 并使用 Jenkins pipeline模板处理多个 SOA 的集成任务。AWS CloudWatch 以 日志、指标和事件的形式收集监控和运维数据。ECS (Elastic Container Service) 是 AWS 托管的无服务容 器服务,作为 Service 层各微服务的基础实施。

  3 DevOps 方法

  3.1 CI/CD

  持续集成是 DevOps 的最佳实践之一,它允许开 发人员频繁地将代码更改合并到一个中央版本控制系 统 Github 中。开发人员实现了一个新功能或修复了 一个 bug,会提交一个更改请求,触发自动化编译集 成 Pipeline(groovy 脚本 )。持续集成通常与持续交付 相结合: 变更请求第一步会部署在 DEV(Develop) 环 境中,进行开发测试。开发测试用例通过后,发布到 STG(Stage) 环 境,QA(Quality Assurance) 部 门 会 进 行充分测试,发现问题并提交工单,开发人员跟进修改 代码。质量测试、代码修改、回归验证三者反复迭代, 通过 CI/CD 系统,开发人员可以频繁地发布新的软件 版本到目标环境中,如图 3.通过测试后,最终部署到 线上 PRD(Product) 生产环境。

  3.2 微服务与容器

  TV 多媒体应用包含一组服务, 每个服务都有自己 的功能。通过定义良好的接口和事件消息,在不同的场 景,服务之间互相通讯。图 4 是基于事件的例子:CP 的媒资数据增加、删除和修改,基于事件通知后台的一 系列应用来处理。首先,媒资 CP 或者运营团队,按照 预定义格式提交数据到 S3.该操作自动触发 Lambda 函数做数据检查,根据数据和需求类型,把事件发送 到各个服务的队列,包括:(1) data 批处理存储;(2) 搜索和索引构建;(3)媒资编排服务更新布局;(4)更 新图片缓存和搜索服务缓存;(5)部分业务场景通知, 以及其他服务等。

  实践中, Service 层的各个服务是基于容器独立部 署的,并基于 Amazon ECS 提供的托管编排服务, 支 持用户弹性访问。ECS 可以和其他 AWS 服务无缝集成,如 API 网关、存储系统、安全策略等,如图 5 所示。

\

 
  3.3 Infrastructure as Code(IaC)

  框架中 Service 层的部署,根据模块功能,安全策 略,访问流程,区域分配等,需要不同的云原生资源和 网络结构。IaC 是针对云端基础设施的管理方法。AWS CDK (Cloud Development Kit) 提供了编程接口, 支 持多种编程语言,来创建和管理虚拟机, API 网关, 网络配置 , 负载均衡 , 数据库等云计算资源。IaC 是 DevOps 的最佳实践之一,它降低了手工维护复杂度, 并在 DEV、STG, PRD 多环境部署副本时,确保了一 致性。图 6 示例代码基于 AWS CDK,演示了图 5 中计 算逻辑的基础资源创建方法。

\

 
  3.4 集成式日志

  微服务架构降低了集成式服务的复杂度,同时也增 加了需要管理的服务节点数量 [5] ,微服务的日志,也存 储在不同的容器或物理机器上。带来的问题是,一个功 能调用链路,可能覆盖多个服务,且服务之间也有依赖 关系,如图 7 所示。

\

 
  该调用的日志难以跟踪,一旦发生故障, 需要逐个 排查每个服务日志,才能定位那个步骤出现错误,成本高效率低。而集中式日志能汇总微服务日志,方便开发 人员查询日志,分析故障,并支持一致化的可视化面板。其概要框架设计如图 8.

\

 
  (1) 微服务使用标准输出 (stdout,stderr) 或其他 log 工具 ( 如 slf4j),把 log 写到本地。

  (2)Logging Agent 周期性的读取本地 log 信息, 发送到 Kafka 集群中。

  (3) 集中式日志服务订阅 Kafka Log Stream 并分 类 (Topic) 集中存储。Amazon Athena 提供基于 S3 的常 用的查询功能, Amazon Druid 是高性能数据分析数据 库, 且支持时序功能, 用于 OLAP (On-line Analytical Processing) 分析。图 9 是可视化 log 工具, 支持多纬 度查询和统计。

\

 
  3.5 敏捷开发

  DevOps 是把开发和运维合并在一起的软件工程 实践。基于 DevOps, 两个团队共同完成服务的可靠 性,确保项目实施。Scrum 等敏捷软件开发侧重于使 用协作、反馈和连续迭代的方法快速发布。因此,将 DevOps 集成到敏捷开发过程中至关重要。我们项目管 理组织也在实践中,把 DevOps 和敏捷开发流程结合, 统一管理 Sprint 和审查,加强了开发、运维、质量和 敏捷项目管理之间的沟通,提高了项目的实施效率。

\

 
  4 结语

  本文总结了 TV 上多媒体应用项目中,基于亚马逊 云平台实现高效 DevOps 的方法和理念,并在实际产品 过程中实践、验证和落地。接下来,需要继续探索完善 软件工程理论,从项目管理,需求规划,开发维护,质 量品控,以及流程规范等方面,梳理完善 DevOps 文 化,并展开标准化实践工作。

  参考文献

  [1] LWAKATARE L E,KUVAJA P,OIVO M .An Exploratory Study of DevOps: Extending the Dimensions of DevOps with Practices[C]//The Sixteenth International Conference on Software Engineering Advances,2016:91-99

  [2] SENAPATHI M,BUCHAN J,OSMAN H.Osman.DevOps Capabilities,Practices,and Challenges:Insights from a Case Study[C]//the 22nd International Conference,2018. [3] STEVEN J.What's the difference between agile,CI/CD, and DevOps[OL].[2023-03-10].https://www.synopsys.com/ blogs/software-security/agile-cicd-devops-difference/. [4] THRONER S.An Advanced DevOps Environment for Microservice-based Applications[C]//IEEE International Conference on Service-Oriented System Engineering(SOSE), 2021:134-143.

  [5] BALALAIE A,HEYDARNOORI A,JAMSHIDI P.Microservices Architecture Enables DevOps:an Experience Report on Migration to a Cloud-Native Architecture[J].IEEE Software, 2016.33:2-12.

  [6] Amazon.Amazon web service[OL].[2023-03-10].https: //aws.amazon.com.

  [7] CHEN Y L . DevOps Practices in Digital Library Development[C]//ACM/IEEE Joint Conference on Digital Libraries (JCDL),Cologne,Germany,2022:1-4.

  [8] FERNANDES M,FERINO S,FERNANDES A,et al.DevOps Education:An Interview Study of Challenges and Recom mendations[C].The 2022 IEEE/ACM 44th International Conference on Software Engineering:Software Engineering Education and Training(ICSE-SEET),2022:90-101.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/62136.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml