迎接中国基础软件创新的春天

2022-04-16 16:46:05 浏览数 (1)

作者:叶正盛,玖章算术科技公司CEO。原阿里云资深技术与产品专家(花名:斗佛,来自斗战胜佛的含义),数据库产品管理与解决方案部负责人,技术架构组与产品决策委员会核心成员。帮助阿里云取得中国数据库市场份额第一,并成功进入Gartner DBMS魔力象限全球领导者位置,是中国基础软件的重大突破。

拍摄于硅谷计算机历史博物馆,背景是大名鼎鼎的IBM System/360大型机

被卡脖子的基础软件

谈到基础软件,主要是指管理计算机资源,面向软件开发者使用的软件。大家很快会联想到操作系统、数据库、编译器以及中间件等。现在主流操作系统有Unix、Linux、Windows、iOS、Android,数据库有Oracle、SQL Server、MySQL以及各种NoSQL和Hadoop/Spark代表的大数据产品。

可以看到,世界流行的基础软件几乎没有中国产品的身影。

中国在80年代就非常重视基础软件,也有很多国家级的项目工程支持,包括国产操作系统、数据库等等,但是比较遗憾,并没有成长出世界级的基础软件,甚至在中国都没有实现主流市场覆盖,中国现在大部分核心场景都还是在使用国外软件,有些还很难替换。很多人抱怨中国基础软件的落后,有说缺少国家支持,有说起步晚,有说大学教育落后,有说盗版导致,有说中国人浮躁,基础技术要长期积累。

看到这个局面比较伤感,基础软件真的很难吗?基础软件和应用软件有什么区别?我们会被卡脖子多久?我们到底是哪里出了问题?过去30年,我们在天时、地利、人和方面到底有什么变化?

基础软件很难吗?

首先,基础软件肯定没有造原子弹复杂,我们学过计算机的人大体都知道原理。今天我们不是做不出基础软件产品,我们其实有自己的CPU、操作系统、数据库的产品,本质还是我们研发的产品竞争力不足,市场不认可。

再谈谈基础软件研发与应用软件研发的区别,笔者在这两个领域都从事了十年,前十年从事工业监控系统、ERP、电力行业软件等行业软件研发,后十年主要是从事云数据库基础产品技术研发与管理。基础软件和应用软件的开发思维有不少的区别。

基础软件更注重如何高效地利用计算机硬件资源并面向开发者提供友好的接口。如何高效地利用计算机硬件资源,这要求基础软件开发者更懂计算机原理,从CPU、内存、硬盘、网络与协议、算法、安全、操作系统、数据库、编程语言等方面要融会贯通,要精细知道一行代码在计算机各个组件内是如何工作,否则很难做出有竞争力的产品。基础软件的用户主要是应用软件开发者,所以需要友好的开发者接口,这往往需要有更多的技术广度和产品经理视野。因为上层各种应用软件架构千差万别,从开发语言、开发框架、开发工具、协作平台、运维管理等等非常复杂,只有对应用软件领域有足够的经验才能深刻领悟开发者接口的精髓,一般的程序员很难胜任,做不好就是给产品挖坑。

应用软件大多都是在基础软件之上构建,更注重客户需求分析和如何高效研发与交付产品。要准确知道客户需求,需要有比较深刻的行业领域知识,把控软件已知需求和未知需求。已知需求大部分人都能快速掌握,而未知需求是最考验软件产品经理和架构师的综合能力,对未知需求的判断不足往往会带来软件的返工和客户满意度降低,比如系统容量不足,或者是系统功能过于定制化,可适应场景有限;而过度设计又容易导致软件复杂,比如有些很小的系统上来就是微服务和大数据架构,这会急剧增加系统复杂度并且研发维护成本过高。如何高效研发与交付产品更考验的是软件架构师与项目经理的综合能力,尤其是在大型软件项目中,研发人员多,能力参差不齐,并且涉及到跨部门和跨公司协作,如何设计软件架构,提升团队沟通协作效率是核心要素。

从整体而言,要做好基础软件和应用软件都不容易,应用软件除Office这类大型软件外,相对研发周期短,本土化需求更多,所以当前中国应用软件本土化的覆盖非常高。而基础软件研发周期长,有生态壁垒,市场主体已经被国际厂商占位,要构建有竞争力的产品并建设新的生态体系,难度更大。这个不仅是中国的问题,欧洲、日韩、印度也存在同样问题。

中国基础软件应用历程

