数据火器库八卦系列之瑞士军刀随APP携带
来源:云数据库技术
数据库打工仔喃喃自语的八卦历史
1.为导弹巡洋舰设计,用在手机上的数据库2.SmallandSimple,andBetter3.如何看出是自己的娃:产品定位,特点和边界
1.产品设计
作为产品设计/产品管理的从业者,日常工作的一个核心就是明确产品的优势和定位,加上同样重要,又常常被忽略的维度:产品边界
姚明是中锋,并不是说他不能像后卫一样投三分,他明确的知道自己的长处和定位,和能力边界。
我们今天就讨论一个数据库专注细分领域的,甚至可以说是小众的,但是又最流行的,产品边界清晰的数据库SQLite
SQLiteLogo
图片来源-SQLite.org
2.SQLite-兆级数据库
从数据库实例维度,全世界最流行的数据库,不是那些数据库元老(O,DB2,SQLServer),不是云上新贵(Aurora,Snowflake,Azure),不是开源MySQL/PG,不是大数据HBase/Spark。他们加在一起,也比不上SQLite的零头。
现今世界上正在运行的SQLite,有超过万亿(B,1e12)的实例。每一位现代人的日常是被SQLite围绕的:
所有的Android手机/手环(华为,小米,三星...)
所有的苹果iOS设备手机/Pad/手表
所有的苹果电脑Mac
所有的微软Windows10电脑
通用浏览器(Firefox,Chrome,andSafari)
智能电脑/机顶盒
车载多媒体系统
....
SQLite不需要传统意义的安装,部署,调试,是纯粹意义上的Zero-Configuration。不需要DBA,Itjustworkforadeveloper,甚至许多i/OS,andriod手机APP的开发者,根本不知道他们在使用SQLite。
3.SQLite产品设计
产品设计,开发实现与应用实践,三者之间不是流水线或waterfall的单行道,而是循环往复,螺旋上升的。
SQLite由DwayneRichardHipp个人开发开源的。Hipp也算是计算机领域中N多个从学校肄业的大牛之一,区别在于Hipp是在Duke读博士的时候才悟出来的,比Gates(大三)和Jobs(大一)逊色不少。当年年甲方爸爸,世界五大国防工业提供商(俗称军火制造商)之一,列入Fortune的通用动力公司(GeneralDynamics)需要为美国海军的提供软件系统,Hipp是其中一个临时工。
如果对GD不熟悉,那可以补课旗舰产品F-16
Hipp作为政府的合同工,恰巧因为联邦政府关门(对的,就是那种没有钱导致的政府关门),暂时失业了。待业在家(笔者刚刚短暂的享受了几天),Hipp搞出的事情就是写个数据库,处理个战舰损管控制系统。
2.1需求
驱逐舰奥斯卡.奥斯丁舰名来自荣誉勋章获得者奥斯丁下士图片来源-wiki百科
做数据库的产品经理可能很难遇到如此具体的需求,驱逐舰奥斯卡.奥斯丁上的某个任务对话框弹出DBA梦幻信息:
Can’tconnecttodatabaseserver
而这个任务是战斗损管系统,也就是在弹雨枪林下,水深火热中,需要报警表示那些管道/设施需要应急维修。真枪实弹的秒级交互场景中,如果出现数据库无法联接,操作员心中怎能不万马奔腾?
这个联系不上的数据库系统,是当年赫赫有名的Informix。虽然不如Oracle,Db2(那是还没有SQLServer的时代),Informix也是top5的数据库,二十年前被IBM用10亿美刀收购,也算体现价值了。可是Informix不是为这个业务场景设计的,事实上当年没有任何一款数据库符合此场景。
2.2边界:不是什么
一方面Informix和已有数据库不适合上述场景,另一方面新产品也不用背负老系统的功能集和业务职责。
NOTanotherRDBMS:
不是替代当年成熟的数据库(Db2,Oracle)
不是(年代)新宠的数据仓库(Netezza,greenplum)
不是复杂的服务器Server-base系统
速度不是重要指标
存储量也不是重要指标
跨平台不是设计指标(对比java的崛起)
功能齐全不是设计目的
2.3定位:为单一APP服务的数据库
SQLite是自己自足Selfcontained的关系数据库管理系统,直接服务某应用某块。此概念与现在流行的microservices有类似之处。
SQLite面临的不是提高Informix链接数,复杂的链接池算法,或者断点续连的问题。而是面向的是每一个控制模块需要恶劣环境下,甚至出现物理切割的情况下,单模块系统依然可以对立运行,完成大部分设计功能。特别明确一下,这里的模块指代某个硬软件一体的工业模块,不是数据库内部的纯软件模块。
让我们做一个业务对比:现在中国的银行系统是采用中心体系的,每次一个支行或柜员机的业务操作是与总行数据中心连接完成的。好处是用户可以跨区域跨分行操作,异地存储转账,不足是如果与总行的线路出现问题,分行是瘫痪的。而SQLite的定位是,在正常情况下与总枢纽指挥中心联络,通讯通道异常时,比如前炮台,后轮机,均需要独立完成90%以上的职责。
2.4特点(优点):NOTFaster,Better,Cheaper
咬文嚼字的说,优点是销售词汇,产品设计角度应该强调的是特点。特点在适合的场景中才是优势。SQLite,不是最快最大最全的数据库,恰恰相反它是最小的标准数据库RDBMS。
SQLite的特点是如此明显的,所以宣传它不用那些看不出产品特点的片儿汤话。事实上SQLite的早期成功同商务宣传没有半毛钱关系。它为一个特殊的细分市场提供了具有基础数据库能力的嵌入式系统,这个细分市场在短短几年跳跃进庞大的智能手机时代,而SQLite的生命力强大到轻轻松松的站在时代的浪尖。
2.4.1小:SmallandSimple
通过C编写,在正式发布5年之后,向Google/Andriod的推广时,SQLite的binary也不过KB。出世20多年过程中,添加了全文检索,CTE,JSON等高级功能后,SQLite的发布版也只有小小的KB。
今日头条(andriod版)的安装后大小MB,1:的关系。对了,今日头条APP中很可能也用了SQLite(请字节同学确认,同样问题抛给阿里淘宝,腾讯
转载请注明:http://www.abuoumao.com/hyfw/5380.html