基础软件照搬开源不可取,自力更生才是正途

beyondma beyondma     2023-03-16     345

关键词:

最近有关开源软件的话题始终牢牢占据着IT界的新闻头条,Log4j开源软件的惊天漏洞、Fake.js的作者也惊天删库跑路了,CurL的作者怒怼苹果只会白嫖开源却不出力,Linux的祖师爷Linus也不知所云地在Github为Windows XP加油打Call。

中国开源虽然繁荣,但背后隐患不少

十年前业界普遍认为“代码正在吞没世界”,现在IT界普遍认为“互联网世界的一切源自开源”,而来自中国的程序员们正在通过开源,让全世界开始学习中国话。2019年一个老外发了一条名为“中国的开源项目正在破坏 GitHub 的发现页面”的博客,吐槽中文项目已经占领了GitHub 的趋势排行榜,排名前10 项目中居然有 9 个中文项目,这样火爆的场面恰恰是近来年来中国开源项目发展的一个侧影。目前,在全球最大的开源社区GitHub中,中国开发者在数量与贡献度上均位列第二。尤其是2019年的新注册用户中40%来自中国,他们中90后的年轻人居多,完全出于兴趣与实现自我价值参与开源项目。可以说中国开源正在迎来自己的黄金时代,一股来自中国的开源力量席卷全球。

但是包括笔者在内的很多业界同仁都认为这种繁荣有相当一部分是虚假的,在这看似一片繁荣的景象背后,也有不少的水分,所谓“国外一开源,国内就自主”,目前中国的开源事业蓬勃发展的背后往往采用的是照搬、照抄的模式,这也为开源项目尤其是基础软件方面的开源项目在国内的发展埋下了巨大隐患。

照搬开源有风险,基础软件照搬开源不可取

去年我国某电子书厂商拒绝开源其基于Linux 内核修改的设备源码,而这一做法明显违反了Linux的GPL协议。因此在Reddit社区引发了开源软件如何在中国维权的大讨论。

这次风波虽然只是个别厂商的行为,却也明显带有了中国的地域性色彩,毕竟好事不出门,坏事传千里,即使我们开源了很多如RocketMQ之类的项目,也无法对冲不遵守开源规则所带来的恶劣影响。

另外值得观察的是在IT基础软件领域,国外开源厂商的所谓断供操作,也时有发生,值得我们警惕。我们看到同样是在去年6月知名的开源云服务提供商HashiCorp在官网宣布:不允许中国境内使用、部署和安装该企业旗下的“企业版”产品和软件。

 

虽然最后确定这只是一起乌龙事件,被限制使用的仅限于HashiCorp的加密软件。不过这一事件开了一个比较坏的头,因为基础软件方面的开源项目一旦实施替换成本非常大。标志着开源也有走向限制、封锁的可能,而且目前俄罗斯、克里米亚、伊朗的GitHub用户的账号,也都遭到了网站官方的限制。所以我们这种照搬式的开源,只知其然却不知其所以然的模式,未来也可能会面临断供的风险。

基础软件照搬开源还不好用

照抄式开源不但有断供风险,实际使用体验也不好,拿基础软件中的开源分布式存储方案来说,目前我国厂商日常用的大概就是Ceph了但是基于Ceph衍生出来的各种存储方案,其用户体验差得令人不可思议

1.不稳定

在使用存储方案时,用户最害怕见到的场景就是存储由于各种原因性能下降,最终造成整个系统的雪崩。Ceph原版开源方案在节点切换、节点重启与数据备份三个在日常工作中经常会遇到的场景下表现都不算太好。

比如开源版Ceph在节点切换时则会出现服务负载能力大幅度下降的情况,此外节点重启时需要加载元数据也就是RDB,Key值越多RDB也就越大,重启速度就越慢,对大集群的Ceph来说,服务重启简直像噩梦一样。

2.扩容操作复杂

从事开源 Ceph 运维工作的程序员,一般都会有掉进过扩容的坑,由于开源Ceph各节点间使用分布式协议进行数据同步,因此扩容操作较复杂,甚至扩容时还需要对节点进行切换与重启,扩容期间服务出会出现短时中断,非常影响效率。

3.运维难度太高

CEPH方案运维难度高,很少有自愈场景,基本的故障场景均需要人工处理,造成CEPH出现卡顿的原因,可能是后台恢复或者重平衡的影响,也有可能是慢盘、网络问题的影响,但CEPH自身侦测机制缺失,需要运维团队自行开发慢盘等监测插件,或者人工识别并踢除慢盘,运维难度极高。

4.资源利用率低性价比较差

存储成本主要是看磁盘集群的利用率,但是当CEPH集群规模增⼤后,伪随机算法导致了存储资源分布不均衡,磁盘利⽤率⽅差过⼤的问题。虽然从L版本开始中增加了balancer插件,能够在一定程度上实现自动监测并均衡,但此插件只能进行权重的评估,对于数据迁移量并没有过多的优化,即难以解决数据不均衡的问题,更无法有效提高磁盘利用率。

正是由于在原型测试中就会遇到上述问题,让很多用户对于Ceph及其衍生出来的项目望而却步,继续使用国外的存储产品,也有像华为、曙光等自研存储厂商,大幅提升了产品性价比、稳定性,还提供统一的运维中台的方案,被越来越多的用户选择。虽然说开源是一种重要的开发方式,但是开源这种看似省时省力的方案,却让我们在基础软件领域很难掌握到真正核心的技术,而不自主掌握高水平的自研技术,就无法做出真正好用的产品。