早在80年代有863计划(国家高技术研究发展计划),有专项抓基础软件,从那时开始积累了一些技术与人才,但是底子弱,和国际差距太大,当时更多是引入和学习产品的阶段,或者是在外来产品上做一些本地化定制开发,并没有核心技术的突破。基础软件也更多是被Windows、Linux/Unix、Oracle、Websphere这些海外产品覆盖。这期间也有像达梦这样的企业坚持做基础软件研发,取得了可喜的成果。

2000年左右,中国网民快速增长,国家在3G/4G/5G网络建设以及政策支持,中国互联网蓬勃发展。互联网企业出于成本与扩展性考虑,开始使用了大量的开源技术,包括Linux操作系统、MySQL数据库、Tomcat应用服务器等等,可以说在技术使用层面基本做到了自主可控,但是并没有实力去研发这些基础软件。互联网产品能力上不亚于欧美,加上本土化的优势,因此在中国也取得绝对的市场地位。随之也积累了数百万IT人才,加上很多高并发的场景需求,互联网企业在技术积累上开始从上层应用拓展到底层的基础技术,有实力的互联网企业开始在开源软件基础上深挖底层技术原理,这也让更多的程序员有机会去探索基础技术。因此互联网高速发展也为基础技术人才积累打下了良好的基础。

中国软件另外一个重要事情,2010年左右,阿里巴巴提出了全面去IOE的目标,要把IBM小型机 Oracle数据库 EMC存储这套成熟的集中式体系架构替换为新一代自主可控的分布式技术架构。非常佩服首席架构师王坚博士的战略格局,当时自己也是局中人,其实不太能理解,为什么要把相对成熟的技术架构替换为一个未知的方案,很多同事因为不能理解都离开了。往回看,如果没有去IOE的浪潮,今天阿里云也不可能发展起来,阿里在去IOE过程中积累了大量的核心人才和技术产品,最后都赋能到云计算领域,这也是阿里云能走出来的核心因素之一。今天在国内,市场几乎都会选择中国的云计算平台,包括阿里云、腾讯云、华为云等等,甚至很多海外跨国企业来中国也选择了本土的云。云计算平台是培育基础软件发展的优质土壤,我们可以非常自信的说中国有了自己核心技术的云计算平台,否则不知道我们在基础软件领域还要徘徊多久。

大量核心人才的积累是基础软件发展的重要基础,但是如何把产品快速推向市场,并且与国际产品竞争能占优,这个其实是更复杂的事情。早些年,中国也有很多基础软件走向市场,但是很快就被打趴下。虽然有很多政策支持,但是在产品竞争力不够,并且国际产品取得先发优势的情况下,市场拓展举步维艰,只能在一些特殊行业领域发展。

中国数据库基础软件正在崛起

数据库是基础软件的典型代表,是软件系统里的核心组件之一。今天我们每个人的银行余额、社保、医疗数据都是放在数据库里的,要替换数据库是非常难的事情,搞不好是饭碗就没了,所以很多企业在做数据库选型时都非常慎重。笔者在这个领域探索了多年,深知这里的水有多深。

好在经过近10年国产数据库的不懈努力,从IDC报告统计,2020年,在中国数据库市场,国产数据库整体市场份额已经超过50%,阿里云已经超越了Oracle,成为市场No.1。不过在很多核心场景上还是国外Oracle、DB2等产品,替换需要时间,但我们已经看到了数据库自主可控的曙光。

我们来看看中国数据库软件领域有影响力的几个代表:

  • 达梦,从90年代开始做自研数据库,是国产数据库的重要代表,自己掌握核心技术,笔者非常佩服,他们在政府、能源、军工等领域已经有了不错的市场份额,老牌国产数据库No.1。
  • OceanBase,蚂蚁/阿里巴巴2010年开始研发,阳振坤老师带领的国产数据库,是全自研分布式数据库的代表,持续在这个领域攻坚,在分布式技术上积累了很多核心竞争力,是支撑支付宝发展的核心技术,并且在金融等领域开始被认可。另外,2021年,OceanBase也对外开源。
  • TiDB,诞生于2015年,来自中国创业公司PingCAP,几个创始人最早从Google的Spanner论文找到灵感,要做分布式数据库TiDB。他们通过开源的模式逐渐成为了市场有影响力的产品,并且在分布式数据库的产品和技术体系上达到国际领先水平,这非常难得。TiDB今天也开始探索通过云平台拓展全球市场。
  • PolarDB,来自阿里云研发的云原生关系型数据库,2017年对外发布,参考了AWS的Aurora,通过存储计算分离的云原生架构,在弹性扩展方面非常出色,有些地方已经青出于蓝而胜于蓝,技术的创新得到了Gartner全球分析师的一致认可。PolarDB通过云平台取得了商业上的成功,从内部了解,目前应该是营收第一的国产数据库。

