字节跳动的多云云原生实践之路( 三 )


字节跳动的多云云原生实践之路

文章插图
除了资源统一,在应用管理方面,分布式云原生平台也提供灵活的跨云分发策略,包含集群名称、标签、污点容忍调度,以及依赖资源的跟随分发 。技术团队也着重锤炼和打磨了平台的开源兼容性,使其能完全兼容 Kubernetes 生态,支持原生  Kubernetes 及 CRD 资源、Helm 等应用定义 。
在日常运维管理方面,字节跳动内部有一套统一的可观测体系,提供在离线应用的监控能力 。如前文所述,我们的在离线业务是通过各种各样的中间件被混合在一起的,在这种情况下,我们可以轻松做到统一可观测,帮助业务团队快速定位问题、解决问题 。
除此之外,字节跳动的分布式云原生平台也提供统一的应用治理 。业务应用的实例可以多云多活的部署在不同云上的 Kubernetes 容器服务中,通过多集群的应用、流量、存储等的统一治理,实现高可用容灾,提升整个业务系统的故障弹性和可靠性标准 。
降低成本之资源利用率
在统一资源底座后,技术团队接下来要面对的就是如何长期地提高资源利用率 。我们把业务负载按时延容忍度和可重入性进行划分,在下图的两个象限中进行合理分布:
字节跳动的多云云原生实践之路

文章插图
依据这样的分级分类,我们就能判断各个应用对哪些资源相对更敏感,在遇到一些特殊情况时,能够根据不同业务的优先级进行有梯度的分级去除,确保高优先级、高时延敏感任务的稳定运行 。
此外,隔离能力也是非常重要的一个因素 。因为计算机系统本身是一个分布式系统,它包含 CPU、硬盘、存储和网络,字节跳动内部也针对这些不同的算力资源采用了一些隔离机制,比如 CPU 会有一些 cache 隔离、系统级的唤醒能力,硬盘方面则实现了 cgroup 级别的内存回收,以及通过用户态的 advisor 机制实现兜底强杀 。
技术团队也有尝试借助一些机器学习的能力,使得不同算力能按照不同要求,更精准有效地去匹配这些隔离机制,从而减轻各业务间的干扰影响 。
目前,通过这些机制,字节跳动的混部方案已覆盖数十万机器,天极平均利用率高达 63%,部分核心业务集群也实现了整机天级利用率从 23% 到 60% 的提升 。
分布式云的下一阶段
回到落地多云给企业带来的实践层面挑战,除了部署 / 运维复杂度、打通 / 互操作性和成本控制复杂度,最后一点就是数据管理 / 合规难度 。随着国际格局愈发复杂,多云 / 分布式云也出现了一些亟待解决的下一阶段发展问题 。
一方面,近年来 AI 兴起,以 GPU、FPGA、ASIC 为代表的 AI 芯片被广泛应用,并与 CPU 组合来满足高吞吐量、高并发和并发互联的需求 。各式各样专有芯片的产生,对算力造成了巨大挑战:如何更好地匹配算力、如何更好地感知不同的算力、如何结合效率 / 成本 / 用户体验做出更加智能精准的判断、如何实现对应的调度……这是分布式云下一阶段在算力调度侧要解决的重要问题之一 。
另一方面,近年来各个企业也开始越来越重视数据合规,如何对联通的数据进行隐私保护也成了一个重要课题 。当前比较流行的方案是隐私增强计算(Privacy-enhancing Computation),包含三个主要流派:
联邦学习:一种分布式机器学习算法,在不交换原始数据的前提下,完成共享模型训练 。联邦学习可以帮助多个参与方共享数据价值,实现数据可用但不可见;
可信执行环境:基于硬件的安全机制,将参与计算的代码和数据加载至一个受 CPU 保护的可信环境中,在机密性和完整性上提供保护;
多方安全计算:在运行时,多个参与方各自拥有私有数据,他们通过非明文的数据交互,来实现约定的对整体数据全集的某种计算(如联合查询、联合建模等) 。
上述变化都对企业级云平台的管理能力提出了更高的要求:一是要 有能力解决应用的研发和管理问题,为用户提供一致的云原生体验,包括开发框架的跨云能力、整体效率问题和底层成本问题;二是 需要具备一定的开放接入能力,这是一个面向应用、面向开发者、面向企业的真正意义上友好的多元化增强平台所需要解决的问题 。
这些问题都会伴随底层问题的破解被一一解决,并走向持续发展 。

【字节跳动的多云云原生实践之路】


推荐阅读