本文来自微信公众号“twt企业IT社区”,作者/一只红松鼠。
提到信创,大家第一反应就是自主可控。不过信创的定义却是“信息技术应用创新”,因为如果不能创新,不能为业务带来价值,自主可控是难以有持续的投入来维持的,自主可控本质是为了加速新生态的成熟速度,是为创新服务。因此要做好信创,需要从埋头于自主可控中抽出一部分精力,思考如何从信创中获取价值。
本文是对自己出于省钱、提升性能,支撑业务发展等目的的IT改造替换经验以及对产业界类似活动的观察分析,得出的信创如何为业务带来价值的思考,希望对朋友们的工作有所帮助。
为业务带来价值的标准
在开始分析前,先定义一下怎样才算为业务带来价值,这是我总结的两种情况:
在获得与原有方案架构相同能力的情况下,如相同的业务支撑能力(性能,可用性,安全性等),付出的硬件、软件改造和开发、运维和使用(如机房租赁,电费或云服务费)综合成本更低。
突破原有能力极限,能更好支撑业务,且投入产出比能支持业务运转。
按这个定义,虽然有些替代工作能成功支撑业务,比如数据库,由于需要大量的硬件来补齐性能和可靠性的差距,或者应用改造和运维的成本有比较大上升,暂时还不能算为业务带来价值。
接下来首先看看技术替代的成功案例,再分析一下技术替换在什么情况下能为业务带来价值,最后转回用户视角,分析一下如何做能够让信创更好地为业务服务。
国内外技术替代获得商业成功的案例
全闪存阵列的弯道超车
AFA(All-Flash Array)或SSA(Solid-state Arrays)曾经是Gartner关注的创新技术,AFA不仅是把存储介质换成SSD,而是根据SSD相对机械盘不需要机械寻道、擦写更快的特性,以新缓存配置与算法、控制器配置来充分发挥SSD介质性能,并通过SSD介质的特性优化快照原理、重删压缩能力,因此与为了一种新架构。现在全闪存阵列已经成为企业存储的主流并于2018年从Gartner技术成熟度曲线中“毕业”。
在这场技术迭代中,老牌存储厂商试图在原有机械盘阵列上不重构架构直接支持SSD盘,无法充分发挥SSD介质的优势,在创新上力不从心,最终只能靠收购维持江湖地位,而Pure Storage则靠AFA杀出重围,成功跻身存储领先厂商。有意思的是,AWS作为云厂商,也收购了全闪存厂商E8 Storage,之后推出的“首个云上SAN存储”IO2 Express颇有企业存储的味道。
AFA以技术创新重塑了产业,而它的成功说明客户认可了架构替代对业务的价值。
ARM从移动端到超算,到云再到桌面
20年初,我曾经写了国产化将带来创新的新机遇一文。到今天AWS基于ARM架构研发的CPU Graviton已历经三代,阿里也推出了自研的倚天CPU并大规模商用。苹果则将桌面系统转向自研的ARM CPU,而Windows开始向ARM发力则可能彻底改变个人PC X86的主流格局。
ARM的算力与X86架构相比并没有优势。但在单体应用的算力需求过剩的时代,ARM CPU可以满足大量应用的需求,同时众核(并发性能)、低功耗在很多场合还有优势。从超算到云再到桌面,ARM在与Intel的竞争中获得了市场认可,已经逐渐站稳脚跟。
应用层X86化和海外银行业大型机替换
看过厂商视角,再回到用户视角。2008年我在某运营商深度用X86刀片服务器替换Web业务使用的IBM小型机,结果超出预期。首先因为担心刀片机性能不行所以用了12片刀片替换了4个P595分区,但割接上线后CPU的负载只有20%,大大缓解了系统压力。而无论是采购成本,还是机房占地与耗电,刀片机都远低于小型机。至于代价几乎没有,因为应用不需要改造,只是改了改负载均衡的配置。自此之后,X86服务器替换小型机就成了自发而非任务性的工作,几年时间,除了中间件CICS没有X86版本外,全部前端业务和大量后端应用换成了X86服务器,不但领导高兴,运维也高兴,因为手头宽裕能买更多机器,支撑业务就更轻松些。
如今IBM的日子过得不好,并不是中国的原因,大型机替换在国外金融业这一IBM的粮仓也在进行,只不过速度相对中国慢些而已,这与替换的综合收益分不开。
轮子本是洋人造,拿来主义为我用
对比一下会发现,信创的根技术与国外的替代技术路径是一致的,比如算力方面的ARM和AMD64,存储方面的AFA和分布式存储,网络方面的ROCE,NvME Over ROCE/TCP。虽然遗憾我们还未实现根技术创新超越,但证明我们并没有因自主可控的压力闭门造车,这就为实现创造业务价值最关键的:实现同等能力替代创造了有利条件。
技术替换怎样才能带来价值
这些成功的“信创”有一些共同点,正是它们能为业务带来价值的原因:
主要能力差距不大,能部分/全部一对一替换
要做到为业务带来价值的第一条综合成本更底,需要信创产品的主要能力与被替代者比较接近,这样就不会为关键能力的补齐而耗费大量成本,同时新产品的成本优势能真正发挥。
2015年我负责运营商B域(主要负责计费和为受理客户业务)的IT规划和系统集成时,客户采购了一批华为的高端存储。因为这是华为存储在运营商核心业务的首次使用,谁都没有使用经验,不清楚在这么重要的系统中应该怎么配置存储。于是刚测试就发现性能有问题,后来发现是多路径配置问题,华为按之前的业务经验,没有为每条路径连接所有的控制器,后来又调整了LUN的条带配置,上线后性能和现网使用的EMC、HDS存储没什么差别。还有如发现华为的存储不支持命令行进行容灾和Clone操作,于是写了个脚本直接向控制器发指令凑合了。此外还发现一些功能看上去有,但用习惯了EMC等厂家的我们和华为对功能的理解和操作方法有很大的不一致,不过最终都找到了规避的方法。之后几年,可靠性没有出问题,也就是性能和长期稳定性过关,就不必为此付出太多成本,替换难度不大,成本则有明显的下降。
目前替换中最困难的数据库则相反。15年就已实现的国产存储去E,可以做到一对一替换性能可靠性不降,但到今天如果用分布式数据库做去IOE,硬件需求需要几倍甚至十几倍增长来弥补可靠性和性能的差距,应用改造和后期维护成本也高,代价巨大。
前文提到的用X86刀片服务器替换与也类似,在第一批替换时,还特意选择了电信系统使用的可靠性较高的服务器。虽然新采购的服务器可靠性有所下降,但通过负载均衡整体的可靠性仍能保证。而这两次替换还反映出成功替换中的另一个特点:
尽量减少应用改造
以AFA替换原有存储,不但不需要应用改造,反而可能因为性能的提升避免了原计划中的数据库拆分等应用改造,并使业务体验得到改善。在Web应用替换为86服务器时,虽然节点增加了,但由于应用接近无状态,可以很容易基于原有的负载均衡架构进行Scale Out扩展,因此也不需要应用改造。
类似的情况还有很多,比如用NAS替换服务器搭建的NFS,用SSD高性能NAS替换GPFS,都不涉及应用改造。由于很多替代是核心业务,光改造的风险就会使替换变得异常困难,而且真正有重构核心业务架构改造能力的并不多。
架构和工具弥补能力缺失
除了一对一能力足够强的替换外,像X86替换前端应用就利用了负载均衡来补齐可靠性和单机扩展性(小机分区可以加CPU/内存)的短板。成功的架构或工具的特点是,要么是把原来大/中/小型机中具备的能力补回来,要么是用在IOE架构中也能起到优化作用。
比如大/中/小型机中支持将一台物理设备分割成若干逻辑设备的能力,被虚拟化和容器补齐了。另一些技术则解决了替换后的能力短板:缓存技术弥补了数据库能力的不足,容器编排调度提高了应对业务压力的能力、加快了问题响应速度、简化了安装部署发布和运维操作,调用链技术提高了故障定位效率等。这些技术在单体产品能力较弱时,可以弥补短板,等单体产品能力提升上来,仍然可以用来增强系统的能力,甚至在信创前就有应用了。不过这类优化往往不能带来质变,比较典型的数据库,阿里去IOE,淘宝的数据库普遍替换为MySQL。但17年后,阿里研发了PolarDB数据库IOE从架构的层面又回来了,与分库分表结合成云原生数据库:
分库分表和云原生数据库的结合
不管是PolarDB,还是它的“老师”AWS Aurora都是希望“达到商业数据库的性能和可靠性,回到一对一替换的路子上去。
新架构颠覆旧格局
真正能形成质变的新架构比如大数据、AI。从架构上,它们更容易通过分布式架构来实现,从业务角度看,大量业务是新业务,替换难度小,就不展开讨论了。
中国制造打破垄断溢价
这段纯粹用来增加自豪感:-D
IOE贵,有合理的技术领先溢价,这部分换成任何厂商都少不了,因为技术溢价能换来支撑能力的提升和综合成本的下降,是合理的。但IOE的贵更多是垄断溢价,垄断越强溢价越高,最明显的是大型机,其次是数据库。其实海外高技术产品都存在类似的问题,曾经一台电信设备上的挡风板不过是一个铁片就要几万块。
但当中国产品达到能替换,尤其是一对一替换这些海外高科技产品时,挡风板就不要钱了,高铁跑遍中国,造船份额世界第一……用户获得的产品更好了,而成本却更低了,让高技术为更多人提供了服务。
回顾高铁、光伏的发展过程,信创更像一个大号的产业扶植政策,最终目的还是实现世界领先。
信创中用户可以如何做
如果是IT产品的用户,在信创中希望降低难度,或者也想参与其中贡献自己的智慧,我认为可以考虑以下几方面:
减少应用改造
除非你在一家伟大的企业,能投入巨量资源进行业务改造并且能持续,否则最好的策略就是不改造应用。不过不改造应用不等于不创新,更不是落后的表现,需要改变思路。
优先一对一替换
通常我们在做替换时,都会把能实现一对一替换作为首选方案。不过信创的特殊性可能使我们专注于架构路线之类的争议中而忽略了这一基本原则。一个数据库,一台存储,里面是什么架构并不是最重要的,最重要的是能跑得动业务。从去IOE到学IOE阿里是最务实的。看看最近公有云厂商的动向,已经有了走大型机路子的苗头。如果我们真从学IOE再到成为IOE,到哪天中国能造大型机了,为什么不用呢?
找到和验证能实现一对一替换的技术路线,是最实惠的创新。
在使用新架构时减少应用改造
有一个误区就是新架构要用”新技术“。比如云计算一定要用分布式架构,容器一定要用分布式存储……但实际上虚拟化,容器甚至分布式都是在小/大型机时代就出现的技术,甚至分布式、虚拟化也是大型机、高端磁盘阵列、Oracle RAC技术的“根”技术。公有云走大型机的老路也是创新。
如果跳出架构的束缚,很多问题就很好解决。比如小规模的虚拟化系统,使用磁盘阵列可能比分布式存储还便宜,易维护,可靠性高。再看看我印象最深的则是重载应用的容器化:
容器的编排调度能力可以很方便进行应用任务调度,因此对重载的批处理业务很有价值。然而像运营商的话单处理业务使用的是大量小文件共享文件系统,容器“原生”的共享文件存储比如Ceph、GlusterFS性能差得太远,可靠性也不尽人意。不过如果跳出架构优选的框框,把GPFS当成容器宿主机的本地目录,一样能实现话单处理的容器化。后来随着GPFS被国产闪存NAS(非分布式存储)替代,容器存储信创就完成了。如果跳过GPFS那一段,那么容器化改造的过程应用没有做什么改造。如果再调整一下存储接口,用CSI实现动态分配就又实现了新的创新。
当遇到新架构的问题时,不妨用“老产品”尝试解决,可能会收到意想不到的效果。
将经验赋能厂商,促进能力提升
回顾下15年做存储替换的例子,基本上所有的功能华为都有,因为EMC的功能都是公开的,相当于EMC告诉华为存储要做什么,但EMC并不会告诉华为为什么要做,做了干什么,自然华为就不一定知道怎样做用户才能用得更好,所以国产厂商的产品从可用到好用的过程中,吸收用户的意见和经验非常重要。
中国企业的研发主力在国内,交流更方便,同时一些领先厂商已经和行业客户建立了联合创新甚至是联合研发机制,一些开源社区和产业联盟也起到了传递用户经验和创意的作用。如果有这方面的条件,可以考虑通过上述渠道与厂商一起推进产品能力提升,自己则能更早受益。
重点关注可持续使用的架构和工具
2017年我们曾经想在核心业务中进行分库分表改造,不过打算使用Oracle数据库。这个在当时看来“不正确”的思路,今天却和AWS、阿里的云原生数据库思路很接近。对一些对业务有明确价值的架构改进,比如缓存、分库、容器化,可以在现有系统中就进行尝试,这样无论是对现有业务还是对未来的迁移都是有价值的。