我们看到,这几个典型数据库代表,他们通过了不同的方式被市场认可:

  • 达梦和OceanBase是相对比较标准化的软件商业模式,持续技术沉淀获得认可;
  • TiDB 在Day1就是开源,通过产品竞争力 开源构建开发者生态来拓展市场;
  • PolarDB是云原生数据库的代表,通过云计算平台获得了市场的认可。

中国数据库市场现在是百花齐放,包括GaussDB、SequoiaDB、Nebula、MaxCompute、TDengine、AnalyticDB、TDSQL等等,这里没办法全部列举。

虽然我们已经有很多产品,但是离Oracle、SQL Server这些顶级软件的技术差距依然巨大,比如在优化器、缓存管理等核心技术传统数据库已经非常精细,我们还处于基础学习阶段,在生态体系建设方面我们才起步,整体依然任重道远。

超车姿势大全

要超越一个竞争对手,有多种途径,包括硬实力超越、弯道超车、换道超车,修改比赛规则。

  • 硬实力超越更多是大厂商对小厂商的竞争,通过资金、人才、技术、市场的综合能力碾压对手,这条路对于中国基础软件基本行不通,因为国际基础软件巨头本身就是实力雄厚的企业。
  • 弯道超车是很多人的梦想,在体育比赛中经常能看到,让人非常兴奋。要实现弯道超车往往是两个竞争对手实力相当,在特殊的位置抓住对手的失误,实现超越。如果两个对手实力悬殊,谈不上弯道超车,更多只是YY。中国基础软件和国际厂商的实力相差较大,这条路也很难行得通。
  • 修改比赛规则,这个往往是在特殊的场景使用,比如在1998年,IE浏览器通过Windows捆绑并且不能卸载,超越了主流的Netscape。老的国产数据库在信创市场上取得成功,这个可以理解为修改了比赛规则,实现突破,如果在公平的赛道上,我们还是要看到差距。试想,如果我们的产品到海外去,还能与Oracle、Microsoft、AWS竞争吗?
  • 开源和免费其实也是一种特殊的修改比赛规则做法,只不过这种修改规则是不依赖外部力量完成,Linux、MySQL等都是通过开源发展起来,曾经360免费的杀毒软件也是如此。开源不是一种商业模式,更多是培育市场和构建生态的方法,最终开源还是要有商业转化路径。
  • 换道超车,这个策略其实是和竞争对手在不同的赛道竞争,虽然是公平的,但是竞争规则发生了根本性的变化,往往在底层形态发生了根本性的变化时有可能完成,比如现在新能源汽车对燃油车就属于一种换道超车策略。云数据库能与统治了30年的传统数据库厂商竞争,其实也是一种换道超车策略,今天云厂商AWS、阿里云的数据库技术能力离Oracle这些产品还是有非常大的差距,但是在新的赛道上处于有利的位置,Oracle要来竞争已经非常难了。

千载难逢的云计算时代 云计算几乎融合了计算机所有的技术,它既是一个非常重要的基础设施,又提供了更领先的软件市场推广方式。

云计算平台帮助基础软件屏蔽了底层硬件管理,包括IDC、服务器、网络等等,大的云计算平台基本都是在全球提供服务,因此这也让上层软件可以更敏捷的支持全球客户。

今天很多科技创新公司都开始使用云原生的模式来构建产品架构和商业模式,包括Snowflake、MongoDB、ServiceNow、Atlassian、Salesforce等等,他们取得非常好的市场认可,市值都是几百亿美金到上千亿美金,并且动摇了传统巨头的位置,云已经成为了软件产品走向市场的共识。

软件卖license是非常容易理解的商业模式,但这个模式今天已经变得非常低效。曾经全球软件老大(微软)和老二(Oracle)都大力转型到云计算的商业模式。微软转型非常成功,今天依然在引领科技的浪潮,而Oracle的转型并不是那么顺利,因此也是四面楚歌,在数据库和企业级软件市场都面临着新时代的竞争对手。

云计算最基础的理念是开箱即用,按需付费,这是对传统软件销售与交付模式的颠覆。目前市场上是SLG(销售驱动业务发展)的思想居多,但是随着互联网和云计算的发展,PLG(产品驱动业务发展)将会是更有生命力的业务模式,这也是投资市场开始流行的话题,不过当下很多人问的问题还停留在SLG的思路。

