软件工程圣经《人月神话》一书中曾提到“软件开发没有银弹”,事实也正是如此,复杂的软件工程问题无法靠简单的答案来解决。在字节跳动,海量数据、复杂业务场景、快速发展的业务规模,都对业界成熟的开源技术方案带来了或多或少的挑战。字节跳动各技术团队在充分调研了业界成熟方案后,从业务实际出发,自研了多套取得了卓越成效的方案与工具,其中部分已开源,部分已集成到火山引擎服务中,更多方案在内部打磨成熟后也将开放给业界使用。

以下内容为过去一年中,字节跳动技术团队公众号所发布的自研技术方案集合,以飨读者。

字节工程师自研基于IntelliJ的终极文档套件

众所周知,程序员最讨厌的四件事:写注释、写文档、别人不写注释、别人不写文档。因此,想办法降低文档的编写和维护成本是很有必要的。为解决写文档原始模式的诸多痛点,字节工程师自研的基于IntelliJ的终极文档套件方案可以做到完全脱离浏览器/文档编辑器,线上页面的同步完全交给定时触发的自动化部署。

字节工程师自研基于IntelliJ的终极文档套件

字节自研Android虚拟机内存管理优化黑科技mSponge

字节自研的Android虚拟机内存管理工具mSponge,从应用侧视角对Android虚拟机内存管理进行改造,优化了虚拟机对LargeObjectSpace的内存管理策略,间接增加其它内存空间使用上限。改造后的方案,32位运行环境LargeObjectSpace的内存使用上限可达到2G甚至更多(64位环境使用上限理论上会趋于无限大)。通过本方案可以最大程度上从系统侧解决诸多应用都会遇到的内存瓶颈和OOM问题,一键接入,安全可靠。

拯救OOM!字节自研Android虚拟机内存管理优化黑科技mSponge

自研推荐系统大规模TrainingServing方案Monolith

为君作磐石——人人都能搭建大规模推荐系统

字节优化版性能检测工具atop

atop是一款开源的单机性能监测工具,支持实时观测的同时、也支持读取历史文件排查问题。另外一个优点是除提供CPU、MEM、DISK等全局指标外,还提供进程、线程级别的各项指标监控数据。字节跳动基于社区的atop进行优化,目前已迭代3个版本,稳定运行接近三年,新增包括NUMA聚合、JSON格式输出、交互界面改进、日志相关改进及其他特性优化。

深入字节版atop:线上系统的性能监控实践

自研OpenBMC方案

OpenBMC是LinuxFoundation组织里的一个项目,也是目前开源BMC里方案最成熟、社区最活跃的项目。字节跳动系统部STE团队自研的OpenBMC,已在内部成功上线,并稳定运行了四个多月。这也是字节跳动首次正式上线并初步产品化的OpenBMC方案。同时,STE团队的工程师们,也在OpenBMC开源社区里提交了涉及新feature及bugfix的诸多commits,目前已经成为了OpenBMCTechnicalOversightForum(TOF)的一员。

字节跳动自研OpenBMC方案成功上线,STE团队工程师都做了哪些事?

自研同传系统「火山同传」

亮相智源大会,字节跳动自研同传系统的技术实现

自研智能化测试系统Fastbot

Fastbot是由字节自研的客户端智能测试工具,主要适用客户端稳定性/兼容性/压力测试。目前Fastbot已支持多平台:Android,iOS,Web,PC等。目前,Fastbot已广泛应用于字节客户端类产品的稳定性测试与兼容性测试。每日启动任务数超过1万次,每月平均发现5万个以上的崩溃。借助Fastbot的能力,我们在发版前就可以修复大部分的crash,确保线上用户的使用体验。同时,Fastbot在整个DevOps流程扮演重要的基础服务角色。其中iOS、Android版本均以开源。

Fastbot:行进中的智能Monkey

自研端智能一体化方案Pitaya

轻松玩转移动AI,一键集成的端智能框架Pitaya

下期字节技术年货预告:实践篇