序言
在经济周期性波动以及消费互联网逐渐进入成熟期等背景下,靠一张PPT说动投资者,靠增长掩盖亏损的时代慢慢过去了,取而代之的是追求确定性,追求生产力的提升,追求单位成本真正的降低。
追求单位成本的降低是目的,而如何实现是手段,能降低单价的方法都是技术生产力的提升。大家都知道技术是第一生产力,而技术生产力提升,宏观上就是能降低单价,从而在M2不断增加的情况下,让人人能享受优质的互联网服务。
互联网服务拼产品、运营、技术。技术如果能让单位服务的运营成本降低,就更能提升服务的吸引力。产品的迭代效率和成本可能冲突,而构建快速的响应能力,并能比竞争对手更加便宜的价格,需要考验组织力了。
在做成本评估时,特别是内部工具时,因为兄弟公司相关数据未公开,缺乏行业标准,从而导致缺铆,无法评估到底做的好,还是不好,到底能发几个月年终奖。而且技术人员基本采用固定薪酬,有时候是大锅饭,而不像销售是底薪加提成,这个就需要团队有很强的自驱力和成本意识。最好的研发人员是把自己当成小作坊的CEO,既是推销人员,又是财务人员,还是研发人员,这样在做相关技术选型和实现时,就可以很好的平衡运营成本和迭代效率,还能兼顾产品的体验。
做资源优化有OWNER意识后,就容易做短期的优化,并兼顾长效机制。
短期优化
短期优化,一般有很多手段。不同服务可能有不同特点,本文将列一些常用优化手段。
①列好大目标,协商到足够的人力支持;列好小目标,方便拆解到个人,也方便管理。有些好做的,有些需要技术探索的,都需要人力来支持。做事主要是分工的不同,每个人在生产力提升上,都能贡献自己的产出。
②成本落实到组织、个人。需要将成本单元划分到组织和个人,这样一方面能激发团队和个人思考的积极性,一方面好摊派指标。真正全策全力,能更好的进行成本优化,也能节省管理成本。
③缩容,下线无效服务项:资源利用率不高的服务直接缩容;无效报表、无效数据等服务项沟通后大胆删除。如何识别服务项是否有效的一个方法是,将相关服务项的成本分摊给使用方,如果对方愿意承担,说明是有效服务项,如果不愿意承担,说明是无效服务项
④降低数据精确度。有些场景,提高1%的精度,需要增加10倍资源,降低1%的精度,可以降低90%的成本,其中可以基于业务诉求,进行取舍。大数据时代,计算非常精确的数据,需要实时上报,大量的存储和计算资源。受到上报环境的影响、计算机本身以离散数据为基础,会导致需要大代价计算绝对精确的值,如现在的日活等核心场景,都不是100%绝对精确。在一些实时监控等场景,每天可能上报十亿甚至百亿数据,而计算uv、分位值又存在较大的计算复杂度,真实业务又不需要数据100%可靠,整体链路就可以采用估算的方式来节省端到端的资源。如抽样上报、延迟上报,采用hll等数据结构计算uv等,相关算法实现可以参考apache 顶级项目:datasketches,来节省资源,而整体的业务效果又基本不受影响。
⑤解决技术债:一般开发可能知道服务的优化项,也可以找团队其他成员把脉,修复常用的技术债
- 复用链路,节省重复建设成本。
- 利用缓存等经典进行改造服务节省大量计算资源。
- 分区等机制保障数据按需消费,节省IO。
长效机制
成本优化不是一蹴而就的,需要采用长效机制防止短期优化后,成本的反弹,实现基业常青。比较好的做法有成本责任制、人才选拔、资源管理、退场机制、服务平滑升级、云原生、技术探索等。
① 成本责任制,将成本划给对应的组织和个人,并敦促其进行长期优化。一些公司的组织经常变更,需要良好的IT系统支持成本转移。笔者曾经负责过某老牌互联网公司的性能中台建设,当时治理崩溃等性能时,也涉及到很多团队,我们通过一些技术手段,将异常归因到代码提交者和子团队,谁引起的,谁治理;同时有专人负责性能优化。慢慢实现了性能的稳步提升,消费者使用产品时,能有较好的愉悦感。消费者是能感受到谁在认真做产品,谁在为用户体验真正着想。后来在很多互联网公司产品受到字节等新势力冲击时,还能实现日活的稳步增长。
② 人才选拔,和团队利益一致,技术好,owner意识强、自驱力强等的人才更能得到提拔。一些功能实现时,技术思维是将计算机、开源工具当成工具,会常常思考空间复杂度和时间复杂度、模块化、能力复用等,这样既利于维护,也能较好的节省资源。
③团队中找个手紧的人负责资源管理。话说有的人手松,有的人手紧,性格使然,做事方向也不尽相同。同等条件下,个人觉得资源把控时,找那些手紧的人看着,可能效果更好。
④退场机制,需要用技术手段,自动识别长时间无人用的产品和服务,并对其进行下线。部分服务突然没人用,有很多因素,最可能是互联网场景有很强的不确定性。比如最近很多公司陆续停掉了一些产品,就是大胆试错后,发现无法适应环境需要退场,以保障核心航道有足够的资源投入。
⑤服务平滑升级是指在做平台升级时,能做好向前向后兼容,而不盲目造轮子,这样可以在提升自己产出时,节省很多用户的时间,从而不会因为自己产出高了,客户成本变高了,从而整体成本却很高。
⑥云原生可以实现弹性伸缩,很好的规避流量低峰期的资源浪费,流量高峰期又可以自动扩容,满足业务需求,真正做到资源按需使用。
⑦技术探索:在一些关键领域进行技术探索,可能能达到生产力的数量级的提升。比如研究出革命性黑科技,直接将机器成本降低到可以忽略的程度。