很多年之前,

业内就讨论过

开源与自研的关系,

孰轻孰重,

孰好孰坏,

到现在也还没有定论。

开源软件蓬勃发展,为何机遇与挑战并存?

事实上,我们很多行业似乎都离不开开源软件了。为什么呢?开源造就了多个产业的发展,已经成为了当前不少行业创新的重要途径。

Synopsys公司2020年研究数据显示,99%的商业软件含有开源组件,75%则直接由开源代码组成。开源软件的使用不断增多,在云计算、大数据、人工智能、工业互联网等新兴领域,开源软件已成为重要的创新发展模式。

从中国对于全球开源软件的整体贡献情况来看,2021年7月,国家信息安全发展中心副主任董大健分析指出,中国开源代码贡献已经占全球40%左右,国家“十四五规划”也首次加入了开源体系建设的相关发展要求。不过,他同时也指出,开源体系也具有一些系统性的问题和风险。

尽管开源软件存在一定的问题与风险,但大家对于开源应用与开发的兴趣依旧浓厚,因此,国内外对于开源的安全性研究也十分重视。美国WhiteSource公司发布的《2019年开源组件安全漏洞现状报告》显示,2019年公开的开源软件漏洞数量已增至6000多个,增幅近50%;而后在其2020年发布的《开源安全年度报告》显示,平均每1000行开源代码中就有14个安全漏洞,每1400行开源代码中就有1个高危安全漏洞。

2021年底,国家信息中心公共技术服务部王晓冬在《我国开源软件产业面临的突出风险及对策研究》一文中分析指出,我国开源软件产业存在断供、代码安全、知识产权、自主创新等风险。

理性认识开源存储,到底哪里好哪里不好?

事实上,开源带动了存储初创科技公司的诞生,带动了与存储相关的开源生态的发展。基于开源软件构建存储产品的厂商,与开源社区相辅相成,相互促进,共同发展。开源项目也吸引了资本的兴趣,在资本与开源社区加持下,这类存储厂商也开始了开源项目的商业化之路。

然而,企业级存储厂商的开源商业化之路来得还是不容易的,从分布式存储软件的开源发展与现状来看,目前主流的开源软件主要包括Ceph、HDFS、Swift、Lustre、GlusterFS等。

其中,按照存储类型来划分,Ceph属于融合块、对象、文件于一体的统一存储, HDFS、Lustre、GlusterFS归属于文件存储类,Swift是OpenStack开源云计算项目的子项目之一,属于OpenStack Object Storage对象存储。Ceph与GlusterFS的齐头并进,将中国的开源存储发展推向了新的阶段,对于云计算与软件定义存储的发展贡献了一定的力量。当前来看,Ceph的开源存储支持者比较多,社区建设更为庞大,开发者贡献频率也相对较高。

从开源存储的整体发展优势来分析,因为社区开发者与开发团队贡献的代码多,各自有所专长专注的功能领域,迭代自然更快。

同时,因为代码开源,只要是社区组织中的成员,遵循一定的规则,代码就都可以拿来使用,必然存在开发成本优势。

建设开源社区的同时也就是在建设开源生态,这是来自全球开发者的贡献地。每一位社区成员与社区组织本身都在开源生态的共同作用下,不断推动开源存储软件的应用与对外交付。由此可见,开源存储软件的整体生态还是非常强大,行业影响力也在不断深入。

然而,存储软件面临的商业化挑战,不是一时半会儿可以解决的。坚持自研路线的存储厂商,如曙光、华为等经历了数十年之久的技术积累,如果开源存储软件短时间内就能搞定,这说明了什么?值得冷静思考一下。

站在用户需求的角度来看,分布式存储的发展正确路线应该是如何实现容量、性能、可用性、可靠性、可伸缩性这五点的平衡。对于开源存储软件而言,Scale-out架构带来的存储容量上的灵活扩展能力,加上闪存与大容量硬盘技术的迅猛发展,让存储系统的性能也能获得足够高的表现,同时也实现了很好的伸缩性。然而在可用性与可靠性上,都需要进一步的优化与提升。

