“在一个遥远的编程王国里,有一个被称为“代码山”的地方。这里住着各种各样的程序员,他们各自在自己的小屋里编写代码。有一天,一个名叫林纳斯的年轻程序员发现,他的小屋里装不下他正在编写的庞大而复杂的操作系统。于是,他有了一个大胆的想法:为什么不邀请其他程序员来帮忙呢? 林纳斯在村子的广场上高声宣布:“让我们一起建造一个巨大的代码城堡,每个人都可以为其添砖加瓦!” 程序员们被这个想法激发了,他们纷纷拿出自己的代码来分享。这座城堡被命名为“Linux”,很快就成长为一个强大而稳固的堡垒。 随着时间的推移,越来越多的程序员加入到这个项目中,每个人都在城堡的墙上留下自己的签名——这就是他们的代码贡献。他们发现,通过集体智慧,不仅能够快速修补城堡中的漏洞,还能创造出许多新奇和有用的工具和房间。 这个故事传遍了整个编程王国,开源精神因此而生。开源不仅仅是一种编程方式,它代表着协作、共享和创新。在开源的世界里,每个人都可以利用现有的代码来构建新的东西,并与他人分享自己的创造。这种方式不断地推动着软件开发的边界,使整个王国变得更加繁荣和智慧。”
在本次双十一之前,我们上线了新版的批处理框架,完整支撑了大促的招商。通过SDK接入,可以直接在业务应用中实现任务逻辑,接入便捷;通过中心化调度与任务分发,处理过程提效明显。
测试左移这个测试方法已经出现很久了,但收益如何,收益如何体现,在不同的团队如何实施起来,现阶段在质量平台还暂未标准化和统一化。测试人员来实施测试左移,则需要测试人员具备业务分析能力,能做一定的业务分析,能看懂业务架构和技术架构,甚至具备代码查看和编码能力,能分析代码逻辑等。 在QA方面,测试自动化是一种行之有效的方法,可以让业务测试更加便捷,减少任何形式重复劳作和返工测试,提高轮次测试执行效率。目前自动化已在迭代应用中进入收益阶段,不仅在回归阶段代替手工回归测试,将自动化作用价值体现最大,也让自动化提前介入需求测试分析中,做到“测试左移”。 今年第一季度团队已提前试点“测试左移”,将自动化提前纳入需求测试分析阶段,在研发提测节点按需完成自动化左移。但是光从口头上说“测试左移”,也不能印证自动化左移的数据,以及左移带来的实际收益和价值,现阶段平台侧将 RDC(Research and Development Collaboration / 研发协同平台,得物技术部自研的一套项目管理工具)、协同面板、流水线、用例平台、自动化平台五方联合,共同搭建出测试左移的全链路操作。
B站的 CDN 下行边缘节点过去是非集群化架构。这种架构下有几个弊端: 增加调度逻辑复杂性; 同机房流量/负载难以均衡; 暴露过多的公网IP,增加安全隐患 (盗链等); 灰度流量比例分配粒度大; 针对以上问题,我们调研了常见的四层负载均衡器, 传统的 SLB,LVS,DPVS 这类四层负载均衡器,在功能上也能满足我们现有的需求。但是以上几个负载均衡器均需要独占机器,进而造成成本升高,资源浪费。 有没有一种既不增加成本,又能解决边缘节点四层负载需求的方案呢?由 Cloudflare 提出的基于 Express Data Path (XDP) 的高性能四层负载均衡器 Unimog[1]性能优异,并且可以和后端服务同机部署,在性能上也完全满足我们边缘场景的要求。所以我们参考 Cloudflare Unimog 的思想,在其基础上自研了适用于B站的边缘四层负载均衡器 Nickel (以下简称 Ni) 。
为优化淘宝带宽成本,我们在网关 SDK(Java)统一使用 ZSTD 替代 GZIP 压缩以获取更高的压缩比,从而得到更小的响应包。具体实现采用官方推荐的 zstd-jni 库。zstd-jni 会调用 zstd 的 c++ 库。