在当今经济环境下,企业追求降本增效,合理配置资源成为致胜的关键。本文将深入探讨如何通过技术手段,实现在线服务与离线任务的高效协同,以达到精细化管理、资源优化与提升运维效率的目的。
知乎在引入金山云的离线混部解决方案(Colocation,简称“Colo”)之前,已经尝试了多种成本优化策略,包括基于数据指标的资源自动调整、潮汐调度等方法。通过混部方案的实施,知乎实现了更精准的资源调度、更合理的资源隔离以及运维效率的显著提升。
知乎在资源优化的初期阶段,着重于系统化地提升资源利用率。通过构建全面的数据与应用指标体系,自动或引导业务方优化资源配置。然而,这种被动式管理并未达到资源最优配置的目标。
中期阶段,知乎引入了潮汐调度技术,利用 Kubernetes 的 VPA 和 HPA 组件对在线业务进行动态调整,以应对高峰和低谷时段的需求变化。同时,通过集群自动扩展功能,实现了资源的灵活分配,有效提高了资源利用率。
尽管上述策略在一定程度上提升了资源利用率,但知乎仍面临离线集群与在线集群独立运作、资源利用率周期性波动的问题。离线集群在特定时间段内资源高度集中,而在线集群则在相同时间段内资源利用率显著下降,导致整体资源使用效率低下,平均利用率仅为 27%-30%。
为了克服上述挑战,知乎大数据场景下的多个集群实现了在线集群与离线集群的互联互通。通过 YARN Federation 中的 YARN Router 节点,低效离线任务被智能调度至在线集群,实现离线业务的混合部署。
Colo(离线混部解决方案)通过一系列关键技术和组件,如 Colo-manager、Colo-scheduler、Colo-descheduler 和 cololet,有效地解决了在离线混部过程中可能出现的问题,如资源均衡调度、节点过载、在线服务稳定性、敏感业务保护以及离线资源的高效回收。通过削峰填谷的方式,Colo 实现了在线集群资源利用率的大幅提升,显著降低了企业的 IT 成本。
在知乎的场景中,Colo 通过配置优先级(Priority)和服务质量(QoS)参数,实现了对不同业务场景的精细管理。从数据库和消息队列等关键中间件服务,到 LSR 类(优先级:colo-prod + QoS:LSR)、LS 类(优先级:colo-prod + QoS:LS)、BE 类(优先级:colo-batch + QoS:BE)的不同业务级别,Colo 实现了资源的高效分配与优化。
通过引入离线混部解决方案 Colo,知乎成功地优化了资源分配策略,实现了在线服务与离线任务的智慧融合。这一创新不仅大幅提升了资源利用率,还显著增强了运维效率,为企业带来了显著的成本节约和性能提升,标志着企业在资源管理领域迈出了重要一步。