在稳定性方面,开源社区处于一个开放的生态中,不是一批人或某一个开发团队写的代码,对软件架构设计的理解参差不齐,开发逻辑可能不一致,不稳定因素及安全隐患风险更大。代码程序及产品软件存在缺陷是不可避免的,在不同的阶段发现缺陷并进行修正,对于代码稳定性的影响程度不同,付出的成本也不同。据相关统计数据估计,在软件测试、发布阶段纠正缺陷的成本是编码阶段发现并纠正缺陷的成本的15-90倍,如果在交付用户之后才发现并解决缺陷,这个数字将达到50-200倍。因此,任何安全隐患都可能造成巨大的损失。而对于开源社区代码而言,由于其开放性和庞杂性,导致很难有社区开发者将开源存储代码进行完整的测试。基于开源存储软件构建的商业化产品,如果不能对100%的源代码进行测试,那么这就可能为用户交付稳定可靠的存储系统埋下了不少隐患。

在整体服务质量方面,因为开源带来的Bug问题逐年递增,如何真正解决实际应用中的Bug问题,对开源存储厂商的技术能力有着不同程度的挑战。厂商研发实力强大,自然对于用户的服务质量就高,厂商研发实力弱一些,带给用户的服务质量就存在“折扣”。可见,每一次开源存储软件的交付,都是对开源存储厂商的技术考验。

此外,在大规模部署的时候,开源存储的稳定性和可用性存在一定的挑战。以Ceph为例,其商业化存储有不少案例,但直接使用开源Ceph构建数十PB甚至上百PB的大规模案例,到目前几乎没有。

当然,这里需要值得注意的是,自主研发的商业化存储软件,也不意味着所有代码模块都是封闭的。庞大的系统化工程中,必然会借鉴、改进或采用少量开源框架或组件,同样也会因为开源组件引入而潜藏安全漏洞。

存储软件自主研发的根本主要聚焦在四个方面:

一是,整体的架构设计;

二是,核心数据通路的构建;

三是,从底层到上层的各个关键模块的软件设计及编码实现 ;

四是,系统的安全性等,即自主研发意味着厂商对于存储系统的功能、性能、可靠性等具有完全控制权,做到系统整体性上的自主,同时通过完备的单元测试、系统测试、产品测试,结合白盒测试、灰盒测试、黑盒测试等手段,交付高质量的产品,将用户的应用风险降到最低。

用户做存储选型,到底是开源还是自研?

全球存储观察分析认为,开源与自研好比硬币的正反面,都有其存在的价值。根据不同场景与应用需求,按照用户自身技术开发的能力高低选择,这才是理性的解决之道。

从性能、可靠性、稳定性、备份容灾等角度考量,用户在面对核心业务应用场景的方案选择时,对开源存储一直都比较谨慎。特别是用户本身运维团队比较薄弱的情况下,将面临后续软件维护、更新迭代等一系列技术挑战。因此,在核心业务、生产系统和大规模部署情况下,用户选择存储系统的观念依然“保守”,自研存储系统依然是其首选。

从另一方面来看,对于具备一定数量的存储开发人员,或具有存储软件领域开发背景的用户来说,自身具备对开源存储软件的代码修改、优化与调试的综合能力,甚至团队成员可能就是某些开源社区的贡献者。在这种情况下,借助存储开源软件,便于配合业务创新应用的发展趋势下,可获得更为快捷、灵活的应用部署。由此可见,倘若企业用户的存储软件开发能力强,选择开源创新不失为一条符合产业发展的好路径。

对用户而言,存储选择到底是开源还是自研产品,需要考虑到企业自身的综合成本,包括自身应用部署后的数据安全性要求,存储软件开发与运维人员成本,自身存储实际应用过程中解决问题的服务质量。当然,数据安全、运维成本与服务质量,对于任何一个开源存储厂商而言,也是值得重视的三大问题。

从存储应用角度出发,开源与自研已经成为了企业级存储发展的两大趋势,好比人的左手与右手。企业用户到底会用左手多一些,还是用右手多一些,只在于企业自身的技术能力与实际应用需求。有时候左右手一起上,也不是没有可能。一切皆有可能,当然最大的可能还是在于自身的技术开发能力到底有多少可能。

对于“开源存储+自研存储”的融合发展模式,有多少企业用户会真的开启,我们也可以拭目以待。

(by Aming)

- END-

欢迎文末评论补充!

【全球存储观察 | 科技明说】专注科技公司分析,用数据说话,带你看懂科技。本文和作者回复仅代表个人观点,不构成任何投资建议。

