短视频平台开发,⾸先要搭建短视频框架
科技发展,技术进步,⾳视频异军突起。⽆视频,不⽹络,短视频成为最重要的信息载体之⼀,是互联⽹核⼼组成部分。如何进⾏短视频平台开发,是慎之⼜慎的问题。从架构的⾓度,探讨短视频平台的构建与技术选型问题。从以下⼏点进⾏介绍。
1、云平台层构建
短视频平台数据量以PB、EB来计算,未来⼏年将以ZB和YB来计算。⼤的数据量,需要云平台。最好构建独⽴的云,降低成本,可开发性、可扩展性、可维护性较⾼。⽬前国内⼤型短视频平台都是⾃建云。
云的选型,平台⾯向形形⾊⾊的⼈,选择SAAS平台,⽤户不关⼼短视频平台开发的技术问题,只进⾏操作即可,平台本⾝提供完善的服务,⽬前国内⼤型短视频平台都是⾃建SAAS平台。
SAAS平台构建要考虑如下内容,⽹络连接、存储、服务、虚拟化、操作系统、中间件、运⾏环境、数据、应⽤程序等。
如何搭建php开发环境构建SAAS平台,在OpenStack和Docker选型上,不是超⼤型SAAS平台,建议选择Docker。Docker维护难度较低。下图是Docker 和OpenStack对⽐。
OpenStack在底层开发上有很⼤优越性,但OpenStack需要更多的技术投⼊和强⼤的底层运维能⼒,版本差别导致运维有很⼤差异。不是⼤投⼊平台,不推荐使⽤OpenStack。
Docker相对OpenStack,轻量级很多,门槛较低,使⽤性和可维护性都很⾼,提供了更多上层服务。
云平台业务层,采⽤Kubernetes。k8s已经主导了云业务流程,推动了微服务架构等热门技术在云上的普及和落地。k8s提出了基于容器技术的全新分布式架构⽅案,在容器技术领域的发展是⼀个重⼤突破与创新,具有重要的意义。
2、数据⽣态层构建
云平台是基础,是视频数据的载体。在视频数据背后,存在更多服务数据与应⽤数据,对数据的应⽤和分析是短视频平台开发的重要功能。
Hadoop与Spark是⽬前主流⼤数据分析应⽤平台,云平台基础上,进⾏⼤数据⽣态层的搭建。Haoop负责数据存储,Spark进⾏内存级数据运算。
Hadoop通过集式存储,Spark进⾏内存级计算,K8s进⾏整体资源调度。三者相互配合,构建三位⼀体的数据⽣态层。
3、框架层构建
通过框架层,设置可靠、安全、可定制的功能服务。实现程序的模块性,加⼤程序的维护性和扩展性。
框架分类:组件部分、直播部分、计算部分、安全部分、监控运维部分、配置部分等。依据层级关系,分类进⾏建设。
框架服务包含⽤户服务和视频服务。主要模块有关系服务、搜索服务、推荐服务、敏感词过滤、存储
服务、视频处理服务、AI服务、直播服务、转码服务、推流拉流等。
4、业务层
今天,互联互通已经成为现实,未来将有更⼤发展。每时每刻⼏⼗万级的请求。业务层必须保证⾼并发需求,短视频平台开发的必须是⼀个⾼并发平台。
Spring Cloud是⼀系列框架的有序集合。Spring Boot巧妙地简化了分布式系统的开发,做到⼀键启动和部署。包含简单易⽤、易部署、易维护的分布式系统开发⼯具包。
Nginx是⼀个轻量级、⾼性能、稳定性强、并发性好的反向代理服务器。具有反向代理、负载均衡、动静分离的功能。
Kafka是分布式发布-订阅消息系统,是⼀个可划分、冗余备份的持久性⽇志服务。处理活跃的流式数据,负责短视频平台数据流消息通讯。
redis纯内存操作,拥有⾼效数据处理能⼒,是数据⾼速访问的利器。采⽤了⾮阻塞I/O多路复⽤机制,保证数据的实时应⽤。
CDN接⼊服务,中⼼平台的负载均衡、内容分发、调度等功能模块,使⽤户就近获取所需内容,降低⽹络拥塞,提⾼⽤户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
推流拉流是短视频平台必须的功能,通过服务协议进⾏,包括HTTP + FLV、RTMP、HLS、DASH、RTC协议类型。
5、应⽤层
短视频平台属于⾼流量平台,客户端包含电脑端和⼿机端。电脑端应⽤层分为Web实现和应⽤程序实现,⼿机端应⽤通过App进⾏实现。App⼜可分为Android App和IOS App。
Web层⽅便电脑⽤户应⽤,也为App请求提供服务。Web层功能实现主要靠业务层提供⽀持。
Web层技术选型主要是动态语⾔和JS框架。JS框架的选型,没有特别要求。动态语⾔建议采⽤PHP,相对灵活,较快上⼿,⽬前市场上应⽤较多。
客户端应⽤程序通过盒⼦技术来实现,建议对Chrome进⾏封装。相⽐IE,Chrome有更底层操作。
App在整个平台的末端。视频特效的实现,主要通过App客户端完成。程序员调⽤视频特效SDK,进⾏各种特效的实现。对应App的开发,技术选型成熟固定,本⽂不再阐述。
6、总结
短视频平台具有⼤数据、⾼并发、智能性的特点,系统建设相对复杂,技术选型与平台架构,是短视频平台建设的第⼀步,也是短视频平台开发的基础。
————————————————
声明:本⽂由云豹科技转发⾃博客,如有侵权请联系作者删除
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论