公司:哔哩哔哩
bilibili,音译哔哩哔哩,是总部位于中华人民共和国上海市的一个以ACG相关内容起家的弹幕视频分享网站,故简称及通称B站[f]。此外,bilibili的前身为视频分享网站Mikufans,并由网友“⑨bishi”(徐逸)于2009年6月26日创建。Mikufans建站的初衷是为用户提供一个稳定的弹幕视频分享网站,其后于2010年1月24日改为“bilibili”。
bilibili的内容随着发展渐渐不仅限于ACG,主要分区分为番剧、国创、放映厅、纪录片、漫画、专栏、直播、课堂、动画、音乐、舞蹈、游戏、知识、数码、生活、美食、VLOG、鬼畜、时尚、娱乐、影视、电影、电视剧、音频,除此之外亦有会员购、专题中心、全区排行榜、活动中心、能量加油站、社区中心、工坊集市、小黑屋、音乐PLUS、游戏中心(特指由哔哩哔哩代理登陆接口的游戏发布平台)、游戏赛事的区域。除了视频外哔哩哔哩还运营有《命运/冠位指定》、《崩坏学园2》等多部游戏。而现在网站标题中含有“( ゜- ゜)つロ 干杯~”的颜文字以做宣传。除此之外bilibili也被用户称为小破站、小电视。至2015年,75%的用户年龄在24岁以下,是年轻人的聚集地。
至2023年3月31日,B站月均活跃用户达3.15亿,移动端月均活跃用户达2.76亿,分别增加31%及33%。在用户健康增长的基础上,B站也在不断加快商业基础设施建设,提高社群服务管控能力。B站月均付费用户增长至2,720万,同比增长33%,付费率提升至9.3%。不过做大的同时,bilibili的成长空间也逐渐饱和,影视会员与视频业务在2022年营运呈现亏损扩大状态,年轻新人大量涌入却未能利用,而部分老用户指B站感觉变了,对现在的评论管理与风气感到不满,同时其up主也因为投稿不顺、分成不足等问题,开始出现部分停更现象。对此B站开始进行裁员降本增效,重新把精力投入游戏与商业制作上,项目2024年达到盈亏平衡。
B站的数据质量管理——理论大纲与实践
一位业务部门的同事找到我们,咨询了一个经典问题:
「需求方经常说我们做的报表看起来数据不准,有什么办法吗?」
为了解释这个问题,我以我们团队在数据质量管理中积累下来的方法,为他写下四行字:
- 数据质量期望——业务需求想要把数据质量保障到什么样的标准
- 数据质量测量——怎么评估数据质量水平的高低、是否达到标准
- 数据质量保障——为提升质量水平,达到质量期望,具体的保障实施动作和内容
- 数据质量运营——如何通过数据化运营,提高保障的成果与效率
这四行字,概括了我们在数据质量管理执行中的理论大纲。
Apache Flink运行时在B站的稳定性优化与实践
以Flink为基础的实时计算在B站有着广泛而深入的应用。
百亿数据个性化推荐:弹幕工程架构演进
回顾弹幕工程建设的发展历程,大致可以分几个阶段:
- 基础能力:在高并发、热点场景下,保证弹幕服务的稳定和高可用 、
- 负向治理:以管控为目标,通过删除、自见、打薄等手段过滤低质弹幕内容
- 正向推荐:以优化视频消费体验为目标,筛选优质弹幕内容上屏展示
这三个阶段的目标始终在并行推进,在1和2的基本问题完成之后,作为B站的特色功能和社区文化重要载体,弹幕业务在承接基础功能之外也需要持续探索优化消费体验的能力。这也就必须在稿件维度优选的基础上通过用户特征交互获得更大的策略空间,建设千人千面的弹幕推荐能力。
这个过程离不开工程、算法、产品等多个团队的倾力合作,本文会以工程团队的视角重点介绍工程架构对推荐系统的能力支持。
哔哩哔哩大数据建设之路—数据开发篇
本期内容由B站大数据平台工具开发团队从平台总体简介、数据开发体系、数据开发后续工作三个方面讲解哔哩哔哩大数据平台建设之路。
直播营收场景技术保障实践
S12决赛尾声,伴随DRX成员们从眼泪到荣耀的升华,技术保障团队的心也松弛下来,逐渐把目光从监控中挪开。一方面分享胜利的喜悦,一方面也为实现了“边喝茶边保障”的目标而高兴。
直播混沌工程之故障演练实践总结
近年来,随着系统架构逐渐向微服务架构演进,开发效率以及系统扩展性大幅提高,服务之间的依赖所带来的不确定性也成指数级增长。
S12技术保障内幕揭秘-如何实现“喝茶保障”
B站作为今年S12的官方直播渠道,哔哩哔哩赛事直播间实时人气一度超过3.1亿,如何保障整个S赛洪峰流量下系统的稳定性和流畅性,给我们带来了巨大挑战。
Presto在B站的实践
在介绍Presto在B站的实践之前,先从整体来看看SQL在B站的使用情况,在B站的离线平台,核心由三大计算引擎Presto、Spark、Hive以及分布式存储系统HDFS和调度系统Yarn组成。
如下架构图所示,我们的ADHOC、BI、DQC以及数据探查等服务都是通过自研的Dispatcher路由服务来进行统一SQL调度,Dispatcher会结合查询语句的语法特征,库表读HDFS的数据量以及引擎的负载情况等因素动态决定选择最合适的计算引擎执行,如果是Hive的语法需要用Presto执行的,目前利用Linkedin开源的coral对语句进行转化,如果执行的SQL失败了会做引擎自动降级,降低用户使用门槛;调度平台支持Spark、Hive、Presto cli的方式提交ETL作业到Yarn进行调度;Presto gateway服务负责对Presto进行多集群管理和路由;我们通过Kyuubi来提供多租户能力,对不同部门管理各自的Spark Engine,提供adhoc查询;目前各大引擎Hive、Spark、Presto以及HDFS都接入了Ranger来进行权限认证,HDFS通过路径来控制权限,计算引擎通过库/表来控制权限,并且我们通过一套Policy来实现表, column masking和row filter的权限控制;部分组件比如Presto、Alluxio、Kyuubi、Presto Gateway、Dispatcher, 包括混部Yarn集群都已经通过公司k8s平台统一部署调度。
B站大数据平台元数据业务分享
元数据是数据平台的衍生数据,比如调度任务信息,离线hive表,实时topic,字段信息,存储信息,质量信息,热度信息等。在数据平台建设初期,这类数据主要散落于各种平台子系统的数据库中,例如HiveMetaStore,调度系统db等,在这个时期数据平台主要以服务业务数据需求为主,平台也以管理表,写ETL,配置调度这类功能性需求作为重点,对于这些散落元数据的收集与统一管理并没有太过强烈的诉求。
随着数据平台业务规模的增长,平台会沉淀大量的数据表,调度任务等元数据。由于前期快速的业务发展产生大量数据管理成本,存储计算成本。此时会逐步产生诸如模型规范治理、模型变更影响,指标异动定位,重复建设治理等需求场景。基于这些场景需求,此时数据平台仅提供数据开发相关的功能便难以满足业务需求,需要建设以数据地图(找数),血缘地图(定位数据链路),影响分析工具,资产看板,治理工具 等一系列偏向于事后的信息查询、治理相关产品工具。
由于先前元数据的散落,导致系统间数据相互耦合,边界不清楚,无法以全局视角观察分析平台数据资产,无法串联数据之间的生产加工关系。于是建设起完善可靠的元数据服务成为后续满足数据发现,数据治理业务的关键。
B站取数服务演进之路
数据平台部作为B站的基础部门,为B站各业务方提供多种数据服务,如BI分析平台,ABTest平台,画像服务,流量分析平台等等,这些服务、平台背后都有海量数据的取数查询需求。伴随着业务的发展,取数服务也面临越来越多的挑战:
- 需求多、人力紧张,越来越多业务基于数据驱动来做运营,相关的取数需求如:指标查询、UP主、稿件等明细数据的个性化查询需求越来越多,导致在需求响应上,有限的人力跟不上业务发展。
- 系统架构重复建设:基于Lambda,Kappa的大数据应用架构在B站有一些应用积累,但非平台化,导致在新场景支持上,出现重复建设,增加了维护成本。
- 性能优化成本高:在满足多种取数场景需求上,数据服务引入多种引擎,比如Elasticsearch、ClickHouse、HBase、MongoDB,这些引擎都需要查询定制优化,增加了研发成本。
基于这些问题的思考,我们在取数服务上经过了2次大的架构升级,不断探索服务化,平台化之路,下面介绍我们在这方面的工作,欢迎大家一起学习交流。
B站在实时音视频技术领域的探索与实践
直播行业从传统的娱乐直播发展到教育直播、电商直播等形式,产生了很多新的玩法。
单机200万PPS的STUN服务器优化实践
在webrtc技术栈里面,STUN协议虽然不是非常的引人注目,但却是非常重要的一个部分。
BANG:B站视频图像分析与处理引擎
为了给用户提供更好的视频观看体验,B站已研发出很多先进的视频图像分析与处理算法。
B站直播的自研P2P实践
随着硬件的不断发展,直播观众的电脑性能不断提升。芯片越来越快,显示器越来越大,显示器上的像素点越来越小,能展现的画面也越来越清晰;同时我国的网络建设进步飞速,光纤入户在大部分城市已经普及。这成为网络直播提供更高的画质的有利条件。
观众对画质的追求越来越高,有需求就有市场,主播也使用越来越高的画质进行直播。在这个过程中,直播平台需要负担的带宽成本也迅速攀升。
事实上,网络带宽的支出在技术成本侧是占比最大的部分。为了将成本控制在一个可以接受的范围,各直播平台纷纷使用P2P技术来降低服务器带宽。云服务提供商也提供了成套的解决方案,可以为没有自研能力、无法负担自研成本或短时间内无法完成自研的直播平台提供快速接入。
随着B站内部对HLS协议直播的传输研发完成度不断提高,自研P2P的前提条件具备了。HLS本身是一种切片式的直播传输格式,具体细节可以参考前面的《HLS直播协议在B站的实践》。因为切片是静态文件,所以可以通过HTTP带Range头的请求下载这个文件的指定部分。如果让不同的观众下载同一个切片文件的不同部分,然后这些观众之间再互相交换一下数据,大家就都有完整的数据了,而服务器事实上只传了一份数据出去,带宽成本就大幅度降低了。
Flink SQL在B站的实践
目前在B站,线上大概有4000+的flink实时任务,主要支撑数据集成,实时数仓,模型训练,特征指标计算,以及增量化等业务。
新型渗透工具Sliver的流量特征分析与检测
当前各种渗透测试工具层出不穷且更新速度快,安全产品对各类渗透工具的检测难度也随之不断上升。