企业级存储发展趋势谈:开源存储的冷思考相关推荐

  1. 红帽专家谈 Ceph 与 Gluster 开源存储路线

    今年年初,红帽2016财年营收20亿美金的消息火遍朋友圈.在软件行业领域,红帽相较于其他软件巨头,一直稍显低调.在笔者看来,之前财年营收过20亿的宣布,完全可以作为红帽2016年度最强发声,同时预示着 ...

  2. 开源存储这么香,为何我们还要坚持自研?

    引言 近年来,开源软件的蓬勃发展,给软件产业.软件技术.软件生态的发展都带来了巨大的机会.同时在使用开源软件过程中也必须要去面临存在的众多风险和固有的技术限制带来的难题.在存储领域,以Ceph为例,作 ...

  3. 企业级存储详解与存储资源盘活

    近年来,云计算.大数据.人工智能.物联网等信息技术与产业快速发展,信息技术与传统产业的融合也不断加深,快速发展的数字经济已经成为我国产业转型升级和经济高质量发展的重要驱动因素.数据是数字经济的重要基础 ...

  4. PB级区块链开源存储引擎“泓”Huge

    区块链的特有属性使数据可追溯.不可篡改的同时弊端也很明显,采用的分布式存储技术需要每一个节点保存一份数据库,存储成本高:网络中发生的每笔交易都需要其它节点认证和记录,处理速度慢:这让区块链的系统的存储 ...

  5. 鹏云网络分布式块存储社区版问世,首发开源存储解决方案

    2023年1月,南京鹏云网络科技有限公司(简称:鹏云网络)正式宣布开源ZettaStor DBS分布式块存储系统,开放了自研10余年的分布式块存储技术,自此踏上了"自研"与&quo ...

  6. Linux开源存储全栈详解

    最近和同事一起整了本书<Linux开源存储全栈详解:从Ceph到容器存储>,把Linux开源存储相关的项目做了个梳理,对于想了解或参与存储相关项目开发的人来说,应该会是个不错的参考.这里把 ...

  7. Linux开源存储网络详解

    这本<Linux开源网络全栈详解:从DPDK到OpenFlow>是那本<Linux开源存储全栈详解>的姊妹篇,把Linux开源网络相关的项目做了个梳理,对于想了解或参与网络相关 ...

  8. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  9. 你需要知道的MySQL开源存储引擎TokuDB

    在四月份的Percona Live MySQL会议上, TokuDB庆祝自己成为开源存储引擎整一周年.我现在仍能记得一年前它刚创建时的官方声明与对它的期望.当时的情况非常有意思,因为它拥有帮助MySQ ...

最新文章

  1. python对文件的读操作方法有哪些-用python实现读写文件常见操作方式
  2. C# 中的委托(Delegate)
  3. 使用Spring Task完成定时任务
  4. 在java中对null的理解
  5. 文档下载:《Oracle 20c和19c的新特性解密》
  6. 如何实现一个连接池?
  7. canvas转盘转动?
  8. 想看程序员的成长课这本书
  9. 学校计算机学院教学管理ER图,学校课程管理ER图
  10. 您应该知道的代码审查工具
  11. 电磁铁使用时该如何减少耗损
  12. ret-sync插件:windbg/ollydbg+ida逆向调试神器
  13. 第二章 核心动画渲染框架
  14. 计算机文化起源于,计算机文化.pps
  15. 香港大学计算机科学排名,香港大学计算机专业排名
  16. java 字符串中取消换行或添加换行
  17. autoware lidar_localizer包下的ndt_matching节点的学习
  18. quill-editor使用方法,图片base64位转为url缩减字符长度,以及显示文字个数,光标位置等
  19. 2021年5月:百度最近的文章收录变慢了?连老站都不好使了?
  20. Luckysheet的使用

热门文章

  1. 游戏安全与反外挂:加固工具介绍
  2. 麦腾支付:跨境支付与区块链支付的发展前景分析
  3. k8s入坑之报错(11)添加node节点报错:error execution phase preflight: [preflight] Some fatal errors occurred:...
  4. department apartment
  5. 手机网络邻居访问电脑_通过WiFi局域网在手机上观看电脑上的视频
  6. 浅析LruCache原理
  7. 一等号,二等号和三等号区别
  8. 图片轮播器——javascript
  9. 第一次尝试节奏跑(乳酸门槛跑)
  10. 自称菜鸟的二本大龄程序员居然拿到百度offer,还有嘉实offer(百度三面面经)