CrazyAirhead

疯狂的傻瓜,傻瓜也疯狂——傻方能执著,疯狂才专注!

0%

SAP的HANA战略——成功的忽悠加成功的执行等于成功的产品——教科书级经典案例

以下内容是极客时间《技术与商业案例解读》专栏的摘录,本专栏由徐飞博士撰写。可以订购该专栏阅读更多精彩解读,开拓眼界,了解互联网发展历史和创业经验。

SAP 是总部位于德国的全球最大的 ERP 公司。作为一家重量级的企业应用软件公司,SAP 曾经有过一段风光的日子。

但是而后的日子也开始不好过起来。

日子不好过的主要原因是 SAP 的软件需要跑在数据库上,而备选的数据库一般来说不是 IBM 的 DB2,就是 Oracle。本来两者和 SAP 的软件配合,相得益彰,曾经一度合作得很愉快。但随着 Oracle 开始进军企业级软件市场,把手伸到 SAP 的地盘来,SAP 的日子就开始不好过起来。

Oracle 在 21 世纪初进行了一系列的并购,包括收购了 Siebel 和仁科等重要的企业级软件企业,把自己从底层数据库到企业级软件的体系补全了。这样一来,SAP 就麻烦了,因为自己的软件依赖于对方的数据库,而对方却还能够提供类似的企业级软件。

好在还有一个 IBM 的 DB2 可以用。SAP 一度和 IBM 合作,希望两者的结合可以给自己带来所谓的强强联合。但是 IBM 的 DB2 却一直面临着诸多问题,比如本身就不是市场上最好的数据库,人才流失又很严重。所谓的合作开展起来,效果却非常有限。

在这个背景下,SAP 开展了一场技术与忽悠并存的战略大跃进,也就是 SAP 著名的 HANA 战略。HANA 的出现对 SAP 和业界都产生了巨大的影响。其实施的过程可谓精彩绝伦,堪称一部大制作的“影片”。

今天我就来讲一讲这个 SAP 的 HANA 战略。

让我们先把时间倒回到 2009 年。这一年,数据库的两大顶级会议之一的 SIGMOD 在罗德岛召开。我最后一次以 PhD 的身份参加 SIGMOD,所以对这个会议印象深刻。这种会议一般都会有赞助商。出钱多的金主很多时候会给一个 Keynote 的讲座。

2009 年的金主是 SAP。这多少有点让人大跌眼镜。一个做企业级软件的公司,来一个数据库顶级会议上大把撒钱,怎么看怎么怪。

在这次大会上,SAP 董事会主席兼创始人之一的哈索·普拉特纳(Hasso Plattner)给了这样一个 Keynote:A Common Database Approach for OLTP and OLAP Using an In-memory Column Database。这个 Keynote 宣告了 SAP 要搞一个内存数据库,它的名字叫 HANA。

SAP 要搞数据库,这可是一件大事情。一个做应用软件的要进军数据库市场,说明“兔子急了要咬人”了。但是企业级软件毕竟是应用软件,而数据库是基础架构软件。就像一个“做菜高手”突然说要开始“杀鸡”,先不说对方哪里来的底气,最起码外界对这个“做菜高手”的看法,肯定是见仁见智的。

HANA 是 High-Performance Analytic Appliance 的简称。SAP 要做的这个数据库,作为一个“做菜高手”进军“杀鸡市场”的第一炮,打得很响亮。按照 SAP 的宣传,它有着市面上传统的数据库很多不具备的特性。

下面我们可以一起了解一下这些特性,这很有必要。
第一,HANA 选择了按列存储的同时支持事务处理。传统数据库是按行存储的,数据仓库近些年来才开始按照列式存储。按行存储对事务处理方便,但是不利于分析处理;按列存储则相反。但是这两者的不利于程度是有所不同的。

通常来说,一个数据库如果同时支持事务处理和分析处理,那么数据库厂商会选择按行存储,因为按列存储的同时支持高效率的事务处理是非常难的。但是 HANA 却选择了按列存储的同时还支持事务处理,这个用数据库界“老司机”的话来说就是,要么是艺高人胆大,要么是无知者无畏。

第二,做出把所有的数据都放在内存里这个假设。今天来看,内存不是很贵了,但是在 2009 年敢做出那样的假设胆子就不是一般的大了。一个数据库一旦数据都在内存里,很多传统数据库的基本假设就都不一样了,做法当然也就很不一样。

所以 HANA 在很多演示的时候,查询极快。一个在 Oracle 或者 DB2 上需要跑一天才能做出来的报表查询,在 HANA 那儿 3 秒钟搞定。对,就是这么快。当然,其实查询是精心挑选的,能够存储这么多数据的机器的配置是非常高的。