天时、地利、人和 从早期学习使用国际产品并构建应用软件,经过互联网的蓬勃发展,到今天开源/云计算的新模式,我们再来看看今天基础软件发展的天时、地利、人和:

天时:就是市场需求与政策支持。今天国际政治关系非常复杂,国家需要有自主可控的本土基础软件,并且国产化的市场巨大,各种政策支持,这是大家的【天时】。

地利:就是如何能更快拓展客户,传统销售体系非常考验的是客户关系与生态渠道,这些方向老牌企业更有优势。今天开源和多云部署都是更好的市场拓展方式,尤其是云计算平台,中国完全自主可控,加上本土优势,【地利】方面我们已经占优。

人和:这个是我们最大的障碍。我们基础技术人才还比不上欧美,但是经过20年的企业级软件、互联网和云计算的发展,中国的软件技术人才基数庞大,并且不少专家在底层技术上有深厚积累,尤其是云计算厂商的人才积累厚度,只要不那么浮躁,很多人必将成为中坚力量。

另外,我们也看到资本市场开始更加关注与支持基础技术领域,他们也看得更加长远,这是加速技术创新的必备力量。

我相信,中国基础软件的春天来了!我们需要的是更多技术人才能投身的这个领域,静下心来沉淀技术,而不是在一些不创造社会价值的应用软件上乱卷。我也更期待更多基础技术人才能形成合力,一起创造出世界级的产品,引领新科技浪潮。

警示

  1. 可以在开源软件基础上发展基础软件,但要遵守开源规范,真正掌握核心技术。不要在开源产品上套个壳,加了几个小功能,就号称全自研软件,骗吃骗喝,迟早是要露馅的,目前市场还是有很多这样的挂羊头卖狗肉的产品。
  2. 大力发展私有云是危险的,搞不好要埋下巨坑。私有云和传统虚拟化IT架构没有太本质的区别,上了后还不一定好替换,并不具备弹性扩展、按需付费的云计算本质。公有云才是未来,私有云能弹性扩展到公有云也是不错的架构。虽然很多客户有私有化部署的需求,但是作为云厂商要有更长远的格局,这方面AWS做得更好。公有云厂商要在产品竞争力上下功夫,真正在性价比上超越私有化部署,尤其是面对大型客户。
  3. 云计算一定是未来,但是成为公共的基础设施还任重道远。电网和互联网已经是公共的基础设施,电力发展出了索尼、海尔、格力等各种企业,互联网上长出了Google、淘宝、微信等等。云计算要成为基础设施,定要能在云上长出比腾讯、阿里巴巴更大的企业才能算成功。开放的云计算更有必要,多云是必然趋势,不要总想通过规则把企业绑定在一家云里面。
  4. 做基础软件要耐得住寂寞,十年打底,因此对进入这个领域的人要做好长期奋战的准备。Android创立于2003年,2007推出第一个公测版本,2011年开始占据市场;MongoDB从2007年开始研发,2017年上市;Spark诞生于2009年,2014年才得到认可,还在为上市准备;PingCAP于2015年成立到现在才渐为人知,正继续探索商业之路。

笔者小注

笔者在IT领域工作了20年,前10年基本都是在研发各种应用软件,应用过大量的基础软件,包括操作系统、数据库,也做过一些中间件的研发。后10年在阿里云从事数据库产品技术研发与管理工作:

  • 见证与实践了阿里巴巴去IOE、异地多活、云计算多次技术变革;
  • 带领团队构建阿里巴巴&蚂蚁集团数据库业务研发支撑体系;
  • 创立了全球领先的云计算数据传输、数据管理、数据库备份、数据库自动驾驶服务等多款云计算数据库产品;
  • 负责阿里云数据库事业部整体产品规划工作,包括云原生数据库PolarDB、云原生数据仓库AnalyticDB、数据传输DTS、数据管理DMS、RDS、NoSQL等核心技术产品。

目前正在从事基础技术创业,处于早期产品探索中,公司名字叫玖章算术。

【玖章算术】名字灵感来自中国古代著名科学著作《九章算术》,它汇集了战国、秦汉时期数学成就,在两千年前就总结了分数、开方、勾股定理、解方程、几何体积等计算方法,并经过张苍、刘徽、李淳风等历代大师汇集修订而成。里面很多知识都是中国原创领先的成果,对科技领域带来了深远的影响。这是一个科技日新月异的时代,我们希望能构建自己的核心技术,并持续积累突破,打造出世界影响力的技术产品,引领浪潮。

0 人点赞