ZD至顶网软件频道消息:泰捷创立于2010年,是一家提供家庭视频推送服务的网站视频资源聚合公司。泰捷2011年推出了一个比较重要的产品,就是泰捷的视频软件,内置在泰捷的盒子里给用户提供包括点播、直播在内的视频服务。
下文是泰捷后台工程师李龙在QingCloud IoT沙龙现场演讲速记整理。
今天在这里主要跟大家分享一下泰捷软件开发的整个开发流程、后端的服务器架构设计、如何自动化构建与部署服务器,最后给大家分享两个我们开发中遇到的实际案例。
泰捷目前的规模相对较小,所以我们软件的开发流程实际上也比较简单,整个开发基本流程如下:
•第一,开发人员在本地环境里面做项目开发;
•第二,开发完成之后,由项目主管或者项目负责人进行代码评审。如果你的代码通过审核,会提交到代码仓库同时同步到线上环境。代码仓库是公司内部的代码托管服务器。
•第三,代码同步到线上之后,就要做线上环境的部署工作,也就是对服务器环境做一些部署,比如说一些基本软件工具的安装和用户的添加、登录配置等等。
•第四,在线上环境部署完以后,就可以进行代码部署,这里也是运用我们内部的一个代码部署工具。如果你需要做自定义的部署,也可以加入到部署工具里,可以根据线上服务器类型来提供不同的代码部署服务。
泰捷的后台服务器架构可以分为三个方面:
首先是服务器的宏观架构。
宏观架构包括一个控制管理中心,还有一些在线运营服务器。在线运营服务器分为公网服务和集群服务,集群服务就是由多台服务器集体提供服务;公网服务器是挂一个简单的公网服务,目前所有的服务器使用的都是青云QingCloud。所有控制中心的脚本都是自动化的,用脚本可以直接创建服务器和集群,以及把辅助服务器上的资源添加到单机公网服务和集群服务上面。这就是我们服务器的宏观架构。
服务器间的数据同步。
我们在全国有多个物理服务器数据中心节点,例如北京、广东、香港以及其他省市。这些数据中心里面有的是单机服务器,有的是集群服务器。这些服务器之间通过DNS轮循的方式把视频内容提供给用户,也就是说哪怕一个数据中心挂了,我们的服务也不受影响。数据中心之间也会根据业务需求做数据同步,把不同集群里面的数据通过隧道或者VPN搭建私网的方式进行同步。
服务器的微观架构。
对于单个服务器来说,我们会在上面做一些管理和监控部署。配置管理服务,在管理中心有一个登录管理组件,里面记录了所有服务器的登录IP、登录端口、登录用户ID以及相应的证书;监控告警服务,可以了解单个服务器上面的运行状况,如果出现问题会发出报警;代码和数据服务,程序员开发完之后提交到真实服务器上的代码和文件。对于单个服务器来说,我们目前是通过青云QingCloud的API直接创建和删除。
自动化构建服务器
下面说一下服务器的自动化构建。对于单个服务器来说,自动化构建可以通过青云QingCloud的API来操作。生成的机器主要有两种类型:对外服务器、对内服务器。我们会专门设置一台服务器作为内部集群健康状态的监控服务器,当检测到出现问题会及时发出警报。
通过QingCloud创建完机器之后,就会有一个内部自动化初始的脚本,直接在服务器上运行。初始化之后,会通过脚本自动注册一些服务,包括登录、用户配置和基本软件的安装,以及将WEB端的一些登录信息、IP端口通过对外接口传递到数据中心在插板机上注册。
接下来是应用的部署,上面说过泰捷有专用的代码仓库服务器,代码仓库里面放着运营程序的代码。程序员在自己的机器上做好应用之后,编写相应的脚本,把脚本上传到代码仓库里,在需要部署应用时,即可通过代码仓库迅速部署需要的应用。在应用部署完毕之后,需要程序员去检验服务是否正常运行。如果这个服务不需要了,就直接在QingCloud上进行销毁。在我们的使用过程中,QingCloud带给我们的好处,除了在线运行和部署灵活之外,无论单机还是集群都可以做成脚本快速生成和销毁,将工程师从一些基础服务部署中解放出来。
我们目前用的是Ubuntu系统,下一步我们主要做容器开发,是基于Docker来做的。这样部署的时候就不需要编写应用本身环境依赖的代码。在QingCloud上使用虚机可以很轻松的进行部署和自动伸缩,但是由于容器的应用质量状况不能依据它的负载均衡器来评估,所以还可能需要收集客户端的数据,然后在自动化配置管理中心对容器做伸缩管理。
下面分享我们做过的一个案例。这是我当时的一个后台数据中心服务架构(如上图所示)。其实就是一个Mongo的分片,包括下面的三部分:Node.js、Mongos、Shard。Mongos根据数据的种类分发到不同的shard里面,不同的shard存储自身的数据。整个架构里面,Loadbalancer和Node.js、Mongos和shard都可以不断的进行扩容,增强规模。
第二个案例是泰捷视频后台API服务的整体架构(如上图)。我们通过正向爬虫和反向爬虫,将爱奇艺、搜狐和各大网站的数据搜到爬虫库里。爬虫库里面有一个任务就是做合并,把新爬到的数据和原有数据做一个合并,当然这个合并的过程比较复杂,我们运营人员也会做一些人工合并的操作。然后讲这些合并后的数据写入到节目信息数据库里。这个节目信息数据库里面有一个定时任务,会在节目库有更新的时候触发,把这个数据全部更新到数据中心,然后通过数据中心把这些数据提供给用户。
因为我们要支持几百万用户的并发访问,只能通过Node.js来做,同时要求所有的Mongo数据库放在同一个数据中心内,以降低访问延迟,所以第二套扩展起来要比第一套更为简单。
【预告】7 月 28 日,QingCloud Insight 2016 将邀请 50 多位行业专家分享云计算、大数据、机器学习、容器、DevOps、安全等领域的前沿话题,打造一场业界交流、开发者学习、创业创新项目展示的顶级云计算盛会。报名戳这里:http://insight.qingcloud.com/?bag_track=zdnet
好文章,需要你的鼓励
施耐德电气以“新质服务+产业向‘新’行”为主题,第六次参会,展示全新升级的“新质服务体系”,围绕创新驱动、生态协同和行业赋能三大核心领域,以全新升级的“新质服务体系”,助力中国产业向高端化、智能化、绿色化迈进。
香港中文大学联合上海AI实验室推出Dispider系统,首次实现AI视频"边看边聊"能力。通过创新的三分式架构设计,将感知、决策、反应功能独立分离,让AI能像人类一样在观看视频过程中进行实时交流,在StreamingBench测试中显著超越现有系统,为教育、娱乐、医疗、安防等领域的视频AI应用开启新可能。
甲骨文正在成为大规模基础设施供应商的可靠选择。该公司通过AI技术推动应用开发,构建GenAI模型并将智能代理集成到应用套件中。CEO萨弗拉·卡茨透露,公司剩余履约义务达4553亿美元,同比增长4.6倍,并预测OCI收入将从2026财年的180亿美元增长至2030财年的1440亿美元。甲骨文正积极布局AI推理市场,凭借其作为全球最大企业私有数据托管方的优势地位,有望在云计算领域实现重大突破。
Atla公司发布Selene Mini,这是一个仅有80亿参数的AI评估模型,却在11个基准测试中全面超越GPT-4o-mini。通过精心的数据筛选和创新训练策略,该模型不仅能准确评判文本质量,还能在医疗、金融等专业领域表现出色。研究团队将模型完全开源,为AI评估技术的普及和发展做出贡献。