第三,因为 HANA 选择了在一个系统同时支持事务处理和分析查询,这就让 HANA 的数据不需要额外 ETL,企业也不需要为分析查询专门配备另外一份列存的数据。某种程度上,HANA 宣称自己节省了企业的消耗,也是对的。而且因为两者共享数据,分析查询的时候能够查询的数据就非常新了。这对企业来说也是非常有必要的。

第四,HANA 几乎完整地整合了 R 的功能,并且把 SAP 业务相关的很多功能直接在 HANA 内部实现了。这有点反计算机软件构架里面的封装。然而在内存数据库的环境下让数据离业务相关计算更近,无疑是一种效率上极其有效的策略。

第五,HANA 采用了现代数据库里常用的 Shared-nothing 的体系架构。这种体系架构数据被纵向按照某个主键切分,每台机器只需要负责自己的部分。这让 HANA 具备了非常灵活的资源配置,而且加了机器查询也就会变得更快,立竿见影。简而言之,HANA 的体系架构很新。

综上所述,HANA 在技术上是很有创新的,而且单纯从 SAP 公布出来的这些技术细节来看,HANA 的确是具备了在很多方面对传统数据库发起挑战的能力。所以,一个“做菜”的,看起来“杀鸡”也杀得很漂亮。很多人不得不为 SAP 精彩的 HANA 数据库疯狂打 Call 了。

由于 SAP 的这个举措,首先受到伤害的是和 SAP 合作的 IBM 的 DB2 组了。毕竟,本来是难兄难弟抱团取暖,现在变成了一个人冲锋陷阵,抛弃了老伙伴。

其次受到威胁的当然是那个坐在数据库领域第一把交椅上的 Oracle。试想一下,原来用 SAP 的必须上 Oracle,而用 Oracle 的还可以搭自己家里的企业级软件。这让 Oracle 处于多有利的地位呀!但突然之间局势就变了,SAP 有自己的数据库了,而且还很快、很厉害、很先进。接下来 Oracle 的这个生意就不好做了。

但是对 2009 年的 SAP 来说,HANA 这个吸引眼球的宣传,一下子让原本已经成为或者即将成为二流公司的 SAP 回到了聚光灯前,不管产品有没有做出来,最起码先把风头抢占了。SAP 公司 HANA 战略的实施,当得上商业教科书的经典案例。对于一个 2009 年就吹起来的、但是却没有实际产品的 HANA 数据库,SAP 的开发和商业化道路概括来说就是四个字:心黑胆肥。

2010 年开始,SAP 在大力宣传 HANA 的时候,并没有大规模地卖 HANA,而是非常有重点地挑了几个人傻钱多的企业开始做内测。这些企业不但钱多,而且还愿意当小白鼠。2011 年以后,HANA 面向的对象稍微多了一点,但主要还是非常有钱的大型企业,比如德国电信、中石油、中石化这种。可以说一般没钱的企业是享受不到充当 HANA 小白鼠资格的。

HANA 需要内存 64 GB 以上的机器,但是一般来说 64 GB 跑起来大数据还是不够快。所以通常需要更多的钱买非常贵的硬件。而 HANA 的软件的最低配置是 30 万美元起。所以软硬件一起更是耗资巨大。从 2011 年到 2014 年,SAP 一直对 HANA 相关的产品定以非常高的价格。基本上这个产品给人的感觉就是:只有有钱的公司才能用得起,没钱的就算了。

所以市面上对 HANA 的各种抱怨,主要都集中在了 HANA 高昂的价格上了。然而这其实也是 SAP 想要的。
• 一方面,SAP 的高价让大家把对 HANA 的关注都集中到了价格上;
• 另外一方面,SAP 通过高价获得了不少优质客户和源源不断的金钱,更是从这个高价的过程里获得了对产品来说非常重要的形象问题:HANA 就是“高大上”的代表。

另外,因为价格高,所以实际上真正使用 HANA 的用户并不多,而且这些用户的硬件多半都是高配版。这样,HANA 即使有这样或那样的问题,暴露在大众面前的机会也不多。所以在收获金钱的同时,SAP 也给 HANA 的逐步完善赢得了很多的时间。

SAP 宣传的大胆还体现在对 HANA 的宣传上。SAP 宣传 HANA 的时候,把 HANA 和 Oracle 的产品做对比。SAP 表示,HANA 是基于最新硬件和研究的新一代数据库,代表着数据库的未来;而 Oracle 则是一个已经存在了很多年的老朽的东西,不代表未来。

这个宣传,我们先不管是不是言过其实,但它的实际效果的确是非常好。那些不差钱的企业,比如中国石油,要的就是最新、最贵的东西。于是世界各地大量有钱的企业排队从 Oracle 转到 HANA 上。这些企业有中国的,有日本的,还有欧洲、美洲的。很多企业都是被 HANA 这种舍我其谁的势态给吸引过来的。

