竹笋

首页 » 问答 » 环境 » 与51岁程序员的心灵对话开源让我成为20
TUhjnbcbe - 2021/9/6 22:22:00
白癜风专家崔永玲 https://m-mip.39.net/baby/mipso_6714830.html

作者:物女王(彭昭)

物联网智库整理发布

转载请注明来源和出处

导读

开源,在它20年前出现的时候,没人想到它会幸存,而且构建出了如此繁荣的生态。开源,一种基于订阅和服务的商业模式,很少有人想到它能够创造如此良好的利润。开源,至少在物联网领域,正在成为一种突破固有格局的利器。面对开源,很多物联网人很难抉择何去何从。巨头实力雄厚,手握开源的能力和先机。物联网领域的初创公司是否值得跟进开源趋势?到底如何跟进?这是一个值得深思的问题。

这是我在专栏写的第篇文章。

7月12日,涛思数据创始人陶建辉,宣布将公司独立研发的物联网大数据平台TDengine开源。陶建辉把他和涛思数据团队在过去两年多的时间里,写下的10多万行C语言代码,放在开源社区GitHub上,无私分享给了全球开发者。

这个举动引起了巨大反响。

TDengine瞬间冲到GitHub综合趋势排名第一,在仅仅一天的时间里增加了个星标(Star)。

3天时间TDengine成功超越开源5年的时序数据库OpenTSDB的星标数量。

一周之内累积星标超过,代码克隆(Fork)数量超过。

这一成绩在物联网数据项目中,可谓绝无仅有。

开源,已经成为当下无可逆转的潮流。

以物联网领域常用的容器集群管理工具Kubernetes(K8s)为例,年7月谷歌将其开源,4年时间里K8s迅速普及,成为了容器化编排的事实标准。

今年7月,IBM以亿美元完成对红帽的收购,这不仅是IBM史上最大规模的一次收购,还预示着IBM将在开源世界开疆拓土。

就连认为“开源软件是知识产权的癌症”,曾经那么不喜欢开源的微软,如今竟也难逃“真香定律”,在开源领域打头阵,转身成为GitHub上开源项目贡献最多的组织。

开源,在它20年前出现的时候,没人想到它会幸存,而且构建出了如此繁荣的生态。开源,一种基于订阅和服务的商业模式,很少有人想到它能够创造如此良好的利润。

开源,至少在物联网领域,正在成为一种突破固有格局的利器。

面对开源,很多物联网人很难抉择何去何从。巨头实力雄厚,手握开源的能力和先机。物联网领域的初创公司是否值得跟进开源趋势?到底如何跟进?这是一个值得深思的问题。

因此围绕开源的话题,本周我和陶建辉,这位51岁的超级爱倒腾的程序员进行了一次坦诚的交流,不仅有他的心路历程,还有我们关于开源趋势的共同思索。在本文中你将看到:

初创公司如何选择开源策略?

为什么说开源才能更好的盈利?

开源的未来指向何方?

01

开源的本质是局部垄断,开源就要开放最核心的代码

开源就要开放最核心的代码

“开源,既然决定了,就要把最核心的代码开源。”

这恐怕是陶建辉在选择开源之后,最为深刻的认知。

围绕是否开源,陶建辉的团队曾经难以决断。最终,在TDengine开源的代码里,不仅有陶建辉亲手写的3万多行C代码,而且还有最核心的存储引擎、计算引擎程序。

陶建辉说:“宣布TDengine开源之后,如释重负,轻松了不少。终于做了一件我一直想做,但又不敢做,一直犹豫是否要做的事。”

开源了最核心的代码,很多人都不理解,陶建辉为什么要这么做。然而这却是他深思熟虑后,做出的理性决定。

“大家总是好奇为什么TDengine的安装包才1.5MB?为什么亿条记录的平均值计算时间3秒不到?单凭语言描述,你可能还是不信。现在我把核心代码开源,把详细设计文档公布出来,秘密全告诉你了。我们的存储和计算引擎特别的好,不信可以自己看。”

