刚刚过去的十年是云计算从落地到普及的十年,对于许多人来说,云计算的神秘面纱已经被揭开,对云计算的新鲜感已经过去了,但仔细来看,云计算基础领域的创新一直没有停过。
最近,作为ARM服务器阵营一支重要力量,AWS Graviton2云主机实例正式在AWS中国区域落地,能支撑日常可见的各种工作负载,性价比相较于x86方案能提升40%,颇有一种要血洗云计算市场的阵势。
除了迁移原有的负载以外,AWS给Graviton2的定位是做云原生的处理器,则是将ARM服务器锚定在了云原生的发展浪潮上。
Graviton的差异化路线
AWS总结了x86存在的一些问题,让其ARM处理器AWS Graviton2走了一条差异化的路线。
首先,x86为了照顾各种场景,芯片架构本身变得越来越复杂。AWS Graviton2则只需要照顾云上的、新的负载场景。
AWS大中华区产品部计算与存储总监周舸回顾了CPU架构以及应用发展的趋势。
他谈到,x86 CPU过去15到20年以来,主频提升越来越小,重点的发展方向是多核和多线程,而操作系统到编程框架、到应用也在适应这种趋势,用平行可扩展的架构来充分利用多核多线程、并行处理能力。
而在云时代,微服务现代化应用的新趋势下,大量传统应用正在被拆分成微服务,以微服务的方式实现水平扩展。于是,x86处理器的设计就不得不兼顾单体和微服务两种应用的需求,并且需要找一个平衡点,整体会变得非常复杂。
其次,x86强调超线程的能力,而AWS Graviton2强调更多的内核。
x86的超线程本来是有优势的,而到了一定规模后,超线程带来的提升会越来越小,资源争夺带来的影响会更大。而Graviton2的思路则是尽可能增加核心数,用物理单核支撑单线程,架构相对简洁,效率更高。
生态的问题,借力云原生的发展浪潮来解决
有许多专家都认为,ARM服务器最大的问题不是性能,而是生态,关键问题在于,没有软件可以运行在ARM服务器上。也有人认为,ARM服务器除了功耗,各方面都被x86碾压,总之,ARM服务器并不被看好。
2019年前后,高通在ARM服务器上的折戟对于ARM阵营打击非常大,而Marvell的Arm服务器芯片由于种种原因,也并不被看好。放眼望去国内的ARM服务器阵营也奋力向前冲,但似乎并没有一个比较明确的发展前景。
AWS的Graviton则是从2018年发布之日起,就成了ARM服务器阵营的一面旗帜,但用户想要用Graviton2,免不了需要将x86应用迁移到ARM架构,对应的生态则显得尤为重要。
据周舸介绍说,从第一代Graviton到现在已经构建了许多生态,各种主流的Linux操作系统都能支持Graviton;Docker以及Amazon EKS(AWS的K8s托管服务)等容器服务,以及Amazon ERM这样的Hadoop大数据服务、Amazon ElastiCache内存数据库服务也都支持Graviton。另外,AWS也提供了一些迁移工具。
除了迁移一部分原有的负载,另外一个重要的方向是借力云原生的发展趋势。
AWS给Graviton的定位是云原生处理器,意在凸显出对正在兴起的云原生生态的支持。周舸表示,许多传统企业也在支持云原生架构,一旦这些企业的应用改造走向微服务化,也就更容易发挥Graviton2多核架构的优势。
2020年re:Invent大会上,AWS发布了一系列容器和无服务器相关的产品和服务,包括Amazon ECSAnywhere、Amazon EKS Anywhere,AmazonEKS的开源发行版EKS-D和AWS Proton等等,堪比连珠炮一般的发布,反映出了云原生不可阻挡的大趋势,而Graviton2则是在借云原生的发展大势。
生态另一层重要的意义在于,有大量实际应用之后就可以降低单个芯片的成本,反过来,大规模使用有利于保持成本优势,两者是良性循环。
幸运的是,作为一家自产自销的ARM服务器厂商,AWS自己就有大量部署,根本不用担心ARM服务器销路的问题,因为,每天有大量的AWS用户在不知不觉中就用了Graviton。
在笔者看来,这可能也意味着,原来x86一点点构建生态的方式,也就是从底层基础软件到上层应用的全方位布局的方式,在Graviton会不一样。因为用户用Graviton的时候用的是服务,而不只是一个处理器,不需要从芯片板卡整机从头构建系统,因为现在是云时代,云原生的大时代。
性能是否能担大任?
上文提到,Graviton路线是不用超线程技术,所以,而是为每个核都设置了大缓存,避免了超线程两个线程抢缓存的尴尬,使得单个物理核的性能变得更强。
由于性能的提升,Graviton服务器不仅能支持Web类、游戏模拟器之类的场景,Graviton开始越来越多的支持MySQL和PostgreSQL这种关系型数据库,以及Redis这类内存数据库。
更有甚者,还有许多用户在用Graviton最新的C6g来跑高性能计算场景,比如天气预测、流体计算等工作负载,超算用户其实已经认可了ARM的性能实力。
2020年的全球超算机TOP 500榜单中,使用大量48核ARM芯片的日本 Fugaku(富岳)超算机夺得榜首,这是ARM架构首次登顶超算TOP500榜单。
在EDA领域的用户对处理器的要求也非常高,但有三家EDA厂商也在使用Graviton2,而且跑出了非常优异的性能,通常来说,搞电路设计的更懂芯片,这也可以看做专家型用户对Graviton的认可。
实际案例来看:迁移的成本与迁移后的收益
上文其实也提到了应用迁移的问题,但迁移究竟有多麻烦呢?
据了解,著名社交媒体Snap在很短时间内就完成了从C5实例(x86)向C6g(Graviton)实例的迁移,将应用运行在EKS容器架构中,性能也得到了非常大的提升。
Smart Mark的CTO表示,在2019年使用第一代Graviton的时候,应用迁移花了一个星期时间,将前端应用都导入到了Graviton实例。2020年,在向Graviton2迁移的时候,前后只用了一天时间。
微观层面,迁移是个技术问题,但从企业运营的层面,迁移是一个成本问题,需要评估迁移的成本和迁移后得到的收益。
涂鸦智能是一家全球化的AI+IoT企业,平台需要支撑亿级物联网设备的网关,在面对流量高峰时需要有较高的扩展性,为了承载如此规模的访问量,涂鸦智能的架构构建在了AWS之上。
涂鸦云端开发部首席架构师陈亚焱介绍说,在向Graviton迁移后,据测试数据显示,在负载一样的情况下,M5g实例的x86处理器的占用率为27%,而M6g的Graviton的CPU占用率已经降低到了12%以下。
同时,M6g的价格要比M5系列更便宜一些,如果算性价比的话,涂鸦智能的这次迁移后,计算部分整体的性价比提升了2.5倍。目前,涂鸦智能有40%的负载Graviton2实例上,下一阶段将会把更多负载迁移上来。
“你我当年”是大觥科技开发的一个AI图像处理APP,从大觥科技科技副总裁袁泉的介绍中了解到,该公司构建的架构也非常看重性价比,经比较发现,基于ARM的C6g比同等配置的C5实例性价比高30%,成本上总体可以节省38%。
至于应用负载的迁移方面,袁泉表示,“这个过程很简单,并没有什么困难”。谈到下一阶段的规划时,也是计划将更多负载迁移到Graviton2实例上。
针对场景“量体裁衣”,AWS居然构建了近400种实例
AWS大中华区云服务产品管理总经理顾凡用量体裁衣来形容为了满足各种需求,AWS推出的各种各样的服务。
在计算实例方面,AWS持续创新,持续针对各种场景推出各种实例,目前,AWS大约有400种实例,而且,每年推出的实例类型比一家专业服务器厂商还多。
在计算方面,AWS之所以能这么快推出这么多实例,很重要的一个原因就是有AWS Nitro。(相关阅读:AWS Nitro:云主机价格战终结者)
AWS Nitro承载了主机实例的存储和网络的功能,主板上主要承载CPU就可以了,有了AWS Nitro之后,升级换代的时候计算和存储以及网络都能独立升级,升级处理器可以提升性能,升级Nitro卡,则存储以及网络等能力就得到了提升。
AWS Nitro还承载了Hypervisior的负载,从而交付更全量的计算资源,虚拟机本身的性能更充足。另外,Nitro本身作为一个小型系统,它与许多硬件结合后,很快就能打造出新的实例,比如,前不久,AWS将Nitro与MacMini结合后,推出了全球第一个MacOS云实例。
由于有了Nitro的帮助,AWS能做出各种类型的实例,包括刚才提到的Graviton ARM实例,包括4GHz的实例,包括各种操作系统的实例,包括为存储、网络、计算、内存等各种场景优化的实例。
用顾凡的话来说:”近400种实例,每一个背后都有一个客户应用的场景。”