Steven
作者Steven课题专家组·2023-11-22 14:00
IT顾问·steven

数字化时代的开源思考

字数 3608阅读 580评论 0赞 2

有人说开源是时代发展趋势,我并不认同这样的观点。开源更多是利益所趋。我并不否认有很多伟大的开源先驱和朋友们没有太多的利益诉求,只是乐于贡献自己的智慧和能力,和更多的人分享技术成就和快乐,但大部分企业开源都是利益驱动。不管是为了企业宣传、占领市场、构建生态,或者是为了免费利用大众智慧引领技术发展趋势,完善产品等,都是有企业利益诉求,和个人纯粹的技术交流和奉献是不一样的。因此谈开源可能需要从个人和企业的不同利益视角来讨论,更好的理解开源、使用开源、促进开源的发展。

开源目的更多还是为了抗衡企业闭源产品所带来的昂贵的软件使用费用,特别对于个人而言,软件许可费用成本往往不低,所以不管学习还是个人事务处理,个人更倾向于免费的软件。另外,开源并不解决软件的灵活性、可扩展性、敏捷迭代、自主可控等问题。软件灵活性、可扩展性是软件架构问题,跟开源没有关系;敏捷迭代取决于开源运维团队,是否能够做到敏捷迭代和发布;自主可控是国家或企业行为,跟开源也没有根本关联,不是说使用开源就自主可控了,使用开源就灵活可扩展了。自主可控是自主研发、不受制于人的能力,和使用开源代码是两回事。用别人的开源代码并不代表自己能够理解并控制源代码,至多是拷贝一份自行修改扩展而已。所以,全面理解开源的优势和劣势,对个人和企业来说,既能利用开源的优势,避免误解而走入误区,特别在全面信息技术创新的阶段,不能拿开源当创新,不能用开源误导创新。

云原生技术基本上都是开源的,所以促进了云原生的快速发展和应用,到目前基本上成为了大部分企业的首选技术方向。根据本人调查,超过8 0% 的金融企业应用了微服务、容器和D evOps 等技术和工具。开源有其巨大的优势,特别是由关键企业主导的开源。

开源优势:

1、开源是技术人员个人学习提升的一个免费的重要的途径

对个人而言,利用开源学习提升是一个免费的、重要的、快速的途径。也正是开源,让众多的人员能够接触到先进的理念和技术,能够学习和提升自己的能力,同时贡献自己的智慧,促进技术的应用和发展。利用开源软件,技术人员个人就可以快速测试并搭建自己的系统,了解开源软件设计理念、方法、架构等,研读源代码学习编码方式方法等等,如同站在“巨人”的肩膀上,大大节省了时间和精力。无论对个人或者所服务的企业,都是双赢。

开源也是技术人员自我驱动的一种很好的方式。开源社区为优秀的技术人员提供了一个实现自我价值的渠道。可以按照自己的想法、天马行空、不受约束地尝试,推出自己的开源组件。通过与社区技术人员之间的交流、碰撞,会不断产生新的思路和想法,持续地扩展场景和能力,从而促进个人和开源软件的双向完善。

2、开源是企业宣传、构建生态和标准、占领市场的重要方式

开源对企业来说是很好的宣传手段。特别如果有一款非常受欢迎的软件开源出来,在扩展企业影响力的同时,也会帮助企业构建自己的生态和标准,从而快速的占领市场。当然这往往取决于企业自身的能力和判断力。也有企业跟风推出了开源组件,但都是边角料的组件,没有什么市场价值,这样的开源对企业来说不但无法带来收益,反而需要额外成本去维护和管理这些组件,可能得不偿失。因此,开源不是随便的、随意的,一定要经过规划和调查。选择合适的方向和组件,能够引领市场,为自己的企业带来巨大收益才是好的开源。

云原生容器是非常典型的一个成功的开源工具。一方面在于有像G oogle 这样的大公司的加持,另一方面也带来了新的理念,引领着技术发展趋势。能够引领众多的技术人员的参与,在学习提升自己能力的同时,促进了云原生技术的推广和应用,也形成了众多的标准和规范。也因此有很多的大企业都不断地推出自己的开源软件,建立社区,引导技术趋势和技术应用,从而获取更多的市场份额。

3、开源可以免费利用大众智慧

对企业来说,开源很重要的一点是要利用大众智慧来解决和完善自身的产品。当然这对个人和企业是一个双赢的局面,都可以免费学习和提升。不过对企业来说更有利,可以利用大众的智慧来快速解决和完善自身产品存在的问题,使新技术的成熟和应用周期大大缩短,开发更多的业务应用场景和触达更多的用户。也因此,对企业来说,选择一个合适的开源产品或组件是非常关键的前提。对个人来说可以随意开放自己的组件源码,成不成功并不是最重要的;而对企业来说,如果有没有一个好的规划和管控,开源软件难以获得预期的收益,反而需要很多的人力、管理维护等成本。所以,一定要明白开源的真正目的,并不是随便拿个组件跟风开源。