国内像华为、曙光这样的厂商这样坚持从底层代码自主研发的厂商,才能推出真正自主掌控,而且快捷易用的产品。

基础软件照搬开源不可取,自力更生才是正途

最近有关开源软件的话题始终牢牢占据着IT界的新闻头条,Log4j开源软件的惊天漏洞、Fake.js的作者也惊天删库跑路了,CurL的作者怒怼苹果只会白嫖开源却不出力,Linux的祖师爷Linus也不知所云地在Github为WindowsXP加油打Ca... 查看详情

官方文档,才是正途-docker-compose

需要的ingress网络映射,还是host宿主机端口映射: https://docs.docker.com/compose/compose-file/#secrets ========================dockerservicecreate--nameweb--publishmode=host,published=80,target=80 ginx====== 查看详情

重装系统(自力更生,再也不担心电脑坏了)

第一种情况:电脑能启动下只是想换个系统玩玩想装什么系统,就下载什么系统文件,一般来说1G到5G之间,如果是以ISO结尾的是个压缩包,解压到电脑不要放到c盘,也不要放在桌面。解压出来以后找到autorun或者安装类似的程序... 查看详情

universalusbinstaller集开源软件之佳作(代码片段)

...的源代码,翻看了一下,呵呵,有意思,几乎是一个开源软件的大杂烩,忽然,恍然大悟,原来,作者才是开源软件精神的代言人,不重复制造轮子的践行者啊。uui网址:https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/1、win... 查看详情

java两大工具库:commons和guava

...大程度上得益于开源软件的成功,尤其是构建上开源软件基础上的开源生态,这才是Java能够繁荣、出圈的真正原因。在开源的世界中,谈起apache,它的大名恐怕很少有工程师会不知道:从最初的apache到tomcat、从perl到maven, 查看详情

使用 import java.util.* 是不可取的吗? [复制]

...1311:50:34【问题描述】:正在使用importjava.util.*与调用特定软件包相比不利于吗?我想知道它对于调用所有包的程序是否显着效率低下,而不是专门列出它们,例如:importjava.util.Scanner;import 查看详情

qt软件开发之入门基础-搭建开发环境

1.1Qt版本介绍在Qt发行版本中将要涉及两个版本:Qt商业授权和Qt开源授权。Qt商业授权是设计商业软件的开发环境,这些商业软件使用了传统的商业来发布,它包含了一些更新的功能、技术上的支持和大量的解决方案,开发了使... 查看详情

开源的商业模式的思考

...件的源代码,所以许多公司认为无法提供竞争优势(譬如基础设施)的领域。  开源软件有的是私有版权,有的公共版权,私有版权的开源软件是不允许修改版权的。  开源软件并不都是自由软件,开源者写的代码, 查看详情

开源软件通识基础:第二周课程回顾与总结

接第一篇《开源软件通识基础:第一周课程回顾与总结》,本文为第二周课程内容的回顾与总结。本导学班在调研全球开源教育与课程的基础上,通过收集、整理、理解、拓展国际最新的前沿开源课程,采取众创... 查看详情

什么才是技术?

...种编程语言?熟练Linux各类神操作?深入研究某几种开源软件源码?或者是根据业务诉求进行组件拼装,定义各种规范协议,美其名曰架构设计?这些东西其实如果你会,别人迟早都可以做,只是时间问题,这还叫技术吗?什么... 查看详情

20个开源的工业设计软件(代码片段)

...开源领域也不例外。作为面向工业品研发、设计、加工的基础软件,设计软件算 查看详情

赢咖二招商主管753731之开源,基础软件最好的商业模式

...软件”。然而事实恰恰相反,今天“开源”正是基础软件最好的生长模式。“开源”能对基础软件公司提供三方面的助力:技术/品牌推广,用户/开发者拓展,人才吸引。    是不是言过其实?让我们一起细... 查看详情

阿里巴巴cto程立:开源是基础软件的源头!

开源盛世下,无数企业拥抱开源技术并迅速向数字化转型,阿里巴巴便是国内走在前列的大型企业之一。7月28日,阿里巴巴集团CTO程立在2022开放原子全球开源峰会上带来了《共建共享数字世界的根》主题演讲。从全... 查看详情

java开发基础不牢?工信部java软件开发工程师证书

一、Dubbo是什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。二、为什么要用Dubbo࿱... 查看详情

什么才是java的基础知识?

...发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考。我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家... 查看详情

阿里巴巴cto程立:开源是基础软件的源头!(代码片段)

整理|屠敏出品|CSDN(ID:CSDNnews)开源盛世下,无数企业拥抱开源技术并迅速向数字化转型,阿里巴巴便是国内走在前列的大型企业之一。7月28日,阿里巴巴集团CTO程立在2022开放原子全球开源峰会上带来了... 查看详情

什么是开源gis

...协议发布某些软件的源代码,并允许他人在遵守该协议的基础之上可以自由下载、修改、使用和散布其源代码。 开源协议:GNUGPL、BSD、LGPL、MIT、MS-PL 开源网站:opensourceGIS、sourceforge、googlecode、apache、codeplex 参考技术B在百科里... 查看详情

开源飞控介绍

所谓开源飞控就是建立在开源思想基础上的飞行自主控制器项目(OpenSourceAutoPilot),同时包含开源软件和开源硬件,而软件则包含飞控硬件中的固件和地面站软件。一 开源飞控发展第一代开源飞控系统使用Arduino或其他类似... 查看详情