如果不把核心代码开源出来,有两个问题没法解决:第一,最终用户还是无法理解TDengine创造的IoT大数据计算奇迹是怎么做到的,因此对产品仍然没有信心。第二,最终用户从其他开源数据库转换到TDengine上没有什么必要,因为没有多大竞争优势,因此不会获得最佳的普及效果。

开源的本质是创造局部垄断

决定开源,还有个前提,就是想清楚开源的本质。开源,是创造局部垄断的有效方式。

陶建辉看来,在物联网软件领域,有两个趋势必须跟进:云化和开源。云化不是本文的议题,只说开源。

根据埃森哲的市场调查,98%的企业都在以某种形式使用开源软件。下面是10大IoT领域的常见开源项目,你一定对它们有所耳闻。

从现状来看,开源正在加剧垄断。巨头们正在用亲身实践验证下面的公式:

行业巨头+开源模式=重塑垄断格局

最早的故事,恐怕是微软的IE和谷歌的Chrome浏览器之争。

浏览器是用户上网的入口,可以衍生出多种商业模式,带来不菲的收益。微软IE浏览器诞生于互联网发展的早期。那时的网页浏览器开发成本很高,软件公司需要自行开发浏览器内核和脚本引擎,同时也要自行设计各种人机互动功能和界面。这样的工作只有微软等大公司才能完成。

由于IE基于微软的一系列私有技术所构建,创新速度非常缓慢。后来者谷歌,不甘心将搜索引擎的入口拱手让人,因此在年推出Chrome浏览器。

那么,谷歌计划如何反超微软在浏览器领域积累多年的垄断地位?

谷歌并没有重蹈网景在与微软对战中落败的覆辙,从一开始Chrome就架构在开源的WebKit浏览器引擎之上。基于WebKit,开发者甚至只需设计自己的界面和标志,并拿出一些独创的小功能,即可推出一款新的浏览器产品。

在这样的情况下,浏览器开发的时间周期从90年代的按年计算,下降至按月计算、按天计算。洞悉市场趋势,谷歌不失时机的投资WebKit,恰到好处的满足了市场需求。开源的WebKit聚集了一批浏览器开发商。通过控制浏览器内核,谷歌实际上已经主导了当代浏览器技术的发展。

如今,IE和Chrome浏览器之争的结局一目了然,谷歌颠覆微软,重塑了垄断格局。

谷歌这种通过开源产品去主导市场,充分调动市场各方的参与热情为己所用的策略,远比微软当时通过私有技术去主导市场的做法更高明。

在物联网领域,开源产品也正在逐步爆发。根据年RTInsights与红帽合作发布的一份特别报告,那些对物联网的各种全新机遇充满好奇心、并保持主动作风的企业,积极拥抱开源。

在开源工具的使用比重调查中个,领先型IoT企业和跟随型IoT企业的比重是68%:32%。

红帽、谷歌和微软为物联网开源项目做出了最多的贡献。

在很多领域,由于巨头扎堆发布和贡献开源技术,小企业丧失了竞争的机会。

开源之前,同一领域有可能存在数十乃至上百家企业,提供相似的产品和服务。当某家企业宣布将自己的产品开源,往往对成本敏感的中小企业客户,以及主动寻觅最新技术的企业会迅速跟进,共同完善和改进开源产品,形成马太效应,对不开源的私有技术形成一种碾压性“清场”态势。

另一方面,由于开源是一场全球性的竞争,只有两、三家头部企业才能“笑到最后”。依靠由开源产品培养的用户习惯和使用信赖,如果找准机会,对于初创企业而言,开源形成的生态汇聚效应,很容易让一家企业变成独角兽。

开源体现核心竞争力,必须明确目标和KPI

在宣布开源之前,陶建辉带领团队做了大量的准备工作:

[打磨产品]首先,他们对IoT数据的特征建立了全面的认识,TDengine平台能够创造明确的价值。

[二次包装]其次,他们为TDengine的代码进行了严格测试、规范风格,撰写了使用说明书,设计文档和技术博客。

