• 这是硬核技术创新!解读华为云柔性计算


    序章

    为了给非专业读者解释这个技术创新有多么的硬核,我先说个小故事。

    • 我将本文涉及的技术原理和最终效果,解释给友商云相关领域的资深技术专家。

    • 这个专家的评价是:“技术有可行性,但必须是Linus(创造Linux系统)、Jeff Dean(创造MapReduce)、Fabrice Bellard(创造QEMU) 这种级别的真神亲自操刀,我才可能信一信。”

    • 然后我又问:“这几位真神都不做云计算,这些技术换成华为云来突破,是不是能有些可行性哪?”。

    • 友人先是沉默,然后释然微笑:“将信将疑吧,测一测就知道了。”

    10da1b89c08012bded4f2ee845806ada.png


    1. 云行业很少有技术创新

    云计算行业是个高科技IT行业,但云计算行业很少出现技术创新。我们虽然经常宣传“云计算创新”,但大部分从业者根本分不清“技术创新”和“例行技术工作”、“产品创新”、“业务模式创新”的区别。

    关键软硬件出现“从无到有”的重大功能演进,这才算硬核技术创新。随手举三个例子,“KVM支持Windows系统”“网卡支持CPU Offload”“深度学习理解非结构化数据”。这种创新并不常见,每个创新都能让行业内消化五到十年,而且技术创新的大方向是无法隐藏的,友商只要想学早晚能学会。

    云厂商的技术专家们日常工作是对已有的技术做选型、实施和调优工作,这不是技术创新,而是“例行技术工作”。还是随手举例子:“块存储提高了1%的稳定性”“给容器套一层云主机”“GPU算力云搭配高性能网络”。我举例的这些工作肯定能做出来,过去没做只是业务没需求或者条件不成熟。

    产品经理主导的、客户能看到功能亮点、公司能看到业务收益的创新就是产品创新,比如“应用深度学习技术做个图片识别API”“在南极部署云节点”“定义对象存储的内网读写速率”“DDOS和CDN双向复用带宽”,这都属于产品创新。

    业务模式创新就更笼统了,这些工作的决策权都不在产品线,而在公司宏观层面,既有公司主动探索的业务模式创新,也有盲目摸索和事后承认的业务模式创新。比如公有云的“变买为租”就是一个业务模式创新,公有云“先代理、再承包、最后取代”传统商业软件,这也是业务模式创新。

    我很激动地写下了这篇文章,这是因为:

    • 这么多年我第一次看到了云厂商发起的、非常硬核的技术创新。

    • 这个硬核技术创新,值得我们去深挖能带来哪些产品创新和业务模式创新。

    • 这个技术创新现阶段推出的产品创新,目标客户就是大型互联网公司,我最愿意和甲方技术大佬做云计算技术科普了。

      3bd2035deb431bc7eb53f16f6eab6d95.gif


    2. 柔性计算取代了弹性计算

    云厂商刚推广“弹性计算”做资源复用时,因为对比目标是“客户IDC场景中只用1%的资源”,所以这是个很棒的产品创新。但是面对大型互联网客户的集中重载需求,这些资源复用的技术效果就很差了。我在写《云计算行业进阶指南》一书时,就对这些技术限制做了总结:

    • 云主机的资源复用等问题,最终是受限于操作系统对内存的管理和对进程的定义。现有的云主机迁移复用技术在高负载下并不实用,期待云主机和操作系统技术大牛能解决这些难题,最终为云厂商节省更多的资源。本段文字经过多次修订,在书稿的156页能找到类似内容。

    我写书时猜对了问题,而华为云已经在实践答案了。这个答案就是:

    华为云研发出了柔性计算技术,发布了“Flexus云服务器”一系列产品(后续简称Flexus),其中面向大型互联网客户、接替弹性计算云主机的产品是“Flexus X实例”。该产品应用的柔性计算技术,几乎就是怼着我的书稿念的答案——他们确实在云主机和操作系统层面解决了技术难题。

    Flexus是“柔性计算”不是“弹性计算”,该产品能够保障云主机的超卖复用后的性能问题,极大降低了用户成本,而且可以热升级CPU内存。该产品的正式承诺是:

    1. 柔性计算实例比同配置的普通弹性实例价格低,目录价就能看到降价25%;后续采用两部制计费后,还能大幅减少采购数量。

    2. 在用户做完资源画像预采集和线上实测后,绝大部分时间内(包括常规晚高峰),柔性计算的实例性能和常规实例完全相同。

    3. 该产品可能会有5%的时间,性能掉到标称的80%。注意,这里是“可能5%和可能80%”,到了这个程度用户就可以索赔了,没到这个程度客户也可以报障排查,这些客户反馈都可以用来继续精调调度模型。

    4. 因为该产品可以不关机热升级CPU内存,所以该产品的后续迭代中会推行两步制计费。用户声明一个性能配置上限,平台会根据用户实际资源用量收费;这样用户采购资源的数量也少了,能够进一步降低用户购买计费资源的开销。比如某用户声明“容量上限32C128G”,他一开始申请个“8C16G”的云主机就够了,随着业务负载的增大,云平台会逐步划拨资源给客户、逐步增加收费。

    5. 该产品当然有技术和用法的限制,这种程度的技术创新必须依赖操作系统的支持,该产品的宿主机必须使用、GuestOS强烈推荐使用HCE(Huawei Cloud EulerOS)操作系统。

    96a0dad19b3e52e98f347d9367604def.png


    3. 解读柔性计算的技术创新

    华为云能实现上述产品目标,就是其完成了柔性计算技术创新。在柔性计算的多种技术创新中,我最关注的是“预测式动态资源超分”和“贴合HCE系统做柔性内存分配”,这两个技术创新从云主机产品和操作系统两个角度,解决了云主机的资源复用问题。

    柔性计算的“动态资源超分”技术比较好理解,用一句话概括是:通过多维度搜集资源用量信息,准确预测一个实例下一时刻会使用多少CPU、内存、网络和存储IO资源,通过提前调度资源来保证产品性能。

    • 传统弹性计算的超分调度技术是静态滞后的做被动响应、火急火燎的故障迁移,最多做到粗粒度的计划调度。柔性计算的动态超分技术目标是,实时细粒度预测某个实例会用到多少资源,只要对客户资源用量的预测结果是准确的,云平台就可以提前调度资源,即可以充分利用资源,还能够做到客户无感知。

    • 要实现行为预测,先要做概率统计,要做概率统计,先做好数据搜集和定义。道理大家都懂,但其他云厂商推动类似工作的员工能力差、权限低、用户不配合,即无力获取数据,也无力解读数据,还很难确认效果。而华为云做柔性计算技术创新的云架构创新Lab没有这方面困扰,也能得到客户技术高管的鼎力支持。

    • 在拥有了长期大量的数据,并能够对预测结果进行标注确认后,深度学习技术就很适合完成“行为预测”的工作。华为云的柔性计算有多准确,需要大家实测体验。只要大家不“误导调戏”、故意造出来不规则的波峰波谷,你的柔性计算资源用起来就跟普通资源一样平稳安逸。

    • 有朋友会担心,预测资源用量只适合“相对稳定的业务”,这是个花瓶技能。但是大家想想,有多少业务需求是完全不稳定的哪?这不是个技术和产品问题,而是售前售后负责的用云引导问题。比如Web服务遭遇突发的DDOS攻击,就算让客户用独享的裸金属也会扛不住宕机啊?

    a989479eed96b4671f0aea522469372e.gif

    柔性计算的另一个技术创新要点是“柔性内存”。该技术在同一个宿主机上,对不同虚拟机的内存使用需求做延迟分配和及时释放,再结合前文的资源超分预测技术,可以在严肃商用环境中做内存的动态超分。

    • 柔性内存说简单点,就是将宿主机和虚拟机的内存管理(MMU和vMMU)融合成一层,由宿主机直接管理虚拟机的内存,这样虚拟机内遇到缺页中断就能立刻申请内存,虚拟机内释放了内存也能快速归还给宿主机。当然了,华为云也要应对因此衍生的租户隔离安全、整理内存碎片等新技术需求。

    • 用户对柔性内存最大的顾虑就是延迟分配带来的性能降级,这个问题并不难解决,只要提前分配内存就行了。前文介绍的资源超分预测技术,就是让内存提前分配的动作变得更精准。至于空闲内存回收,该工作对用户完全透明,柔性内存技术会根据本节点的内存稀缺程度,采取更激进或更懒散的回收动作。

    • 内存缺页需要纳秒级响应,任何网卡都无法满足纳秒级性能需求,所以必须在本机给高负载业务分配内存。柔性计算发觉本机有内存耗尽风险时,会提前将低负载虚拟机进行热迁移,给高负载业务让出内存。而且内网硬件也在技术进步,“万一、如果、假设”华为云投产了比RDMA性能更高、时延更低的网络,虚拟机的热迁移会更圆润快速,柔性内存技术会更可靠。

    华为云为了兼顾必须使用第三方操作系统的租户,支持往第三方操作系统内添加监控Agent,并强化修补了内存气泡技术。但是用户要想用好柔性计算技术,优选使用HCE操作系统,这样的资源调度的动作最优雅,信息搜集粒度最精准。而且柔性计算主打的“配置升级不中断”“两部制计费”,也需要GuestOS动态识别新增的CPU内存,这也是HCE系统所支持的。

    f722dc87c1c65f867915fca413785b04.png


    4. 畅谈柔性计算的产品创新

    技术创新需要包装到产品创新中才能创造经济价值。本段落结合我对云用户的需求和华为云已有的成功案例,畅谈一下柔性计算技术能带来什么新产品。

    柔性计算技术现在已经带来了Flexus产品创新。客户现在就能观测到产品的单价低,未来实现了两部制计费以后,客户还能采购更少数量的资源。这种“长期稳定供应、性能好价格低”的云产品,天然适合大型互联网企业。

    • Flexus产品已经有很典型、负载信息和成本收益都很明确的成功案例。例如,华为编译构建业务使用了超过十万个计算核心,日常资源利用率在30%-40%,这是个典型的重载服务;在使用Flexus产品后,该业务降低了30%的算力价格,节省了35%的资源用量。再比如,华为消费者云的CPU用量波动较大,偶发峰值能达到80%,且长期占用大量内存,该业务使用了Flexus 产品后,在业务性能持平的前提下,算力成本节省了36%。

    • 公有云最重要的客户就是大型互联网客户,而Flexus产品最适合大型互联网企业。这些企业有很强的技术评估能力,算力资源池规模很大,很容易接受能大量节省IT成本的新技术新产品。一旦客户确认柔性计算技术确实能够保障资源性能和稳定性,在巨大的成本优势下,客户可以严肃考虑后接受将GuestOS更换成HCE系统。

    • 新技术问世以后,外界总会对这些技术抱有迟疑和不信任,大部分客户拥抱新技术的速度偏慢。但互联网大客户拥有强悍的多云容灾技术实力,即使面对严重的全云故障都能自己给自己兜底。这类客户既有魄力、又有能力、还有动力去尝试柔性计算这类创新技术,而且他们的产品采购规模也够大。

    2dc1130fbb431615b92e106d3908e776.png

    柔性计算的技术抓手不会止步于操作系统和虚拟机,而是会延伸到服务应用中,站在云平台资源管理端的角度,从“负载和资源”的对应关系入手,深度介入应用优化工作,最终促进这些服务应用的产品创新。

    • 柔性计算开始识别应用负载的特征信息后,可以实现更精准的预测和调度资源。参考华为云的公开资料,在Redis、MySQL、FFmpeg、ElasticSearch等常见应用上,柔性计算技术可以感知到性能QoS劣化,识别出邻居干扰,然后对应用负载所属的云主机进行调度和迁移。

    • 工程师手工操作给Nginx、Redis、MySQL、GuassDB、大数据群集、AI群集这类服务应用做性能优化的过程,就是结合业务负载和可用资源,对一些内核参数和应用参数做细致微调。柔性计算能够用AI分析业务负载信息,也能精准的调控资源,在和这些应用技术融合适配后,可以自动完成参数性能调优。

    • 上述两个技术改良方向,都是在利用柔性计算技术打破了云平台和服务应用之间互不关心的现状,提高各种高负载服务应用的性能和稳定性。随着这些工作成功提高了服务应用的性能、稳定性、易用性和性价比,就是弹性计算技术在帮助这些服务应用实现产品创新。

    66b5c949637351333b679643eaec2183.png


    5. 畅想柔性计算的业务模式创新

    柔性计算作为一种重度节省资源的技术创新,有可能会引发云厂商的业务模式创新。

    两周前我刚写了一篇《五年后,云厂商靠什么盈利》,文中认为,五年后云产品还会大幅降价,现有“加价倒卖资源”的业务模式无法维持下去。云厂商要想长期良性运营下去,只能通过技术创新和管理提效的方式,提高资源利用效率,降低产品成本,在相对低毛利下实现相对高净利。

    • 很多从业者谈起“价格战”就充满了鄙夷,认为云厂商就应该专注于“技术型云产品”。但是,这些从业者根本就不懂IT技术,他们连本文的技术内容都看不懂,所谓追求技术就跟“叶公好龙”类似,只是为了更体面的混日子。我们不要受到这些噪音的污染,能降低成本、能打价格战的技术创新,才是最硬核、最有价值的技术创新。

    • 当年国产通信和网络设备厂商打败欧美同行,靠的就是追求合理的毛利润。那些让欧美友商吓得闭门免战的价格战,其实是国产厂商在解救被欧美厂商高价掠夺的可怜客户;我们没必要为友商的哇哇大哭而共情,而应该为客户的盈盈一笑而欣慰。国产厂商打完价格战以后,不仅锻炼了管理和执行能力,也磨炼出来了更先进的通信和网络技术。

    • 某些云厂商自称是在“打价格战”,但实际上是在“造假买营收”,他们的价格拼的再惨烈也无法锻炼管理、执行和技术能力。如果云厂商靠自身技术优势和效率优势打价格战,让客户实打实的长期省钱,这就是最浩浩荡荡的堂堂之阵。

    6a8413d48c720050cee7549f6106f7cb.png

    我对柔性计算的技术创新非常激动,不仅是因为这个技术创新太罕见了,而是我看到了该技术有能力去推进云业务模式的创新,为“云厂商五年以后怎么盈利”的问题,提供了充满信心的畅想。

    柔性计算技术及衍生出的产品,可以长期稳定的降低客户对IT资源的使用数量,让云厂商体现出技术价值、品尝到技术红利。

    • 在友商缺乏类似柔性计算的技术产品时,华为云可以要客户直接为柔性计算技术买单。假设客户使用柔性计算产品能节省10万块钱,云厂商就可以从中抽取三四万块钱的技术利润。假设柔性计算自动优化技术参数的效果比客户手工配置更高效合理,云厂商也可以收取技术费用。总之,云厂商在有技术优势的时候,可以短期借鉴一下英伟达给GPU定价的刀法。

    • 在用户不可见的后台资源维护领域,柔性计算可以让云厂商减少服务器和IDC的资源采购量,能够大幅降低云厂商的资源成本。柔性计算让虚拟机的迁移更顺滑流畅,在云厂商想调度资源时更容易完成实施工作,也能极大的提高资源的流转利用效率。

    • 很多云从业者因为自己的见识不够,把自己的认知空白区当做“硬核技术创新”,这些假创新肯定卖不出技术价值。比如大型互联网客户和云厂商都能快速掌握弹性计算技术,在这种前提下,某些从业者还指望客户为弹性计算的技术买单,这就是过度自信了。客户购买弹性计算产品时确实会多付些费用,但那不是为弹性计算的软件技术付费,而是为平台预留资源的成本付费。

    cc9650130e11e49a4dfebcb9af447291.gif

    云厂商前些年的业绩考核目标就是追求营收规模,但是这个气球已经吹不动了。大规模应用柔性计算技术,是云厂商转变业务模式的一个很好契机。云厂商不再关注营收规模,而是关注毛利润和净利润,这才是一个长期健康发展的行业应有的样子。 

    类似柔性计算的技术创新开发难度很大,只能靠技术实力最强的云厂商来研发,而那几个资源型云厂商(比如运营商云)和效率型云厂商(比如几个精耕管理效率的小云)是无法完成这种层次的技术创新的。这层技术创新的天堑鸿沟,能让技术型云厂商待在一个舒适区里,和资源型云厂商、效率型云厂商竞争时不会有那么大的压力。

    柔性计算能减少云厂商对CPU的采购,这也是在为潜在的硬件供应危机未雨绸缪。一旦美国又出现了各种禁售、限售政策,云厂商能够减少CPU需求,用现有的CPU就能多撑两年业务,就能撑到国产CPU落地开花啊。

    86ea4544eb24bb82b213e78200cb77a7.png


    6. 警示-不能辜负好技术

    我的书中第231页对技术创新有一段有趣的介绍:由支撑资源引爆的技术创新,产品的推广路径是“先有技术,再有产品,最后找客户”。这种创新路径使得产品的客户覆盖面很广,经常会有歪打正着的效果。比如为A产品而研发的技术,在B产品上使用效果更好,或者一款产品本来想做A业务,但实际上B业务成功了。

    技术不能等于产品,各种技术创新需要变成产品和业务模式创新才能为公司创造收益。但是,云厂商经常出现逻辑混乱,把技术、产品和业务模式混为一谈。为了避免这些珍贵的技术创新被失败的产品和业务模式所拖累,我想来想去,还是加入了本章节。

    首先我们需要明确一点,技术专家们一般只负责例行技术工作,能够做出技术创新属于超额完成本职工作了。技术被包入了错误的产品、产品卖不出价格,都不能用来否定技术创新的价值。比如QEMU、深度学习、CUDA都没有直接卖钱,但谁敢说这些技术创新没有推动产品创新、没有开发出新兴业务?

    9a93a23debe46c465be71355526aa89d.gif

    我拍大腿都能猜到,从技术到产品、产品到业务模式都可以对新技术口嗨质疑。但是,所有的口嗨式质疑只配得到拍大腿的答复。我下文就随便模拟几个QA问答,解释想做事时,方法总比问题多,想质疑时,问题总比方法多。

    • Q1:很多人会口嗨:“哎呀,柔性计算是新技术,万一不稳定的话怎么办啊?”

    • A1:拍大腿回复:互联网大客户都不怕你全云宕机,他们也不怕你一个小规模资源池宕机啊?只要性价比够高,客户可以适度降低对SLA的预期。

    • Q2:很多人会口嗨:“哎呀,柔性计算万一把大订单做小了怎么办啊?” 

    • A2:拍大腿回复:这种会降价的新技术,应该先拿来挖友商的客户啊,友商的大订单变成你的小订单,这对你也是赚的啊?

    • Q3:很多人会口嗨:“哎呀,就是我的存量客户,看到新产品便宜就想挪窝。”

    • A3:拍大腿回复:你们跟客户签单的时候为什么不签成固定长租哪?就算自家便宜新产品挖不动客户,友商也可以用新产品、降价、故障迁移等方式挖你的客户啊。而且存量客户主动提出想体验新技术,你们也经常用拖流程、拖测试、核资源等理由,把产品交付周期拖上一年半载的啊?

    • Q4:很多人会口嗨:“哎呀,友商跟客户签的是五年长期租约,挖不动啊。”

    • A4:拍大腿回复:友商签的各种长期租约,很多都是直租的裸金属,如果柔性计算能给客户节省50%的资源,嘿……客户会主动跟你商量,无论是卖软件授权和代维服务费,还是本云从客户手里转租下这批资源,都是有赚钱方法的?

    • Q5:很多人会口嗨:“哎呀,要是客户就想毫无规律的使用计算资源,这下就把柔性计算的预测体系给打乱了啊。”

    • A5:略深思回复:不要把柔性计算的预测体系等同于旧监控体系下的日高峰、周高峰和月高峰。用户除了遭受外部攻击、程序写出严重Bug、自发破坏性测试之外,怎么能做到“毫无规律”的使用计算资源。出现上述问题,就算用完全独立的裸金属,客户业务也要趴窝啊。

    • Q6:很多人会口嗨:“哎呀,我就觉得现在追求营收这个业务模式挺好的,没必要去追求什么毛利润净利润。”

    • A6:叹口气回复:你觉得?那就你觉得吧……。

    99.9%的从业者都没有做硬核技术创新的实力,那我们就要更加珍视这些硬核技术创新的成果。每个人都努力做好自己能做的事情,尽力帮技术创新完成落地实践,把技术变成产品,把产品推给客户,最终走出新的业务模式。

    b47e424b000dc4f7b48f4583905dceef.jpeg

  • 相关阅读:
    C语言之深入指针及qsort函数(五)(详解介绍)
    Java RestTemplate使用TLS1.0(关闭SSL验证)
    Spring 源码(17)Spring Bean的创建过程(8)Bean的初始化
    leetcode6132. 使数组中所有元素都等于零(简单,周赛)
    JVM理解(一)
    2023南京财经大学计算机考研信息汇总
    车载通信架构 —— DDS协议介绍
    Java中的正则表达式
    cad转pdf怎么变成黑白?
    springboot16:指标监控(线上指标监控,微服务,高级特性)
  • 原文地址:https://blog.csdn.net/weixin_48558260/article/details/139873022