说起来真的是一物降一物。这么多年来,HANA 的出现,第一次对 Oracle 的基本盘产生了动摇。在这之前不管是 DB2 还是 SQL Server,Oracle 都不屑一顾。在 Oracle 看来,那些无非是跟在后面吃点“残羹冷炙”,算不得威胁。而 HANA 不断抢占 Oracle 的用户,让 Oracle 也开始着急起来。Oracle 在商业上显得非常被动。

并且后续 Oracle 一系列的发布:从 Timesten、Exalytics、Exadata 到 Oracle 12c In-Memory Option,简直是用实践再次证明了自己就是 HANA 的一个追随者,而 SAP 才是内存数据库的开拓者。所以很多人更懒得去理会那个亦步亦趋的 Oracle 了。Oracle 慌了,可能 Oracle 也没有想到,自己当初抢占 SAP 领地,SAP 这次也同样还回来了。

SAP 宣传 HANA 的另外一个十分胆大的地方就是敢吹,什么都敢吹。每次都是新功能、新特性先做一个半成品,就发布出去给客户用。不但发布出去,还在客户文档里面大肆吹多牛多牛。而实际上呢?这些半成品的 Bug 一堆又一堆。举个例子,HANA 在 2011 年的时候连 High availability 都还不具备,居然就开吹 HANA 不需要 High availability。然后用户们竟然还真的信了。

当然仅仅靠吹,牛皮总会有吹破的时候。所以 SAP 对 HANA 的商业实施的另外一举措就是疯狂地开发和发布新版本。在 SAP 把 HANA 推出市场以后,基本上开发团队做到了半个月到一个月一个新版本。每次新版本都会增加很多半成品的新功能,与此同时,也把前面几个版本里大的 Bug 都修复好。

这个做法的好处是:一方面,用户当了小白鼠测试了新功能,减少了自己投入在测试上面的成本;另外一方面,修复得如此及时,用户体验非常好。客观一点说,4 年发布了 80 个新版本,而且每两个版本之间的差异还是很大的,也就是说半年后和半年前的 HANA,简直就不是同一个软件。这是非常不容易且难得的高效率开发。

不仅如此,SAP 还在公司内部把 HANA 作为公司战略高度的产品来推广。具体来说,销售部门卖产品的业绩要重点看 HANA 卖了多少。开发团队各个产品组的新功能必须先支持 HANA 才可以去开发。至于没有 HANA 能不能跑起来,就不是必要条件了。总之,从宣传到销售到市场到研发一切以支持 HANA 为最高优先级。SAP 在那几年里,一直处于这样一种全力以赴的状态。

当然 SAP 清楚地知道自己很“跛脚”:传统数据库相关的技术积累太过薄弱,所以 SAP 在大张旗鼓开发 HANA 的同时,做的另外一件偷偷摸摸的事情是收购一个数据库厂商。SAP 买下了日子不好过的老牌数据库公司 Sybase。Sybase 虽然这些年产品卖得不好,但是在数据库领域还是有数十年积累的。这些传统数据库的技术,对 SAP 就非常地重要。

获得了 Sybase 的技术支持以后,SAP HANA 的体系立刻变得完整起来。举个例子,以前是所有数据全部在内存里才能用,但是总有人不是土豪,没那么有钱,买不起太高端大内存的机器,怎么办?HANA 后期的完整解决方案里面就有 cold data 存磁盘的办法,当然用的是 Sybase 那儿买的技术。

另外一个特别重要的是实时备份技术,这在任何商用数据库里都很成熟,但是 HANA 一直是“裸奔”的。买了 Sybase 后,就迅速地集成了 Sybase Replication Server。

SAP 偷偷地收购 Sybase,绝对是 SAP 下的一盘大棋里关键而又冒险的一步。成功了,一下子就获得了 Sybase 的技术,从而弥补了 SAP 的先天不足;失败了,HANA 的各种缺陷迟早会暴露出来的。那时 SAP 就会比较难往前走了。

Sybase 到手,关键技术整合起来后,2015 年的 HANA 已经是一个各方面都非常领先的内存数据库,即便是 Oracle 这样的“大佬”也无法有任何的实力可以撼动了。这样一来 SAP 的战略转型就顺理成章了。

对 SAP 来说,有和没有 HANA 是生死攸关的。HANA 战略的成功,无疑是技术和商业上的同时成功。这样的成功称得上是商业教科书的经典案例。

SAP HANA 的故事精彩到可以拍成电影。SAP 的 HANA 战略很成功,徐飞老师说成功的忽悠和成功的执行,就是一个成功的产品,想知道老师是如何总结的,扫码订购该专栏。

欢迎关注我的其它发布渠道