《中智观察》第1581篇推送
作者:赵满满
编辑:小瑞瑞
头图来源:摄图网
Heroic labs是一家为游戏等用户提供分布式服务器架构的企业,满足游戏公司全球上百万用户24小时实时多人对抗游戏服务的需求。其中一项业务就是为客户从本地开发到投入生产提供相同的环境,而传统的数据库因为需要分区而难以在本地测试。
俗称蟑螂数据库的CockroachDB成为了Heroic labs的一个最终选择;
另一家提供博彩类游戏的公司kindred,主要是为全球用户提供高可用、低延时、强一致性的游戏数据如用户信息,以及超过200项业务的金融事务。
因此kindred需要高并发读写,支持多点写入,多副本数据强一致。传统的关系型数据库的分布式和强一致性表现差强人意。同样,kindred也选择了开源的分布式数据库CockroachDB。
2021年,大量投资投向基础软件——数据库领域。对于事务处理数据库的融资排行榜来说, CockroachDB 遥遥领先:年初就筹到1.6亿美元,后在12月又筹到2.78亿美元。
这个让友商恶心的“蟑螂数据库”,究竟是何方神圣?
‖融资创新高,CockroachDB估值会过百亿?
对于交易数据库来说,融资排行榜上号称蟑螂数据库的CockroachDB 遥遥领先。
2021年1月,CockroachDB背后的开源软件公司Cockroach Labs获得了1.6 亿美元的融资,估值达到20亿美元。
在2021年底,Cockroach Labs再获2.73亿美元的融资,现估值达到50亿美元。
这轮融资使Cockroach Labs迄今为止的总融资额达到6.281亿美元。
频频获得巨额融资的CockroachDB,未来即将跨入市值超百亿美元的开源软件公司。
云原生成为CockroachDB的重要旗帜。
数据库是业务逻辑和基础设施之间的分界线,在分布式系统中处于非常重要的位置。在当前云原生大趋势下,企业需要考虑用云原生数据库重建遗留系统。
凭借Comcast、eBay和Nubank等大型客户,Cockroach Labs在过去一年里收入增加了一倍以上。随着数据库即服务(Database-as-a-service)使用者增多,Cockroach Labs上2021年第三季度的云收入增长了500%。
数据表明,该公司有一半客户使用了云托管服务。基于数据库的云版本,用户可以按小时定价模式在亚马逊云科技、Google Cloud等云服务上使用。
因为当前的云原生热潮,2020 年“云原生”数仓企业Snowflake市值在一年内从120亿美元飙升至1200亿美元。而在2018年初,Snowflake的估值也只有15亿美元。
2015年,Cockroach Labs开始使用云原生开源环境重写数据库,帮助公司创建可以随需求变化而扩展的软件。该公司的管理系统已帮助企业在新冠疫情期间更快地将其功能转移到云上。
CockroachDB是公司专有的云原生数据库,旨在帮助Cockroach Labs在与由Microsoft Azure,AWS、甲骨文等主导的云世界中竞争。同时也与大量的其他数据库初创公司竞争。
CockroachDB另一个看家本领是数据隔离和高可用性特性。
CockroachDB是一个分布式的SQL数据库。首要设计目标就是可扩展性、强一致性、可存活性,与它的蟑螂名字一样。
CockroachDB的目标是在无人工干预的情况下,以极小的中断时间容忍磁盘、主机、机架甚至数据中心灾难。CockroachDB 的节点是对等的,部署去中心化的。
2021年11 月,Cockroach Labs发布了 CockroachDB 21.2 版本。CockroachDB云原生SQL数据库与Kubernetes兼容,该公司宣称即使在重大技术故障(如数据中心内的整个服务器机架都脱机)的情况下,CockroachDB仍可保持企业信息的可访问性。
‖带有谷歌“血统”的创新团队
谷歌素来以工程师文化闻名于世,为业界贡献了大量成功的开源软件。
近十年来,Google为业界贡献了大量影响深远的论文,也催生了许多优秀的开源产品,如MapReuce、Google File System、Bigtable、Percolator、Pregel、Dremel、Spanner,其中Hadoop、HBase成为大数据处理、储存的通用平台,Spanner更是成为分布式数据库的“祖师爷”。
CockroachDB也带有谷歌的血统。2015年谷歌工程师Spencer Kimball、Peter Mattis和Benjamin Darnell创立Cockroach Labs,团队成员有Big Table、GFS、Colossus、Gmail等项目背景。
Cockroach Labs联合创始人、CEO Spencer Kimball
以蟑螂为项目命名,旨在建立Spanner的精简开源版本——CockroachDB,一个分布式的NewSQL交易型数据库。
CockroachDB实现了NewSQL。
对于MySQL、Oracle、PostgreSQL这样的单机数据库,随着数据量的增长,在计算容量和存储容量上都会出现问题。
2010年,Google发起了NoSQL的运动。为了简单,NoSQL牺牲了传统关系型数据库的一些性能,允许商品化硬件透明地扩展。自此分布式数据库开发可以像使用单个数据库一样,同时这个数据库背后的数据库集群所能支持的数据量也达到闻所未闻的程度。
但是NoSQL最终成为了开发人员的致命弱点,不得不使用越来越复杂的应用程序逻辑来处理NoSQL所缺失的一些功能,比如事务处理。NoSQL面临的这些问题需要下一代的数据库系统设计来解决一致性和事务性问题。
2011年分析师Matthew Aslett首次提出NewSQL概念,期望将NoSQL和传统的数据库的优势融合,将现有数据库存在的缺陷在下一代中解决掉。而Google首先将这一概念工程化,提出Spanner。
Spanner允许Google将数据分布到全球上百个数据中心的上百万台服务器。系统的开发大约会耗时5年,离普通用户实际应用很遥远。
而CockroachDB 则致力于实现Spanner系统,并让NewSQL在用户的应用场景中落地。
正像CockroachDB所言,蟑螂实验室(Cockroach Labs)的目标是建立一款优秀的分布式数据库产品,让数据变得简单(Make Data Easy)。
CockroachDB的几大优势。
数据库是世界上每个企业的心脏,支撑着小至几个简单的表格,大到成千上万台服务器。
并且他们进化的速度非常快。
大型企业随着业务的发展,事务型工作负载开始出现跨地理位置的趋势,同时也出现了对数据放置位置的细粒度控制以及高性能。
其需求概括为三点:一是遵循所在地区的数据本地化合规要求,同时尽量保证数据就近访问以提供高性能;为用户提供高可用的服务,容忍哪怕是region级的失效;简化上层应用的开发,提供SQL的操作接口和可串行化的事务语义。
CockroachDB就是一款面向具有全球级用户的企业或组织,基于云平台提供扩展性、高可用性、强一致性和高性能的OLTP事务型数据库。如其蟑螂名字,具有很强的容灾和自动恢复能力。
为此,CockroachDB通过多副本提供容错能力,通过自动化的快速恢复实现高可用能力;通过share-nothing架构,可以自动实现水平扩展,它内部基于一些启发式规则来决定数据的放置方式,用户也可以为数据设置分区方案,并从分区粒度上控制数据的放置位置;事务协议非常严格且对性能做了大量优化,支持跨分区事务和可串行化的隔离级别并且不依赖任何特殊的硬件,只需要常规服务器和基于软件的时钟同步协议,因此可以做到跨云部署。
Cockroach Labs推出无服务器版本的SQL数据库
在无服务器技术兴起的时候,CockroachDB也于2021年10月推出了其无服务器版本SQL数据库的公开测试版,为开发者提供了一种更容易和低成本的方式来访问数据库资源。这些资源可以向上和向下扩展,而不需要明确定义。
CockroachDB联合创始人兼首席执行官Spencer Kimball说,无服务器版本的目标是为开发者降低复杂性,同时提供按细化的使用量计费,用户只需为所使用的确切内容付费。
最关键的是,采用无服务器的数据库方法,可以为开发人员消除所有的容量规划和与之相关的一切问题。这意味着他们不再需要预测运行应用程序所需的节点或机器类型,而是简单地指向Cockroach无服务器数据库,它将提供运行工作负载所需的确切资源数量。
‖开源数据库正成主流,但商业化面临挑战
开源数据库在数据库市场占据半壁江山。
放眼世界,许多开源软件项目为全球主要行业带来了转型创新,例如,在数据处理和存储领域出现Spark、Ceph、Hadoop、Kafka,在数据库领域出现MongoDB、CockroachDB、Neo4j、Cassandra等。
而在操作系统领域,Linux和FreeRTOS独领风骚。
半导体(RISC-V)、网络/ CDN(Envoy,Varnish)、软件工程(Docker,Go)、计算(Kubernetes),搜索(ElasticSearch)、AI(TensorFlow,PyTorth)等领域的开源项目更是世界无限延伸。
在数据库领域,商用软件与开源系统在2021年实现了黄金交叉,开源系统的使用率首次超过商业系统。
在国内,国产数据库开源颇为引人关注。从OceanBase对外宣布开源,到PorlaDB最新的开源动态,再到华为openGuass开源。在近两年来,国内数据库在开源领域不断发力。
从文档数据库MongoDB、图数据库Neo4j、时序数据库Cassandra,到CockroachDB,开源数据库塑造一个个发展传奇。
2021年,大量投资投向数据库公司。
交易型数据库依然是其中一个重要的投资方向。其中Yugabyte 获得了1.88亿美元的C轮融资。PlanetScale 推出了价值2000万美元的B系列,用于其托管版 Vitess。作为相对较老的NoSQL数据库, DataStax 也在一轮风险投资中为其 Cassandra 业务筹集了3760万美元。
令人称奇的是在2021年12月,甲骨文的创始人Larry Ellison超越了谷歌创始人Larry Page和Sergey Brin,成为了世界上第五位最富有的人。Larry Ellison在2021年12月的一天里赚了160亿美元,因为甲骨文的股票在这一天快速增长速度,数据库业务让甲骨文公司辉煌的40多年。
开源数据库商业化正面临运服务商等多重挑战。
在国外,为了适应数据库开源商业化的需要,几个著名的开源数据库不断修改开源协议,一方面是要通过许可协议,限制云服务商的数据库托管服务收费,但另一方面,也给用户和行业带来不同的困扰。
CockroachDB也不能独善其身,于2019年将开源协议修改为BSL,限制商业构建DBaaS。
数据库软件MongDB、Redis Lab、图数据库Neo4j等在2018年就修改过相关的开源许可协议,以改变其在数据库商业化方面面临的被“吸血”困境。
Cockroach官方表示,一些大公司可以直接在业务中高度集成竞争对手的开源核心软件,并将其以服务的形式(XX as a Service)提供给用户。
为了回应这一类竞争对手,Cockroach对核心源码的开源协议进行修改,从原本的Apache 2.0 协议修改为BSL(Bussiness Source License)。
在该协议之下,CockroachDB用户可以将CockroachDB扩展到任意数量的节点,可以使用 CockroachDB或将其嵌入到其应用中,无论是将这些应用分发给客户,还是将其作为服务运行,甚至还可以在内部将其作为服务运行。
但是唯一不能做的是在没有取得授权的情况下,以商业形式用 CockroachDB 提供数据库即服务(DBaaS)。
同时,BSL还具有滚动时间限制,具体到 CockroachDB 中,其每一个版本在基于BSL发布三年后,License将切换为标准定义的开源协议Apache 2.0。这个举措一方面可以使 CockroachDB官方维持一个有竞争力的DBaaS,另一方面也保证了CockroachDB 核心还是纯粹的开源项目。
改开源软件许可协议,必然会对大量用户生产重大影响,尤其会对公有云上的用户造成冲击。如何规避影响,保证应用稳定持续运营,是大量用户面临的一个主要问题。
另外,在开源软件得到大量应用的情况中,用户不得不面对开源软件协议修改带来的巨大风险。
未来,CockroachDB能否项蟑螂一样,繁衍、生长,并成为几千年来唯一存活的生物呢?我们不妨骑驴看唱本走着瞧。