阿里集团搜索和推荐关于效率&稳定性的思考和实践

背景

效率和稳定性是咱们从工程层面来衡量系统对业务支持能力的两个关键指标。从流程管控上来看,业务效率的提高必定程度上会影响到稳定性,而对稳定性要求太高又会带来对业务效率的影响。从业务的角度来看,成熟的业务会更偏向于稳定性,而新业务更偏向于效率。效率和稳定性兼顾,也就变成了一个巨大的挑战。html

咱们理解的效率

一般咱们提到“效率”更多的是关注开发效率或迭代效率,咱们这里称之为“业务效率”。你们一般容易忽视“资源效率”,在阿里集团搜索和推荐现有业务规模下,忽视资源效率的将付出很大的成本。docker

效率 = 业务效率 + 资源效率测试

影响业务效率的因素主要有:阿里云

  • 开发复杂度
  • 业务迭代流程
  • 业务维护成本
  • 稳定性要求

开发复杂度取决于其生态能为业务的开发提供什么支持,包括语言层面和业务领域所在的第三方生态、集团层面的二方生态、以及业务所在平台。迭代流程一方面能够保证业务功能的正确性,同时也能够提高线上系统的稳定性,可是复杂的流程会很大程度上影响到业务的效率。如何下降业务开发复杂度,为业务开发提供更强大的生态支持?如何简化迭代流程且不影响稳定性?如何下降业务的维护成本,提高其稳定性?我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,立刻就要抢光了。spa

影响资源效率的因素主要有:htm

  • 稳定性要求:一般出于稳定性考虑会适当的下降资源利用率的要求,好比为了应对流量高峰咱们须要提早准备容量,为了容灾咱们须要有必定的容量buffer。
  • 资源的管理和分配方式:传统靠人来管理和分配物理机效率低下,因此才有了容器技术以及如今docker的大规模应用,可是没有调度系统的支持docker与传统vm相比并无明显的优点,并不能有效解决总体资源利用率低的问题。
  • 长尾业务:传统人治的方式没法顾及长尾业务,长尾业务因为其业务规模限制必然存在资源浪费。
  • 资源采购交付时间:一般采购交付时间从业务的角度来看是不可控的,为了应对业务将来的资源需求,咱们一般须要提早1年提预算、提早半年左右时间提交采购。而这里时间的把控彻底依赖于我的经验。

提高资源效率最直接的手段固然是让全部业务提高资源利用率。而运动式的作这项工做成本巨大收益也不必定能达到预期,还会极大的影响到业务效率和稳定性。如何用更低的成本、在不影响业务效率和稳定性的前提下,持续的让资源利用率保持在合理的范围内,是否勇于延迟采购交付时间?这是咱们的挑战。内存

咱们理解的稳定性

一般咱们对稳定性最直观的认识就是不core、没有内存泄露,这也是咱们一般稳定性测试的范围。每每你们比较容易忽视稳定性另一个重要的因素 ——— Robustness(鲁棒性)。咱们认为稳定性是在任何状况下都不会出现服务异常中断或资源泄露,同时在非正常输入和非正常压力状况下服务在可接受延迟范围内正确响应率不低于必定比例。资源

相关文章
相关标签/搜索