数字化时代人才最贵,如果能够利用好大众的智慧,对其来说将是巨大的帮助。如前所述,在企业宣传、生态建设、标准建设、市场开拓等方面都有巨大帮助,同时更有助于获取真实的市场需求。

4、开源引领技术发展趋势,得到最真实的技术需求,

开源在引领技术趋势的同时,很重要的一点是获取市场真实的需求。从客户那里的调查往往和最真实的需求是有差别的,因为很多客户根本不知道自己要什么,根本不理解技术的应用趋势和发展趋势。另外,客户往往基于自身的利益提出一些需求,并不一定是合理的需求。其实我也跟我们厂商一再强调过,自身需要具备区分合理性需求和不合理性需求的能力,不是客户提了需求就完全按照客户的要求实现,一定要经过思考、提炼、抽象、重组为产品级需求,而不是项目需求。而开源往往是优秀的人才的思维,具备全局和大局意识,能够更好的提出技术需求,认识技术发展和应用趋势。

开源存在的风险

开源有很多优点,但也有很多风险。

1、对企业用户而言,开源是最贵的

开源软件虽然免费,但需要专人来维护和跟踪开源的发展,而不是部署一个版本就万事大吉了。开源很重要的一个特点是不成熟、频繁变化的。因为技术不成熟,企业才需要将这些技术拿出来共同研究和完善,一旦成熟了,就没必要再开源了。因此,如果选择开源,往往会遇到各种各样的问题,需要有人能够深入学习和研究、跟踪,否则可能在使用过程中导致重大的问题,无人能够解决。另外,开源软件架构也往往会有很大的变更和迭代,甚至是不兼容,都会导致研发和迁移等众多的成本。

开源适合学习和测试,尝试新的技术和应用,但往往并不适合生产环境。相对于成熟的闭源软件,其人力投入成本等可能更多,相对更贵。

2、开源安全问题

今年攻防演练一个趋势是打供应链,而开源软件无疑是最好的切入点。开源软件源码是公开的,所有的漏洞都是公开的,如果企业使用众多的开源软件,在网络安全方面做的不够好,就很容易被打穿。还有一个很重要的问题是,开源软件在安全能力和安全管控方面并不强,也不受重视,甚至很多开源软件连基本的登录认证都没有,关注更多是其功能实现,因此,大部分开源软件都存在非常大的安全风险的。还有就是可能和当前企业的网络安全策略是矛盾的。典型比如云原生容器技术,期望的是一个大一统的网络,以软件来定义边界,但企业网络安全往往是划分很多安全域,通过硬件防火墙来进行隔离,容器虚拟网络和实际物理网络之间的互通导致管理复杂化,也会带来漏洞。还有诸如存储资源池等,挂载到不同的容器集群,就面临着防火墙端口开通等问题。因此,在使用开源软件时,需要特别关注安全问题 ,通常致命、高严重级别漏洞必须要立即着手处理修复,中、低级别漏洞可协调安排便利时间进行修复。

3、面临着随时闭源或断更等问题

开源软件面临的一个额外风险是随时修改l icense 可能闭源的问题。比如说C entO S,大家都习惯使用C entOS 几十年了,但厂商依然有权力根据自身发展需要修改服务协议,不再支持和提供服务。开源维护需要极大的精力和投入,虽然说企业从中也可以获得很多收益,但并不是一致都成正比,特别产品一旦成熟,投入和产出就可能不成正比,所以企业也需要调整服务协议。或者某些情况下,企业出于某种原因或开源更新难以为继时,就可能不得不停止更新。企业还是以追求利益为中心,开源只是一种手段,因此不能完全依赖开源,自身要真正具备自主研发的能力。

4、信创问题

利用开源推进信息技术创新其实是一个很好的方式。不过国内做的并不是很好。一方面在于国内企业和个人更关注个人利益和短期利益,缺乏持续的投入和奉献精神。另一方面,中小企业生存优先,没有能力持续投入,开源难以为继。国内更多是在开源基础上的封装,不过这也可能是深埋的地雷。特别一些以信创名义广泛推广的中间件等,和开源几乎没有太大区别。信息技术创新需要大企业的担当和责任,能够建设并推动中国开源社区的成熟,让更多的技术人员参与到开源中来,没有后顾之忧,真正做到自主可控。

数字化时代最重要的是人才。开源是聚集人才、培养数字化人才的重要渠道。用好开源对企业和个人、国家是多赢的局面。了解和认识开源的优势和风险,对开放开源和使用开源的企业和个人都是有意义的。企业可以选择合适的产品和组件开源以提升企业影响力、市场占有率,个人则可以学习和提升技术能力,建立自己的I P ,提升研发能力和竞争力。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广