书名:开源心法
ISBN:978-7-115-65997-2
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 任旭东 等
责任编辑 秦 健
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书全面介绍了华为在开源领域的实践和思考。首先,在认识开源部分,深入介绍了开源的起源、发展历程和底层逻辑;其次,在拥抱开源部分,揭示了华为积极参与和贡献开源的方式;然后,在践行开源部分,详细展示了华为在开源领域的具体实践和贡献;最后,在开源心法部分,深入探讨了华为对开源理念、价值观的理解和思考。此外,本书还剖析了开源产业、生态及文化的未来走向。本书旨在提供一个全面、深入的视角,让读者了解华为在开源领域的实践经验与思考,以及其对开源未来的展望和呼吁。无论是希望深入了解开源理念的新手,还是寻求在企业中实施开源战略的专业人士,都能从书中获得宝贵的知识和启示。
本书适合软件开发者、企业决策者、开源社区成员及对开源文化感兴趣的读者阅读。
开放共赢,携手伙伴,共筑繁荣生态
华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。发展生态一直是华为战略的重要组成,我们始终努力与伙伴一起共筑根生态,打造统一的开发者平台。立足中国,面向全球,实现共赢发展。围绕鲲鹏、昇腾、鸿蒙三大根技术,携手生态伙伴、开发者、高校和开源社区共建根生态。希望能聚集整个中国的技术力量,让生态伙伴在中国自己的黑土地上持续发展、壮大。
开源作为全人类的智慧结晶和协作模式,已经成为推动数字经济发展的重要引擎。开源有效拉通需求侧和供给侧,实现产品研发、应用同步进行,加速产品迭代升级,有效提升研发与应用的整体效能,助力打造完善的产业生态。
华为一直积极拥抱开源,既是开源的使用者,也是开源的贡献者和发起者。携手生态伙伴、开发者,共建基础软件开源生态体系,打造世界级开源项目,加速软件创新和生态繁荣。华为将openEuler及OpenHarmony两个项目累计上亿行代码、相关品牌以及社区基础设施贡献给开放原子开源基金会。在基金会和产学研伙伴的共同努力下,这两个项目已成为国内顶级的开源项目。2024年欧拉操作系统新增装机500万套,占中国全年新装机50%,是中国服务器操作系统第一选择,已成为国家数字基础设施的操作系统。以OpenHarmony为技术底座的鸿蒙生态设备达到10亿台,HarmonyOS NEXT正式启航。
华为坚持开源开放,推动开源产业平台建设。华为积极参与全球开源产业组织和项目治理,在全球25个主流开源基金会中拥有15个董事席位和多个亚洲唯一席位,拥有超过260个核心技术席位,持续为全球开源生态的繁荣贡献力量;牵引开源全球多极化,探索全球开源基金会间的多边合作机制,推动Eclipse、Linux、OIF等基金会的全球化布局,并促成Eclipse基金会Oniro项目与OpenHarmony项目的合作,实现了全球基金会双边合作的重要突破;作为首批白金捐赠人之一,与产业伙伴一同筹建了中国首个开源基金会,并作为副理事长单位,积极参与基金会的治理运作。同时,作为中国计算机学会开源发展委员会的发起者和核心贡献者,华为在学术研究、创新发展、人才培养上与各方展开了全面深入的合作。
面向未来,人才是构建产业生态的基石。我们围绕“学、练、训、赛”的成长路径,持续深化产教融合与科教融合,携手共建“智能基座”产教融合协同育人项目、鲲鹏昇腾科教创新卓越中心与孵化中心,通过将鲲鹏/昇腾/鸿蒙技术融入课堂教学与实验、开展前沿技术合作、提供创新课题资助、组织顶级专业竞赛、参与“开源雨林”与“开源之夏”等,旨在培养一批卓越人才,为产业的发展奠定坚实的人才基础。
《开源心法》一书遵循“通识—方法论—典型案例—实践思考—底层价值”的逻辑结构,首次全景展现了华为在开源领域从理论到实践、从参与到贡献、从关注项目和社区开发者到维护全球开源生态可持续的发展轨迹。书中强调了开源与数字化的结合日益紧密,开源创新对于推动企业的数字化转型具有重要作用,并建议企业通过拥抱开源来优化其数字化转型过程。事实上,已有数据显示超过90%的企业采用了开源软件,特别是在数据库、操作系统、中间件、编程语言等基础软件领域和应用软件领域。此外,书中还深入分析了众多产业案例,并介绍了开源领域的最新技术趋势,为广大开发者提供了一次宝贵的技术学习机会。
智能时代,未来已来,前路尚长。未来五年,华为仍将强力战略投资生态的发展,通过生态的发展牵引、促进、带动终端产业和计算产业的发展。“一花独放不是春,万紫千红春满园”。面对智能时代建设多样化生态的伟大机遇,华为愿意分享自身的经验和洞见,携手产学研、政府及广大开发者,探索属于各自的“开源心法”,共同促进开源生态的繁荣发展。为推动中国软件根生态的繁荣、健康发展贡献我们的力量!
汪涛
华为公司常务董事
当前全球开源运动正蓬勃发展。作为一种创新的协作模式,开源已经成为新时代的创新引擎。尽管开源起源于欧美国家并在那里繁荣发展,但随着中国科技创新能力的迅速提升,中国的开源实践已经走过了“学习借鉴”和“参与融入”两个阶段,呈现出“蓄势引领”的积极态势。其中一个重要标志是,包括华为在内的一批优秀的中国科技创新企业正从开源的参与者转变为主导者,并取得了显著成就。当前,美国依然是开源创新的领军者。那么,在智能化时代,中国能否孕育出新的世界级开源生态的主导者?围绕这个话题,我想分享3点认识。
首先,开源为什么能够取得成功?回顾历史,开放软件源代码的自由软件运动始于20世纪80年代,当时个人计算机和软件产业刚刚兴起。作为商业软件闭源模式的挑战者,自由软件起初并未成为主流,其发展过程颇为“煎熬”。然而,在互联网时代,开源却成了主流范式,变得异常“光鲜”。这背后的原因是什么?我认为,一个重要原因是,在个人计算机时代,开源并未获得商业上的成功,而在互联网时代,开源则实现了巨大的商业成就。其中,开源的4个特点成为其成功的关键因素:开源是应对不确定性的重要创新手段;开源是激励创新者群智协作的重要工具;开源是破除行业垄断的有效途径;开源是产业在“阳光”下安全发展的重要保障。20世纪90年代,微软已经成为个人计算机软件行业的主导者,并试图利用其闭源垄断地位来继续垄断刚刚兴起的互联网产业。Google作为挑战者,坚持采用开源创新的发展模式,成功地对抗了微软的企图。
其次,在智能化时代,开源创新是否能够继续成功?我认为,与互联网时代的开源成功相比,智能化时代的4个开源逻辑依然未变。第一,开源作为应对不确定性的重要创新手段的内在逻辑未变。有一种观点认为,自ChatGPT出现之后,人工智能大模型的主流技术路线已经确定,这似乎表明人工智能技术路线的不确定性已经消失,开源发展的成功生态土壤不复存在。然而,大模型解决问题的潜力仍然存在巨大的不确定性。即使经过了两年的发展,如何利用这些大模型引领产业进步,仍然具有很大的不确定性,多元化的生态产业实践模式将不可阻挡。现在看来,智能化时代将是一个更加不确定性的时代。第二,开源作为激励创新者群智协作的重要工具的内在逻辑未变。无论是在学术界还是产业界,大量的人工智能研究人员和开发者更倾向于开放自己的最新成果,以获得同行的关注和参与。第三,开源作为破除行业垄断的有效途径的内在逻辑未变。人工智能发展至今,产业界更加希望借助开源机制打破行业垄断。起初,OpenAI以挑战人工智能垄断者的姿态出现,声称走开源开放的道路。然而,当它在AIGC领域取得领先地位之后,开始放弃这条路线。随后,Meta等企业接过了开源的大旗,挑战那些采取闭源策略的企业,逐渐吸引了大量追随者。第四,在人工智能时代,开源作为事实上的“阳光”策略,保障其安全发展的手段的内在逻辑未变。相比于少数人声称由他们负责人工智能安全的观点,人们更加倾向于通过开源的方式,即依靠大众的眼睛和参与来确保人工智能的安全发展。因此,可以预见,在智能化时代,开源创新仍将是主流模式。
最后,在智能化时代,中国如何从开源的参与者转变为主导者?我认为,建立“有为政府”“有效市场”和“有机社会”三者相互作用的开源治理模式,是实现中国特色开源新生态、引领开源发展的关键。“有为政府”强调政府部门在推动开源发展和落地中的引领作用,包括指导成立开源创新联合体、发布与开源相关的政策和法规,以及进行开源发展的顶层设计。作为“有效市场”的主体,创新企业应逐步增强基于开源的创新能力,成为贡献开源、发起开源的引领者。“有机社会”则强调社会各界的积极参与,这既包括大学和科研机构,也包括学会、协会及开源基金会等社会组织,它们需要有序地参与到开源活动中来。通过这3种力量的相互作用,中国能够快速推进“蓄势引领”的趋势,持续推动中国开源创新向主导者转变,构建一个更加开放、共享与协作的开源新生态系统。
《开源心法》一书的显著特点在于,它在全球开源发展的大背景下审视中国的开源实践。这本书不仅涵盖了开源的基础知识,还汇集了华为在开源领域的治理与运营策略、项目经验案例,以及对开源底层逻辑的深刻思考。书中还展示了华为在推动开源发展方面的不懈努力。通过介绍openEuler、OpenHarmony、MindSpore、KubeEdge等项目,书中展现了中国在开源领域自主发展的实力与潜力。它不仅为读者提供了深入理解开源的机会,也为那些希望在开源领域作出贡献的人士提供了实用指南。
开源不仅是一种实践科学,更是一种文化和精神的象征。它涵盖了开源的开发、治理与运营,并鼓励创新、协作与共享。通过“有为政府”“有效市场”和“有机社会”三者的高效协同,我们见证着一个更加开放、协作的开源生态系统的形成。我们坚信,中国必将开拓出一条具有中国特色的开源道路,为全球开源事业贡献智慧。
王怀民
中国科学院院士
中国计算机学会开源发展委员会主任
《开源心法》走出中国开源之路
软件“吞噬”世界,而开源“吞噬”软件。全球究竟有多少开源项目?截至2023年底,GitHub上的开源项目数量已达到2.8亿个,几乎涵盖了所有商业软件和你能想到的各种工具。
全球数字经济和科技创新的基础是开源技术。从互联网到移动互联网,从大数据到云计算,再到深度学习与大模型,过去30年信息技术的发展很大程度上是由开源生态系统推动的。
长期以来,中国一直是开源技术生态的应用国。近十年来,随着中国科技巨头对开源创新的支持与投入,中国自主研发的开源技术项目取得了显著进步。华为在Linux内核贡献度方面已位居全球首位,阿里巴巴、百度、腾讯等公司也开源了成百上千个项目。然而,相较于美国,中国在关键开源生态和开源产业方面仍存在差距。
中国是否有必要发展自己的开源生态,或者在全球开源技术生态中争取更多的话语权?我的回答是非常有必要。原因有两点:第一点,开源同样受到地缘政治的影响,最近Linus Torvalds将俄罗斯贡献者从Linux内核维护名单中移除就是一个典型案例;第二点,掌握关键开源核心技术的话语权具有重要意义,例如Google通过掌握Android操作系统能够在该平台上更好地推广自家应用,又如英特尔长期致力于Linux内核的人力投入,以确保Linux操作系统能够更有效地支持其芯片产品。
中国该如何发展开源生态?开源生态发展的关键包括开源技术的核心开发者、头部企业及资本和市场。
中国从来不缺乏优秀的开源开发者,无论是数量还是质量,中国的顶尖开发者都不逊色于美国。然而,与美国相比,中国头部企业在开源生态的投入方面还有较大的差距。开源的发展壮大离不开头部企业的支持,例如Linux内核得益于IBM、英特尔等的大力支持与投入。大数据关键技术如Yahoo的Hadoop和Rackspace的OpenStack,以及Meta在大模型时代推出的Llama,都是由头部企业推动的。
为什么美国的头部企业会大力发展开源生态?关键在于发展开源对企业具有战略意义。微软就是一个典型案例。在鲍尔默担任CEO期间,微软排斥开源,而纳德拉上任后重新规划了公司战略,向企业和开发者提供云服务,全面支持Linux操作系统和PHP,后续更是收购了GitHub,将开发工具Visual Studio Code和.NET框架开源,从而推动了微软云计算业务的大发展。
在中国,华为拥有清晰的开源生态战略。《开源心法》一书全面介绍了华为从使用开源、参与开源到发起开源的十多年历程。华为在大型企业内部建立了开源组织架构和系统性的行动框架,并推出了openEuler、OpenHarmony、MindSpore等重量级的开源项目,形成了开源生态的全面发展。这本书不仅展现了华为在开源决策和执行方面的经验与体系,而且包含了企业战略的高度、落地的方法细则及开源人的情怀。书中对开源的历史、文化、技术和商业进行了全面分析,对于当前中国发展开源生态具有极高的参考价值。
CSDN作为国内推广开源文化的先驱技术社区,一直致力于将开源理念和技术普及给每一位开发者。书中提到的GitCode项目是CSDN自2020年起打造的新一代开发者代码平台,它结合了AI大模型工具链,旨在发展中国自己的“GitHub”。同时,也期望更多的头部企业能全面发展开源技术生态。
在开源产业的资本市场方面,中国相对落后,这实际上制约了中国开源技术创新的发展。
尽管开源文化的核心在于创新、共享和开放,但如果没有商业化的路径和体系,就不会有今天开源体系的全面繁荣。许多关键开源项目的创始人来自欧洲,例如GitLab、Nginx、ClickHouse、Hugging Face等,然而,由于欧洲缺乏成熟的开源技术资本市场,这些创始人大多在美国获得投资并成立公司,进而发展成为价值数十亿美元的企业。只有当人才、市场和资本三者有机结合时,才能实现大发展。
为什么资本要投资开源项目呢?这是因为开源已成为创新技术产品型企业发展的利器。《创新者的窘境》一书揭示了大企业内部进行颠覆性创新的难度,而开源技术企业往往从初创公司起步,其具备强大的创新能力,能够解决市场上某些关键技术痛点。通过开源,这些企业可以获得开发者的认可和客户的使用,这就是所谓的“开发者主导增长”(Developer Led Growth,DLG)技术产品商业化发展策略。借助资本的投资和DLG策略,许多优秀的开源独角兽企业应运而生。
然而,中国企业的决策者对采购开源技术的认知尚显不足,大多数企业的需求往往局限于对开源项目的定制化开发,导致开源开发模式成为低效的人力密集型交付方式,从而阻碍了中国开源技术企业的发展壮大。
随着中国电商、游戏和电动车产业走向全球,新一轮的技术革命正伴随着AI大模型的发展而展开,开源生态范式也在经历重大变革。大模型的成本将大幅降低,“人人都是开发者,行行都在智能化”的趋势愈发明显。所有软件工具都需要重构,各行各业的企业都需要进行数字化和智能化升级。
中国拥有丰富的开源人才资源,只要形成规模化、有组织的开源产业市场,并得到关键头部企业和耐心资本的支持,我相信中国的开源生态系统将走向全世界。希望更多的企业和人才能够通过《开源心法》这本书加入这一大潮,共同开创下一个开源新时代。
蒋涛
CSDN创始人、董事长
近年来,我国在开源领域取得了显著进步,逐渐培养出自主创新的能力。我深刻体会到开源教育在培养软件产业人才、加速AI技术落地、推进科技可持续发展方面的重要作用。探索我国开源创新人才的培养路径,推动开源软件生态建设,以及提升软件人才与关键软件技术创新和供给能力,是当前的首要任务。
除了教育系统中的课程教学、实验实践和科研以外,如何将开源理念深入民间,使其成为科技工作者和从业者乃至现代科学技术思维的一部分,也是我近年来持续思考的问题。我认为,在面向现代化、面向世界和未来的教育中,开源思维的力量不可或缺。
当受邀为《开源心法》这本书作序时,我突然意识到,参与市场的企业主体正成为普及开源文化和教育的主力军。翻阅这本书,可以看到它涵盖了通识、实践和理论,无疑是一本全面了解开源的优秀普及读物。
作为教育工作者,我们也希望通过这样的普及性资料获得市场的反馈和声音,以便更有效地推动基于优秀国产开源成果的课程体系设计、师资队伍建设及培养计划制订,从而支持国产开源软件形成可持续发展的生态。同时,我们在培养计算机软件创新人才的过程中,也需要与企业共同探索开源文化,并不断提升开源技能。通过企业的带动,技术从业者可以在高校软件成果开源的评价机制和价值导向方面提供更多有价值的方向和有益的建议,从而促进更多原创性成果的产出。
开源作为一种创新的软件开发协作模式,一方面,对于国家的教育战略导向极为重要;另一方面,其构建还需要深入到每一位开发者的思维意识中,真正实现“从开发者中来,到开发者中去”。只有每一位开发者都从自身经验出发,通过对每段代码和每个产品的深入理解与思考,并与他人协作达成共识,才能真正体现开源的理念。
通过《开源心法》这本书,我们可以看到,一个更加开放、协作的数字世界正在形成,而中国在这个过程中正扮演着越来越重要的角色。同时,开源倡导的创新、协作和共享精神,在信息技术迅猛发展的今天显得尤为珍贵。这些价值的实现需要不断地积累、整合和重塑。因此,我们应当携手合作,共同创造并见证开源时代的未来。
夏树涛
清华大学教授
清华大学深圳国际研究生院计算机科学与技术研究所所长
企业如何开源
软件仿佛是撬动现实世界的杠杆。自软件问世以来,物理世界就像被施了魔法一般,普遍受益于“摩尔定律”的神奇“法术”。在现实世界的每一个角落,但凡软件触及之处,都会变得更加美好、经济、高效及适应性强,并且对人类更加有益。互联网、云技术及人工智能的发展无不证明了这一点,而智能汽车和人形机器人的进步也将再次验证这一趋势。
随着全球数字化和智能化的不断演进,软件正在“吞噬”世界,而开源则在“吞噬”软件。开源的话题越来越受到重视。那么,开源究竟是什么?它与企业的关系如何?企业又该如何参与甚至发起开源项目?这些问题并没有标准答案。但毫无疑问,这些问题的答案影响深远:小至关乎企业产品的竞争力,中至影响企业在数字产业生态中的地位——是附属还是领导,大至涉及一个国家或一个产业在软件和生态布局方面的战略选择。因此,这些问题值得我们深入探讨和思考。
面对非同寻常的难题,我们需要非同寻常的答案,而这些答案必然源自非同寻常的洞见。
开源是全人类智慧的结晶和协作模式。华为一直积极拥抱开源,既是开源的使用者,也是贡献者和发起者。在华为,开源被视为一种产业发展手段,服务于商业,并通过商业的正向循环实现开源的可持续和健康发展。
自2008年起,华为有意识地参与到开源社区中,经历了从使用开源、参与开源到主动开源的不同阶段。特别是从2015年开始,华为主动开源并贡献了多个重量级项目。经过近十年系统化的主动开源探索,华为内部形成了一整套关于开源协作的思考、行动模式及框架,可以说基本形成了自身的企业开源文化、理念和方法论。经过二十余年的积累,华为从一个开源软件的用户和追随者成长为开源项目和社区的重要贡献者,成为开源生态建设中不可或缺的力量。在这个过程中,华为团队对开源的理解也在不断深化。
回到最初的问题:企业如何开源?作为开源生态系统中的重要成员,企业又该如何定义“开源”呢?基于多年在开源领域的从业经验和思考,我们逐渐认识到,要真正理解开源的本质,需要亲身投入开源生态中,不断深化、反思和重构对开源各个层面的认知。
我们希望通过华为在开源历程中的具体实践和不断落地的项目来回答这个问题。企业作为市场和创新的主体,不仅拥有广泛的开发者群体,还与社区和基金会紧密相连。同时,作为开源项目的主要发起方,企业必然成为推动开源生态建设的重要力量。因此,我们希望通过记录企业在开源生态中的参与过程,展示经过二十余年的努力完成的工作、获得的收获、经历的思考及积累的经验。本书的写作初衷是面向产业伙伴、软件企业,以及围绕开源生态和创新展开工作的高校、企业和各产业组织(如基金会、协会、联盟等)的相关从业者,分享我们的实践经验。以这样一种“开源”的方式,共同探索和思考中国的开源实践。
我们认为,在智能化时代,生态生产力=(开发者+程序和算法+开发工具)开源指数×科技创新。除了科技创新的乘数效应以外,开源软件作为数字资产,在全球开发者和企业的推动下,其在数字空间中的开源代码流动性将为生产力的提升带来指数级效应,并成为衡量生态型产业生产力效能高低的重要指标。
伟大的时代往往就是这样开启的:当门被推开时,并没有引起太多注意,人们尚在沉睡,只有在光照进来之后,人们才被唤醒,发出赞叹之声。
作者
近年来,“开源”已成为业界的热点话题,言必称“开源”似乎成了一种时尚。放眼全球,一方面,全球领先的企业如微软、Google、AWS等不断加大在开源领域的贡献和投入,企业对开源的贡献达到了前所未有的水平;另一方面,随着云原生、区块链、元宇宙、生成式人工智能等新兴技术的迅猛发展,开源已经成为一种“必然”。
从国家层面来看,美国的开源体系较为全面,由高校、大企业、最终企业用户、开源基金会、开源基础设施企业及出版社、法务工作者等共同构成,在全球独树一帜。中国目前的开源发展也如火如荼,自“开源”被写入国家“十四五”规划以来,3年间,越来越多的企业开始拥抱开源,使其成为服务商业和经济建设的重要力量。中国开源正从“全面参与”向“蓄势引领”过渡,国内对开源表现出前所未有的热情。
然而,尽管国内部分领先企业已经取得了显著成效,但由于开源土壤仍待开发、开源文化尚需要普及,以及开源开发者群体还有较大的成长空间等因素,开源在中国仍然缺乏根基。因此,我们迫切需要系统全面地梳理开源通识、分享开源设计,并介绍企业开源实践,以提高国内的整体开源水平。
以下是对中国开源体系建设的一些思考,供广大读者参考。
● 强化开源发展的引领作用。将促进开源发展纳入国民经济和社会发展、制造业高质量发展、教育发展、科技创新、数字政府建设等专项规划。
● 推进产业试点应用布局。在产业集聚地区,先行先试建设开源示范区,积极探索资产评估、人才培养、产融对接等方面的工作。围绕产业集群布局,遴选项目予以支持。
● 推动开源成果共享。在确保安全可控的前提下,推动软件产品或信息化项目尽可能开源共享。积极推动将开源及其衍生技术产品纳入采购目录和框架协议范围。
● 推进开源服务组织建设。加强与国家级开源基金会的对接,依托开源龙头企业、技术创新中心、高校院所等,打造开源发展产业服务平台。
● 积极培育优质开源项目。支持软件和信息技术服务业的龙头骨干企业,围绕人工智能、工业软件、云原生、大数据、操作系统、数据库、区块链等重点领域培育开源项目。
● 支持开源商业化企业发展。鼓励企业基于优势开源项目开发商业化的开源产品及服务。
● 加强开源教育和人才培养。加强与开源企业的合作交流,举办开源讲堂、开源社团、开源竞赛等活动,共建开源实训基地,实现产教融合,协同推进开源教育。
● 加强开源安全服务能力。依托第三方服务机构建设开源技术公共服务平台,建设可信开源组件库,统筹开源软件的评估、选型、应用、培训等工作。
开源,作为全人类智慧的结晶和协作的典范,为培育新质生产力提供了强大的动力。然而,当我们试图从企业的视角来学习开源时,发现市场上从企业视角介绍开源的图书资料寥寥无几。为何不借助开源的创造精神,创造一本新的呢?这也算是对国内开源发展作出的一份贡献。正是在这种“冲动”想法的推动下,这本书的编写工作开始了。
本书旨在为开源技术开发者、从业者、企业管理者及对开源感兴趣的爱好者提供内容。本书内容涵盖了开源历史事件、理论新知和方法实践等,适合希望对开源领域有入门级通识性了解的读者阅读。
以下是可能从本书中受益的用户团体和个人:
● 企业开源团队的相关人员;
● 开源项目办公室的相关人员;
● 开源项目的运营人员;
● 其他使用开源技术、积极参与开源活动的团队和个人。
本书内容分为5篇,下面分别介绍。
在第一篇“认识开源”中,以开源发展的历程为主线,分为“开源简史”“开源与现代化”和“开源企业概览”3章。其中,“开源简史”从开源概念的起源讲起,回顾历史上国内外发生的重大开源事件,并从历史脉络中深入梳理开源的底层逻辑;“开源与现代化”探讨开源与创新、商业模式、数字化转型等现代化概念之间的潜在联系与相互作用;“开源企业概览”则主要从“国际化标杆企业”以及“华为开源历程”的角度,介绍企业在开源领域的发展成就。
第二篇“拥抱开源”紧接第一篇,在简要介绍华为开源历程中的各个阶段后,详细讨论了华为在“使用开源、贡献开源、主动开源”3个发展阶段中的开源体系和平台建设、不同层次的贡献,以及在主动开源阶段形成的方法论和实践经验。这些内容包括开源原则、企业开源策略设计、面向开源社区的治理与运营,以及度量与评估,旨在解答企业为什么开源、开源什么以及如何开源的问题。同时,以华为开源的组织设计作为案例供其他企业参考。
第三篇“践行开源”在方法论指导下,介绍了华为开源的3个重点项目和5个明星项目。其中,openEuler、OpenHarmony在完成技术框架和运营基础设施建设后,项目被贡献给开放原子开源基金会,并分别建立了项目群;KubeEdge、Volcano、Karmada则被托管至CNCF。这一篇针对项目的阶段性特点,简要介绍了各个项目的技术架构、治理与运营,以及开源生态和社会价值等方面的建设情况。
第四篇“开源心法”分为“开源群像”和“开源之思”两个部分。“开源群像”部分呈现了华为开源历程中沉淀的一些开源建设的关键要点。这些要点包括开源安全、开源社区运营和数字化度量、开源人才培养与标准建设,以及在生态上游和企业内部的开源实践。同时,“开源之思”部分分享了华为在开源建设过程中的深入思考和价值理念。
在第五篇“未来已来”中,我们尝试从人类文明发展的时空维度寻找开源作为文明产物的逻辑线索,并剖析开源产业、生态及文化的未来走向。这无疑是一场充满想象力的开源之旅。
由于作者水平有限,加之编写时间紧迫,书中可能存在一些错误或者不准确之处,恳请各位读者不吝赐教,提出宝贵的批评和指正意见。
感谢开源社区中每一位充满创意和活力的朋友——感谢你们长期对社区的支持和贡献,正是你们的不懈努力和奉献,为开源带来了新的希望。
感谢人民邮电出版社的编辑团队,从本书的立项到最终付梓,是你们的努力使本书得以顺利完成。同时,也要感谢杨阳女士在图书写作过程中给予我们的支持与帮助。
希望本书能为国内正在推进的开源事业种下一粒种子。开源,这一伟大时代的大门刚刚开启,衷心希望本书能成为照亮开源大门的一束光。
谨以此书献给我们热爱的开源事业。最后,衷心希望本书的读者能够从中获得知识与启发。
作者
从人类起源的更广阔视角观察,文明的根源可能就蕴含着开源的精神。正是协作与分享,赋予了原始人类以集体之力,在远古的蛮荒环境中得以生存。
要深刻理解任何事物,最有效的方法是追溯其历史。亚里士多德,被誉为人类历史上的首位百科全书式哲学家,提出了“四因说”,这是一种通过分析形式因、质料因、动力因和目的因来理解变化事物的方法。虽然乍一看似乎复杂,但其实质是指导我们从事物的外在表现、内在构成、驱动力量和终极目标4个维度去深入探究。而这种细致入微的洞察,往往需要我们从历史的角度进行细致的梳理和深入的挖掘。
同样,当我们试图全面理解开源时,也应当从其历史发展的脉络着手。开源的概念和定义是如何演化至今的?在这些概念和定义之下,又包含了哪些构成要素或内涵的扩展?开源的发展历程中,哪些关键事件推动了其前进,背后的深层逻辑是什么?开源如何成为现代化进程中的关键力量?此外,包括华为在内的国内外领军企业,在开源领域又经历了怎样的历史进程?本篇将对这些问题提供详尽的解析。
在20世纪中期,互联网技术和电信网络的研究者们在一种互助的研究氛围中培养了开放和协作的精神。许多科技公司的软件也自由地分发。但很快,基于版权和限制性许可证的专有软件开始兴起,并逐渐成为行业的主流。面对自由精神的逐渐丧失,崇尚黑客文化的开发者们开始采取行动。1983年,Richard Stallman启动了“GNU计划”,这成为“自由软件运动”兴起的标志性事件。
然而,尽管自由的精神鼓舞人心,但“自由软件”(Free Software)中Free一词的双重含义——既指“自由”也指“免费”——却构成了对其理解的一个主要障碍。如果人们仅将Free理解为“免费”,这不仅可能偏离自由软件的初始精神,也可能给软件的商业实践带来挑战。
那么,如何让概念聚焦在“开放源代码”上?这一议题在1998年Foresight Institute的会议上被提出[1]。当时,与会者在探讨计算机安全问题时认识到,需要一个新术语来描述那些用户可以自由访问和修改源代码的软件。Eric S. Raymond参与了会议,并根据讨论,他列出了3个可能的选项——Free Software(自由软件)、Open Source(开源)和Sourceware(源软件)。最终,与会者决定采用Open Source这一术语。自此,“开源”一词开始在编程界、产业界和媒体中迅速传播,并逐渐被广泛采纳。
[1] Christine Peterson,“How I coined the term ‘open source’”。
“开源”作为一个将自由软件的理念与现代商业实践相结合的概念,一方面,它界定了在开源框架下软件的生产和运营等业务活动;另一方面,它延续了自由软件所倡导的自由权利,即“用户自由查看源代码、自由修改、再分发,以及自由获取和使用源代码”。
“开源”概念确立后,界定这一概念的任务变得迫切。这一任务由开放源代码促进会(Open Source Initiative,OSI)完成。OSI基于Debian自由软件指导方针,制定了开源定义(The Open Source Definition,简称OSD),其中包含10项基本原则(更多细节,请参见6.1.1节)。
基于上述定义,OSI发布了首份正式的许可证清单,其中包括GNU通用公共许可证(General Public License,GPL)、GNU宽松通用公共许可证(Lesser General Public License,LGPL)、BSD(Berkeley Software Distribution)许可证等。为了支持新兴的Apache Web服务器项目,Apache软件基金会于1999年成立,并发布了至今仍广泛使用的Apache许可证。
此外,还有MIT(The MIT License)许可证、MPL(Mozilla Public License)许可证等,这些许可证不仅促进了开源软件在产业中的广泛应用,也确保了开源基本原则在实践中得到贯彻。
2019年,中国发布了首个开源许可证——木兰宽松许可证(Mulan Permissive Software License,Mulan PSL)。2020年,木兰宽松许可证2.0版本(Mulan PSL 2.0)获得OSI的批准,正式成为国际化的开源许可证。
自开源概念诞生以来,其内涵不断扩展和深化。最初,开源主要关注软件领域,但随着时间推移,它逐渐展现出社会化特征。如今,开源已经涵盖了开源技术、开源项目、开源社区、开源基金会、开源商业、开源理念、开源文化、开源创新及开源生态等多个方面,共同推动了开源概念的扩展和深化。
● 开源技术:指的是源代码可以公开访问、查看、使用和修改的技术,如Linux操作系统、Python语言、MySQL数据库、Apache服务器、Kubernetes容器编排技术等。
● 开源项目:指的是那些源代码获得许可并公开可用的项目。在这些项目中,贡献的代码是非常重要的,它可以来自公司或个人。开源项目构成了开源社区的基础,其运营质量直接影响着社区的发展水平。
● 开源社区:由开源项目、项目发起者、维护者、贡献者、用户及项目周边的生态系统等组成。社区成员通过共享技术、知识、经验和资源,共同致力于开发、维护和推广开源项目。
● 开源基金会:指的是为了维护开源项目、托管代码,以及推广开源原则和标准等而成立的非营利组织。自早期的自由软件基金会成立以来,已经出现了Apache软件基金会、Linux基金会、Mozilla基金会、Eclipse基金会、OpenInfra基金会等数十个开源基金会,近年来,国内也成立了首个开源基金会——开放原子开源基金会。
● 开源商业:指的是基于开源软件和开源项目进行的商业运营和实践。这种模式包括在提供开源软件的基础上,通过付费支持、服务或者特定产品功能来实现盈利,从而成为开源服务提供商;或者将开源软件作为基础设施,以减少企业重复开发的成本;此外,还可以通过资助开源项目等方式支持开源生态系统的建设与发展。
● 开源理念:源于自由、共享和协作等理念。这些理念不仅是人类文明发展中的基因传承,也是自然界秩序的基本逻辑。
● 开源文化:包括开源价值观和行为准则。与开源理念相比,它更侧重于个体的主观价值判断,并强调集体品质。开源的价值观及准则包括奉献精神、感恩意识、开放精神等。
● 开源创新:指的是将开源的理念和文化作为推动技术进步的创新手段。例如,开源数字化治理就是利用开源所倡导的开放性、透明度和协作精神来推动数字化治理的一种实践方式。
● 开源生态:广义上,包括所有与开源相关的物理层面、社群组织及思想精神,它们共同构建了一个复杂的系统;狭义上,是指以开源项目为核心,通过开发者社区的协作,形成的日常运营的开源生态系统。
从自由软件的提出到开源概念的出现,再到开源定义的明确化,如今开源的内涵已经非常广泛,并形成了不断演化的生态系统。
开源从最初的萌芽到发展成为一个成熟的生态系统,已经走过半个多世纪的历程。它经历了缓慢的孕育期、早期的发展期、加速成长期,直至今日的稳定与繁荣期。在这个过程中,无数的开源贡献者为生态的繁荣贡献了自己的力量。其中,一些贡献者开发了具有深远影响的优秀开源项目;一些推动了开源文化运动的进一步发展;还有一些通过创建开源组织,为开发者提供了贡献代码、开放交流和组织活动的平台。这些努力共同塑造了如今繁荣的开源生态系统。
在20世纪90年代之前,对于中国,开源还是一个新兴的概念。那么,缺乏开源基因的中国产业界在这30多年间是如何不断克服自身的不足,以适应全球开源的潮流的呢?
开源的种子在20世纪50年代计算机发展的早期就已经播下。当时,计算机是研究人员和学者共享的大型设备,由于该领域良好的协作精神以及仍未形成商业化趋势,软件作为硬件的附带品能够自由地被分享。这一时期为开源的发展打下了坚实的基础。
UNIX操作系统的起源可以追溯到20世纪60年代中期。作为开源软件运动的先驱,它为后续众多开源项目奠定了基础。
1969年,互联网的前身ARPANET(阿帕网)诞生。它的出现让开发人员能够更便捷地与全球的其他开发者合作,为今天广泛使用的国际互联网的形成奠定了基础。
20世纪60年代和70年代,商业软件的兴起对这种开放方式提出了挑战,具有更严格许可的专有软件应用渐成常态。
20世纪80年代,为了创建一个完全自由的操作系统,GNU项目应运而生,旨在挑战如MS-DOS(微软磁盘操作系统)等专有系统的主导地位。这标志着一个重要的转折点,它引入了Copyleft许可证的概念,该概念允许用户自由地修改和重新分发软件。
1985年,支持GNU项目的自由软件基金会成立,并于1989年推出GNU通用公共许可证。这一许可证的推出进一步推动了开源软件的发展,确立了开源软件的自由使用、修改和分发的原则。
在20世纪90年代,互联网的兴起为自由软件的协作与共享提供了一个理想的平台。1991年,搭配GNU套件的Linux内核首次发布,迅速吸引了广泛的关注。随后,Linux 1.0版本于1994年正式发布。此外,诸如Apache Web服务器和Python语言等自由软件项目陆续推出,自由软件项目的数量开始激增。
1998年,“开源”这一概念应运而生。随后成立的OSI为开源软件提供了一套定义指南。OSI的首要任务之一是起草开源的定义,并基于此创建了许可证列表。同年,Mozilla开源项目也正式启动。2002年,Mozilla 1.0浏览器发布。2003年,Mozilla基金会成立,继续维护和支持该项目的进展。
1999年,Apache软件基金会成立,其项目涵盖了多个领域,包括Web服务器、数据库、编程语言、容器技术、人工智能和机器学习等。其中,Apache HTTP Server、Hadoop、Spark、Kafka和Cassandra等项目已广为人知。
2000年,Linux基金会的前身——开放源代码开发实验室(Open Source Development Labs,OSDL)成立。2007年OSDL与自由标准组织(Free Standards Group,FSG)合并,共同成立了Linux基金会。
1991年,对中国开源来说是一个启蒙之年。在这一年,中国与AT&T Bell Laboratories USL/USG展开了合作,引进了UNIX SVR 4.2 版本的源代码,并发布了其中文版本。紧接着的第二年,中方与AT&T USG合资,在中国成立了中国UNIX公司。
1997年,在早期开源贡献者的引领和国家信息中心的支持下,“中国自由软件库”在中国经济信息网上建立。这为国内技术人员提供了一个了解、学习和使用Linux操作系统及相关开源软件的平台,极大地便利了他们。
1998年,中国的早期开源贡献者分别开发了Linux虚拟服务系统(Linux Virtual Server,LVS)和嵌入式系统的图形界面系统MiniGui。LVS被Linux内核收录,成为搭载Linux操作系统集群服务器的重要核心软件组件。MiniGui则在手机、数码相框、工业控制系统和工业仪表中得到了广泛应用。同年,中国首个开源社区——阿卡社区(AKA)成立,培养了中国最早的一批Linux操作系统开发人才,这标志着开源生态在中国的初步形成。
1999年,红旗Linux操作系统和RedOffice的中文版研发工作正式启动,它们基于Linux操作系统和OpenOffice进行了本地化的开发工作。
2000年,在“863计划”的支持下,国内高校、研究院所、IT企业联合发起成立了“共创软件联盟”(以下简称联盟)。联盟在开源许可证的规范下,对“863计划”的软件成果进行了开源培育和孵化。联盟提出了“开放源代码协同创新模式”,为中国开源软件的发展探索了一条可行的路径。
2001年,随着中国加入世界贸易组织,外资公司开始在中国设立开源技术中心,这进一步培养了大量开源领域的专业人才。
2001年,随着互联网泡沫的破裂,许多在纳斯达克上市的科技企业遭受了沉重打击。在这一背景下,免费的Linux操作系统逐渐成为企业级服务器和互联网基础设施的首选,这标志着开源操作系统在商业应用领域的突破。
2004年,基于Netscape Navigator代码库的Mozilla Firefox开源浏览器开始挑战IE(Internet Explorer)浏览器的市场主导地位,其成功展示了开源软件的巨大潜力。同年,Eclipse基金会宣告成立。
2005年,Git版本控制系统发布,并迅速成为最受欢迎的分布式版本控制系统。它彻底改变了软件开发的方式。
2008年,基于Linux内核的Android操作系统发布,这标志着移动开源软件发展的新纪元。同年,GitHub网站上线,提供Git代码仓库托管和基本的Web管理界面。
2010年左右,随着云计算的兴起和云原生概念的提出,加之云基础设施和容器技术的强大发展,催生了Eucalyptus、OpenStack、Kubernetes等开源云计算平台和容器化应用。
从2014年开始,一些原本闭源的系统软件开始转向开源。例如,.NET Framework的核心部分在Windows操作系统下实现了开源,随后,SQL Server数据库也被移植到了Linux平台。这些举措标志着开源生态开始向商业领域的更深层次扩展。
2015年,Linux基金会成立了云原生计算基金会(Cloud Native Computing Foundation,CNCF)。RISC-V基金会也在这一年成立,致力于推广RISC-V这一开源指令集架构。在这一时期,TensorFlow、PyTorch等开源机器学习框架陆续发布并迅速普及,极大地增强了人工智能技术的开放性和可访问性。
2018年,GitHub网站,作为全球最大的代码托管平台,以75亿美元[2]的价格被收购。这一交易成为载入史册的开源交易之一,进一步凸显了开源在商业价值和战略上的重要性。同年,第一代生成式预训练开源模型GPT(Generative Pre-trained Transformer)发布,该模型拥有1.17亿个参数,在自然语言处理领域表现出色。
[2] 2018年,1美元大约可以兑换6.6元人民币。
2002年,由中国Linux公社的社区会员和Linux爱好者共同制作的中文Linux发行版——Magic Linux发布。这标志着中国首个由社区发行的Linux版本诞生。
2003年,IBM中国Linux解决方案中心在北京中关村软件园正式投入运营。
2004年,中国、日本和韩国在北京签署了《中国信息产业部、日本经济产业省、韩国情报通信部开放源代码软件合作备忘录》,旨在促进3国在开放源代码领域的合作与发展。
2006年,首届中国Linux内核开发者大会成功举办,并延续至今,成为中国开源领域重要的开发者交流平台,通过这一会议不断挖掘和培养开源领域的核心技术人才。
2008年,Linux(Kernel)、Apache、OpenOffice等国际知名开源社区在北京举办了全球技术峰会,这是国际开源组织首次在亚洲国家举办技术峰会。
2010年,Linux基金会在中国设立了首个分支机构,致力于推动Linux操作系统在中国的普及与应用。
2012年,Tinker作为Android热修复解决方案库被开源,为开发者提供了便利。
2013年,Gitee和CODE两个代码托管平台相继上线,为开发者社区提供了代码管理和协作的新选择。
2015年,国务院在《关于积极推进“互联网+”行动的指导意见》中提出,要大力发展开源社区,并鼓励企业自主研发,同时通过国家科技计划(包括专项、基金等)支持形成的软件成果,借助互联网向社会开源。
2016年,分布式SDN(Software Defined Network,软件定义网络)控制器项目DragonFlow、网络级联项目Tricircle、数据保护服务项目Karbor被托管至OpenStack基金会。同年,PB级融合数据引擎项目CarbonData进入Apache孵化器,并在2018年成为顶级项目。
2017年,国务院在《新一代人工智能发展规划》中强调了通过开源开放的方式推动人工智能的发展。同年,微服务架构项目ServiceComb被托管至Apache软件基金会,并在2018年成为顶级项目。由中国企业托管至Apache社区的开源项目RocketMQ正式毕业,成为国内首个达到Apache顶级项目标准的互联网中间件。
2018年,中国人工智能开源软件发展联盟、中国RISC-V产业联盟、中国开放指令生态(RISC-V)联盟在政府和产学研各界的牵头下相继成立。同年,云原生边缘计算项目KubeEdge开源。开源镜像仓库Harbor、开源分布式事务键值数据库TiKV及开源云原生镜像分发系统Dragonfly这3个源自中国的项目被CNCF接纳,这标志着中国在开源领域的影响力和贡献日益增强。
2019年,第二代生成式预训练模型GPT-2发布,该模型拥有15亿个参数,相较于GPT-1,在文本生成、问答、机器翻译等任务上展现出显著的性能提升。在这一时期,得益于Helmet、Flagger和Terraform等智能工具的支持,容器化平台Kubernetes实现了高度自动化,极大地方便了依赖容器技术的开发者。
2020年,第三代生成式预训练模型GPT-3发布,该模型拥有1750亿个参数。虽然GPT-3并未完全开源,其代码和训练模型权重未对外公开,但它在自然语言处理领域的影响力不容小觑。同年,CentOS官方宣布停止维护CentOS Linux,并于2024年6月30日结束对CentOS 7的支持,同时推出了CentOS Stream项目,作为CentOS Linux的替代。
2021年,Log4Shell漏洞成为开源历史上最严重的安全漏洞之一,影响了众多国内外公司。当年年底,Apache团队发布了针对Log4Shell漏洞的修复程序。
2022年,Linux内核团队发布了5.16、5.17、5.18、5.19和6.1共5个版本,这些更新进一步增强了Linux操作系统的稳定性和性能。同年,PyTorch正式加入Linux基金会,这标志着PyTorch项目的进一步发展和社区支持的加强。
2023年,深度优化的开源库TensorRT-LLM推出,为机器学习模型的推理提供了更高效的解决方案。开源项目Visual ChatGPT发布,它结合了视觉和语言处理技术,为人工智能领域带来了新的应用场景。此外,Llama 2项目成功开源了3种不同规模的预训练模型,为研究人员和开发者提供了更多的选择和资源。
2019年,面向多样性计算的操作系统开源社区openEuler正式成立,这标志着中国在开源操作系统领域迈出了重要的一步。同年,中国首个开源许可证——“木兰宽松许可证”正式发布,为国内开源项目提供了法律框架和规范。
2020年,全场景AI框架MindSpore和关系型数据库openGauss开源;Kubernetes上的首个云原生平台构建引擎KubeVela开源;企业级分布式键值数据库Tendis开源。同年,中国首个开源基金会——开放原子开源基金会成立。开源操作系统OpenHarmony正式托管至开放原子开源基金会。
2021年,开源操作系统openEuler正式托管至开放原子开源基金会;业界首个全开源2000亿个参数的中文预训练语言模型“盘古α”发布;OceanBase数据库开源;Echarts正式从Apache毕业,成为顶级项目。
2022年,中国首个桌面操作系统开源社区“开放麒麟”成立,为中国桌面操作系统的发展提供了新的平台。南京未来诉江苏云蜻蜓案成为中国首例根据GPL获得法院支持的生效判决,这一判决对国内开源许可证的法律效力和执行具有重要意义。
2023年,中国的大模型开源生态迎来了蓬勃发展的时期。这一年,跨端、跨框架、跨版本的企业级应用前端组件库OpenTiny及高性能服务网格项目Kmesh开源。
通过梳理“开源大事记”,我们可以清晰地看到技术发展在开源历程中的推动作用。从大型机时代的初步孕育,到互联网时代开源定义的形成和逐步正规化、规模化,开源运动经历了重要的发展阶段。进入后互联网时代,随着数字化转型的推进,云计算、云原生、大数据、机器学习等领域的开源项目呈现爆发式增长。到了如今的AI大模型时代,越来越多的开源项目开始聚焦于AI大模型的开发,这标志着开源技术进入了一个新的发展阶段。
中国的开源发展虽然起步较晚,但经历了早期的个人探索到企业积极参与,社区联盟的建立,以及国家政策的持续支持的各个阶段,直至如今产业各界广泛参与开源项目和社区的贡献。这一系列发展不仅推动了中国开源生态系统的成熟,而且与国际开源社区的发展保持了同步,甚至在某些领域实现了引领。中国的开源社区和企业在全球开源生态中的影响力逐渐增强,为全球开源技术的发展和创新作出贡献。
在2007年的D5会议上,乔布斯和比尔·盖茨共同接受了访谈。在访谈中,他们提到了苹果公司的最大秘密——苹果自视为一家软件公司——可能已经不再是秘密。乔布斯认为,未来软件将无处不在,深入人们的日常生活;而盖茨则认为,软件将变得更加个性化,以满足每个用户的独特需求。
软件是连接用户和硬件的桥梁,用户通过软件来释放硬件的潜力,并通过多种应用软件实现面向不同场景的多样化应用。从需求提出的那一刻起,软件的生命周期就涵盖了设计、开发、测试、部署、维护,直至最终的废弃。与硬件单一、静态的生命周期不同,软件的生命周期是一个动态的过程,类似于生物的出生、成长、衰老和死亡。然而,软件的生命周期并不总是线性的,它可以通过更新、扩展甚至重新设计来延长使用寿命。一些软件可能会选择开源,由社区继续维护和开发,这不仅延长了软件的生命周期,还可能改变其生命轨迹。
此外,软件具有天然的生态属性——软件本身、开发人员、用户及其他利益相关者构成了一个相互依存的网络,形成了复杂且不断发展的生态系统。这个生态系统的特点是相互作用、合作和竞争并存。在这一生态系统中,开源协作为软件开发提供了一种新型的合作模式。它不仅降低了开发的门槛,还为用户提供了各种各样的软件选择,使软件更加易于获取和使用。
在传统的软件工程领域,“瀑布模型结合CMM(Capability Maturity Model,一般译作软件能力成熟度模型)”定义了经典的工程模式。通过强化过程管理,这种模式使原本混乱无序的软件开发过程变得有序、可控,对于增强软件开发的过程能力和提高产品质量功不可没。同时,软件开发的规模化也满足了社会对软件产品日益增长的需求。
瀑布开发模式的出现是为了应对20世纪60年代的“软件危机”,由Winston Royce在1970年提出。尽管他没有使用“瀑布”这一术语,但他描述了一种线性顺序的开发流程,并指出了这种方法的潜在风险。随着瀑布开发模式成为软件开发的主流,其缺点也逐渐显现。最主要的问题是在开发阶段需要形成大量的反馈文档,这不仅极大地增加了工作量,也让开发过程变得过于烦琐和重复。
因此,从20世纪90年代开始,“轻量级”的开发方法逐渐兴起。1995年,Jeff Sutherland和Ken Schwaber联合发表了一篇论文。在这篇论文中,他们首次提出了Scrum的概念,后来这一概念逐渐发展成为敏捷开发的重要流派。Scrum定义了一个运作框架,重点关注项目流程、团队管理,包括需求收集、团队协作、项目运营等方面。最终,在2001年,《敏捷宣言》的发布标志着“敏捷运动”的正式开启。
从运作机理来看,相较于瀑布开发模式,敏捷开发模式更强调:个体和互动高于流程和工具;工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。这种转变意味着传统工业中对细致计划和严格过程控制的依赖开始减弱,取而代之的是一种全新的思维模式:软件开发过程被视为类似于植物自然生长的过程,从底层开始,逐步有序地向上发展。这种方法不仅与软件开发过程中不断探索的特性相契合,而且能够尽早地交付满足客户预期的产品。
这种逻辑与开源协作的理念高度一致。自1998年Open Source一词被正式提出以来,随着软件工程中敏捷开发方法的发展,开源运动已经成为全球范围内不可阻挡的趋势,并为现代软件工程提供了新的范式。
随着开源软件从MVP(Minimum Viable Product,最小可行产品)版本开始发布,并通过后续版本的持续迭代和更新,用户被邀请参与软件的共同定义和开发过程。这种方式可以更快、更直接地满足用户需求。开源的这些特点与现代软件开发模式高度契合,并推动了软件工程的持续优化。
SaaS(Software as a Service,软件即服务)正逐渐成为软件交付的主导模式。这一模式的演进历程可追溯至大型机时代,当时软件主要解决特定的单一任务。随后,随着个人计算机的普及,软件开始满足个人办公信息化的需求。进入21世纪,互联网和移动互联网的兴起带来了APP的革命,它们改变了人们的生产和生活方式,成为这一时期的软件交付主导模式。如今,在数字化和智能化浪潮的推动下,SaaS正在重塑企业的商业模式和生产流程,确立其作为软件交付主要模式的地位,如图1-1所示。
图1-1 SaaS正在成为软件交付主要模式
根据华为内部的调查报告,全球软件市场的SaaS订阅收入占比将从2020年的约30%增长至2030年的约81%。这一增长趋势在美国市场尤为显著,尽管其市场化程度已经相当成熟,但toB SaaS领域的投资年增长率仍高达40%。在中国,toB SaaS市场也正处于快速发展阶段。展望未来,SaaS不仅将成为推动产业数字化的关键力量,还将彻底改变企业的商业逻辑和生产方式。
在SaaS的交付趋势下,软件与开源之间的关系变得日益紧密,这已成为产业界关注的焦点。SaaS提供的是全面的软件解决方案,而云服务则是这一解决方案中不可或缺的组成部分。开源软件通常可以通过云服务这一平台提供给用户,而云服务提供商在构建SaaS平台时,也普遍采用了开源架构和工具。因此,开源在构建SaaS生态系统时扮演着至关重要的角色。
尽管开源软件具有诸多优势,但要真正实现其增强软件企业核心竞争力的目标,仍需要克服一些挑战。企业不应持有“薅羊毛”的心态,仅仅将开源软件视为降低开发成本的廉价工具。开源是现代软件工程战略发展的重要一环,企业应当遵循这一战略的核心原则,建立自己的开源生态系统。
根据OSI的定义,开源软件项目是指源代码公开可见,并且允许自由修改、分发和使用的软件项目。这意味着任何人都可以查看源代码,对其进行修改和分发,而不需要事先获得授权或支付许可费用。
开源软件项目通常由社区或志愿者团队开发,他们在公共代码库中共享代码和文档。社区成员可以贡献代码和文档,通过协作改进软件。这种开放式的开发模式有助于加速软件的开发和迭代,提高软件的质量和稳定性。此外,公开源代码使开源软件项目能够吸引更多用户和开发者,形成一个庞大的生态系统,推动软件的发展和创新。
在开源领域的经典著作《大教堂与集市》(Eric S. Raymond著)中,开源的理念被比喻为“集市”,它代表了一种低成本、开放式的协作方式,其特点是项目周期短,但品质可能参差不齐。与之相对的是闭源开发,它类似于“大教堂”的建设,品质控制更为严格,但成本较高,开发周期也较长。
尽管“大教堂”和“集市”的模式将长期并存,但由于技术研发的开放性和人才流动性,企业实现垄断变得不现实。竞争与合作才是永恒的主题。从这个角度来看,开源所带来的持续迭代与产品升级,以及基于开源构建的人才生态系统,能够为企业带来持久的活力。
然而,在以商业为主导的市场环境中,“源代码公开”似乎与技术专利保护的原则相悖。开源常常被贴上“共享智慧”“协作开发”和“免费”的标签,这引发了一些质疑。但事实上,免费并不意味着与商业化不相容,它通过模式创新,使商业运营变得更加高效和合理。
从自由软件运动的兴起到开源概念的确定,再到开源定义和许可证的发布,以及不断涌现的各类开源项目,这一过程见证了从早期“自由精神”与商业看似冲突,到刻意避免Free一词的免费含义,进而确定“开放源代码”的内涵,使之与商业和谐共存,直至各种开源商业模式取得成功。
在开源运动的背景下,Linux操作系统是一个典型的代表。Linux操作系统拥有众多系统开发商,它开创了由多家公司共同主导一款开源产品的商业化模式。其中,最著名的开发商是Red Hat,该公司在2018年被IBM以340亿美元的价格收购,这笔交易至今仍是开源领域最大的一笔收购交易。
此外,基于Linux操作系统开发的Android操作系统横空出世,迅速成为全球最广泛使用的智能手机操作系统。同时,全球最大的开源开发者社区GitHub被微软以75亿美元的价格收购……这些标志性事件不仅展示了开源产品的商业价值,也证明了在当今大企业主导的开源浪潮中,开源模式能够稳固地立足并持续发展。
在前面的内容中,我们从宏观角度分析了开源的产生和发展的底层逻辑。而从微观角度,即开发者的视角来看,正是开源社区所倡导的“能者治理,才配其位”的理念,使众多优秀社区开发者的贡献得以被认可和看见。当开发者的贡献被整合到开源项目中,并随着后续版本的发布被广大用户下载并使用时,他们将获得巨大的成就感和自豪感。
在开源社区中,顶尖开发者扮演着“仁慈的独裁者”的角色,他们并非传统意义上的独裁者,而是以一种更加温和、谦逊的方式领导社区。这些开发者通常具备卓越的技术能力和丰富的项目经验,能够解决技术难题,并对项目的发展方向做出明智的决策。这种领导风格在开源社区中非常有效,能够凝聚社区力量,推动项目的持续进步。因此,“仁慈的独裁者”在开源世界中被视作“英雄”。
开源社区中不乏这样的“英雄”人物,例如Linux内核的创始人Linus Torvalds,他以开明和睿智的领导风格,以及个人魅力,吸引了全球顶尖开发者共同贡献力量,推动Linux内核的不断进步和发展;还有Python语言的创始人Guido van Rossu,他一直致力于推广和普及Python语言,为Python社区的发展作出巨大贡献。这种“英雄”般的待遇和成就感是推动开源运动持续繁荣的内在动力。
正如中国工程院院士孙凝晖所说:“开源模式不仅仅是一种商业模式,它也是一种生态构建方法;开源是一种共享共治的精神;开源是一种打破垄断、开放创新的精神;开源是一种鼓励奉献的精神;开源不仅仅是公开源代码,更重要的是协作开发流程的建立与社区治理机制的建设。”正是开源的宏观正义性和微观成就感,以及商业和生态的共同支持,共同构成了开源的完整图景。