[贯彻KPI]最后,他们横向对标了同类产品开源的“战绩”,制定了明确的KPI并落实到个人。

接下来我将陶建辉的打法进行逐个步骤的拆解。

[第一步:打磨产品]

陶建辉瞄准的是一个巨大的市场。Gartner的报告显示,联网设备在年已经超过亿,预计年将达到亿,这将产生海量的数据。但与现在大家所熟悉的互联网数据相比,物联网数据有其显著不同特点:

1.物联网数据量巨大:以智能电表为例,一台智能电表每隔15分钟采集一次数据,每天自动生成96条记录。全国有接近5亿台智能电表,每天光智能电表就生成近亿条记录。根据预测,5年之内,物联网设备产生的数据将占世界数据总量的90%以上。

2.物联网数据本身的特征明显:时序性、结构化、数据源唯一,而且写多读少。

3.物联网数据的查询和操作与众不同:数据的查询分析往往是基于时间段和某一组设备的;除存储查询外,往往需要实时分析计算操作。

4.物联网数据处理的特殊性:比如要检查某个具体时间的设备采集的某个量,但传感器实际采集的时间不是这个时间点,这时候往往需要做插值处理。还有很多场景,需要基于采集量,做复杂的数学函数计算。

因此,在TDengine的设计过程中,完全为物联网行业的需求而量身定制:

1.实现10倍以上的性能提升

陶建辉团队重新定义了时序数据的存储结构,TDengine成功让数据插入和读出的速度比现有通用数据库高了10倍以上。如果使用8核服务器,亿条记录的平均值计算时间不到2秒。

2.总拥有成本大幅下降

由于追求极简和极致,TDengine计算资源不到通用大数据方案的1/5,存储空间不到通用数据库的1/10。而且零管理,运维成本也大幅下降。

3.零学习成本

TDengine安装包仅仅1.5M,不依赖任何其他软件。从下载、安装到成功运行只需几秒就能搞定。而且应用API与MySQL高度相似,让学习成本几乎为零。无论是十年前还是一秒钟前的数据,指定时间范围即可快速入手直接查询。

[第二步:二次包装]

陶建辉团队虽然对TDengine具有极强的自信,但酒香也怕巷子深。毕竟市场上有太多的可替代方案。只有将自己最美、最有吸引力的地方充分展示出来,才能吸引更多的人来使用。

怎么让更多人领会到TDengine精妙的架构呢?

为了开源,团队备战了一个月时间。

首先,团队花费大量精力调整并测试代码,让TDengine的程序代码更加规范、更加稳定。做到让其他的程序员不仅能看得明白,看得清楚,还能体现出TDengine的极致和专业。

随后,团队投入时间写作说明文档,把各种技术实现的细节写了出来,而且这个步骤本身就在相当程度上回答了潜在用户关于性能和指标的质疑。

开源的受众群体,不仅有中国的开发者,还有更多的全球开发者,因此英文文档也不可或缺。同时由于TDengine只是中间件,不是最终应用,团队又开始写作各种应用案列,结合车联网、IT运维、数控机床等实际场景,将TDengine的使用方法明明白白的写了出来。

最后,TDengine的官方网站也被全新改版,内容一目了然。

[第三步:贯彻KPI]

开源也是一次宣传活动,如果不能触及最广泛的受众群,开源也就失去了意义。

陶建辉对标了InfluxDB、MongoDB、ElasticSearch、OpenTSDB等开源数据库在GitHub上面的表现,认为星标Star数量和代码克隆Fork数量是两个关键指标。

他希望团队用3个月的时间,能够追赶开源时序数据库OpenTSDB在5年时间内完成的KPI:Star超过,Fork超过0。

为了达成KPI指标,团队制定了有条不紊的宣传策略:在全球架构师峰会上率先宣布TDengine开源计划,同步在涛思数据的官方渠道上推广,并且陶建辉还利用个人的

1
查看完整版本: 与51岁程序员的心灵对话开源让我成为20