开源 理想照进现实

  从专业黑客利器到普及的开发工具,从有“情怀”的程序员的信仰到受所有开发者欢迎的平台,从凤毛麟角到企业级开源技术在各领域红红火火,毋庸置疑,开源已经成为主流,正逐步从理想走向现实。但未来商业化路径该怎么走,如何实现更多领域的技术与应用,都是开源从业者们需要考虑的问题。

  开源软件(Open Source Software),顾名思义就是将软件资源向外界公开并分享,旨在“Open”。未来商业模式将以移动、云及大数据等技术为基础,而云计算、大数据、移动、物联网等新兴技术都是基于开源而来——技术的开源已经被视作驱动创新的关键因素。毋庸置疑,开源已经成为当今的主流技术之一。

  然而,未来的开源软件会向什么方向发展呢?这是一个众说纷纭的话题。

  人们通常把能够自由地获取、修改和重新发布源代码的软件称为开源软件。在云计算和大数据时代,开源软件更是被频繁提及。

  时至今日,开源软件早已成为软件领域里不可或缺的重要组成部分,许多成功的开源软件项目比如Linux、Apache、Eclipse等,由于其特性,已经广泛应用于各个领域,产生了巨大的利益和价值。

  然而,翻开开源软件的历史书,似乎其兴起之初并没有太多的商业成分驱动。

  追根溯源,开源软件的前身是自由软件(Free software)——“Free”的含义不仅是“自由”,同时也是“免费”。为了避免人们将其误认为是免费、廉价和低级的软件,在1998年Free正式更名为Open Source,并沿用至今。那个时候的开源软件处于技术产业的边缘,只能由隐藏地下的骇客们小范围地传播。

  作为新兴行业,软件业蕴含着极大的技术潜力。一时间,技术天才们在这块新兴的土地上开垦和奋斗,而开源软件正是他们可以展现自我和获得认同与肯定的最好途径。

  在1991年,Linus Torvalds公司推出了我们最为熟知的开源软件——Linux。作为“Linux”之父的电脑程序员林纳斯·托瓦兹这样解释开源的存在意义:“一个人做事情的动机,可以分为三类:一是求生,二是社会生活,三是快乐。当我们的动机上升到一个更高的阶段时,我们才会取得进步,不是仅仅为了求生,更是为了改变社会,更理想的是——为了兴趣和快乐。”对于他而言,开源仅仅是一种程序员特有的热忱,是一种获得成就感的手段,更是一种自身价值观的体现。

  也可以说,在开源发展之初,“开放”是一种信仰,也隐约透露出一种情怀。

  随之而来的是对开源软件的规范和定义。

  开源软件促进会即OSI(Open Source Initiative)对开源软件有明确的定义,业界公认只有符合这个定义的软件才能被称为开源软件。这个概念传承了自由软件的开放和分享精神,却又同时对自由软件中过于严格的方面做了一定的修正。

  由于OSI对开源软件清晰而完整的定义,推动着开源软件进入了一个崭新的飞速发展的阶段。

  随着信息技术的发展,开源软件变得普遍和受欢迎,很多数据中心都会选择开源软件作为其默认平台,绝大部分公司都会利用或者开始考虑利用开源软件扩展自己的能力。作为当年专有软件厂商的代表,微软也开始拥抱开源,这是二十多年以来,整个行业对开源观念转变的最好例证。

  与专有软件相比较,开源软件有很多优势,比如有规范的管理、丰富的资源、易于操作的试用等等,这使得开源项目更容易成为广泛的、业界公认的操作平台。

  逐渐地,开源已经转变成为软件公司战略的关键,这种转变终将涉及技术的各个领域,甚至改变整个市场格局。

  开源的价值在哪里?如何激发有“情怀”的开源软件的商业价值?《中国信息化周报》记者通过采访和梳理,探寻开源的发展路径。

  毋庸置疑,开源已经成为主流,正逐步从理想走向现实。但未来商业化路径该怎么走,如何实现更多领域的技术与应用,都是开源从业者们需要考虑的问题。

  探寻开源的“钱”景

  从开源软件出现的那一刻起,其商业模式就不断地被业界讨论和研究。基于时代赋予开源软件的存在意义,在很多人心目中,开源软件就好像是公共领域的空气一样,应该是可以自由使用的,甚至他们将商业与开源对立起来,“不为五斗米折腰”。诚然,理想主义中的开源确实应当做到如此清高。

  商业是推手

  在科技发展的时间长河里,绝大多数的IT工作者和领导者已经接受了商业是推动整个社会进步发展的有力推手。商业是不是也会成为开源软件发展的最强动力呢?

  众所周知,软件的生存必然伴随着经济效益,虽然开源软件挂着“软件”这个名号,却因本身开源的特点和定义让其无法大张旗鼓地“赚钱”。

  在如何平衡软件源代码的开放性和商业模式的这个问题上,争论似乎一直喋喋不休。但这似乎并不妨碍商业在开源软件事业中所占据的重要地位:首先,商业化为开源项目提供更多的物质保障,有一个良好的物质基础是开源项目或社区良性发展的前提保证;其次,商业也可以直接或间接地扩大项目的影响力。

  很多的开源软件实际上是为商业服务的,比如Linux和其他一些开发工具和框架,其主要市场就是企业和商业应用。显而易见的是,一个良好的商业模式,可以保持一个开源软件的生命力,从而提高其核心竞争力。那么,无论对软件本身还是商业公司,都是有利而无害的。

  很多业界知名软件的背后都有商业公司的支持和投入。Linux如此,Eclipse如此,像Firefox这样为终端用户服务的软件亦如此。

  就是因为受到了商业公司的帮助,这些软件都获得了成功,而商业公司抑或通过免费的开源软件降低了运营成本,抑或得到了优良的代码加快产品研发,抑或通过支持开源实现其战略目的,抑或依托开源软件提供独家技术和服务获得收入。

  开源不该被道德绑架

  “免费的其实是最贵的,因为无价。”如果一家企业声称自己“开源”或者“支持开源”,完全不是为了自己的商业目的和商业利益,那么笔者宁愿这家企业是在理解了以开源为基础的商业模式后,通过成熟并有效的运作,会借助商业赚取更多的利益。恒丰银行科技总经理张晓丹告诉《中国信息化周报》记者,在他看来,开源终究会成功。“开放式的文化未来会占据主流,Linux用自己的智慧和想象力创造出开源这种创新的开发模式,并且会转化为商业上的成功。”

  对于这个问题,华为开源能力中心主任工程师杜玉杰认为,在开源方面要以战略与商业利益为导向,企业毕竟不是非营利机构,考虑开源一定要能带来商业价值。“华为公司要拥抱开源,但不是要拥抱所有的开源,拥抱开源还是要基于公司的战略诉求和商业诉求。”

  然而,让记者真正看到开源是有“钱景”的是基于两件事。一是老牌开源解决方案提供商红帽公司实现2016财年20亿美元的强劲收入,二是微软向开源展开怀抱。

  先来说说红帽。在开源的二十多年历程中,红帽所做的一切都是围绕着开源展开——以开源技术为主导,引导开源社区的进步,再到成功的商业模式。“简单来讲,红帽的商业模式就是把开源的项目变成可以直接使用的企业级产品。”红帽大中华区总裁张先民博士在接受《中国信息化周报》记者采访时说到。

  不难看出,红帽的商业模式是典型的“开放+支持”。“社区影响力+企业级产品+企业级服务+开放的生态体系,这就是红帽制胜的关键所在。”张先民表示。

  再说说微软。记者看到最近有文章梳理了微软对开源的态度和做法,称在2015年,微软就将“.NET Core”带入Linux;支持其Azure云的Debian GNU/Linux,并建立了自己的Linux认证。微软现任CEO萨蒂亚·纳德拉声明“Microsoft loves Linux”。微软甚至有自己专业的Linux发行版——Azure的云计算交换机。这一系列动作不难看出,微软不仅要成为一家云计算公司,更想要向一家盈利的开源公司转变。微软目前的收入来源中,服务器产品和云服务是最赚钱的,占总收入的20%。用微软Azure的CTO Russinovich的话说,“很明显,如果我们不支持Linux,我们将仅适用于Windows,这是不实际的。”同时他补充说,在Azure上运行的虚拟机有四分之一是Linux操作系统,且数量还在增加。

  由此看来,开源要从技术驱动走向战略和商业驱动,是作为实现公司战略目标和商业价值的重要工具和手段之一。

  相关链接

  开源软件的定义

  开源软件促进会(Open Source Initiative)对开源软件做出了明确的定义,业界公认只有符合这十个条款,才能被称之为开源软件。

  1.自由再发布 开源软件的许可证不应限制任何个人或团体将包含该开源软件的广义作品进行销售或者赠与。许可证不能要求收取任何和这种销售相关的著作权授权费或其他费用。

  2.源代码 开源软件的程序必须包含源代码,必须允许发布源代码及编译后的程序。如果产品中没有包含源代码,那么必须提供一个公开的获取源代码的方式。这种方式可以收取的费用不能超过对源代码进行一次复制所需要的合理的成本(例如制作一张CD的成本),最好是可以通过互联网提供免费下载。源代码的形式必须易于程序员修改,不能故意对源代码进行模糊化处理,也不得以预处理器或转译器输出的中间结果的形式提供源代码。

  3.派生作品 开源软件的许可证必须允许修改和派生作品,并且允许使用原有软件的许可条款发布它们。

  4.作者源代码的完整性 只有在允许补丁文件和原有源代码一起发布的情况下,开源软件的许可证才可以限制源代码以修改过的形式发布。许可证必须明确地允许发布由修改后的源代码构建出的软件。许可证可以要求派生作品使用不同于原有软件的名称或版本号,以区别于原有软件。

  5.不能歧视任何个人或团体 开源软件的许可证不能歧视任何个人或团体。

  6.不能歧视任何领域 开源软件的许可证不能限制任何人把程序使用于某个领域,比如,不得规定软件不能用于商业目的或应用于遗传研究领域。

  7.许可证的发布 程序所带的权利必须适用于所有接收方,而这些接收方无须执行附加的许可证。

  8.许可证不能只针对某个产品 程序所带的权利与程序是否成为特定软件的一部分无关。如果某程序从特定软件中抽取而来并遵守程序本身的许可证,那么该程序的所有接收方获得的权利与原特定软件所赋予的对应部分的权利相同。

  9.许可权不能约束其他软件 开源软件的许可证不能对同该许可证下的软件一起发布的其他软件有任何约束。例如,开源软件的许可证不能要求在同一媒介下发布的其他程序也必须是开源的。

  10.许可权必须独立于技术 许可权的条款不应指定任何特定的技术或接口。

  开源在各个领域开花结果

  当下的科技圈比任何时候都要更加开放和敏捷,尤其是高科技企业巨头,他们已经认识到,将软件开源能够推动行业内部整体技术水平的快速发展。“这不仅是科技界的转折点,更是引领下一场潮流的转折点。”对于这种现象,开源核心网络服务商Github的总裁Brandon Keepers表示。

  很明显,随着云计算的落地、大数据的普及,全球对于开源软件的需求出现井喷状态,越来越多的传统企业开始借助包括云计算和大数据在内的互联网技术转型升级。

  云计算的开源力量

  自2006年首次提出云计算概念至今十年以来,云服务已经呈现了行业化和大客户化的趋势,云计算技术也逐渐从封闭走向开放,更多的行业客户和大型企业开始采用开源云架构去全面拥抱云计算。这不仅表现在各种开源软件推陈出新,比如每半年推出一个新版本的OpenStack框架,不断更新的Messos、Docker等,还表现在众多企业参与到开源云的推广之中,其中既有IT厂商,同时也不乏电信、金融这些传统企业。云计算正携手开源走向主流市场,云计算的大时代已经到来。

  OpenStack是当下最火的开源云计算管理平台项目。OpenStack支持几乎所有类型的云环境,是旨在为公有和私有云的建设与管理提供软件的开源项目,其任务是简化云部署,增强可扩展性。

  同时,作为开源云技术的事实标准,OpenStack经过6年的发展获得了爆发式增长,成为全球仅次于Linux的第二大开源社区,并迅速进入主流市场:超过585家企业,接近4万人通过各种方式支持这个超过2000万行的开源项目,世界100强企业中50%的企业均采用了OpenStack。

  以OpenStack为基石,EasyStack致力于构建新一代的开源商业模式——以开源技术为核心的产品和服务型企业,以满足企业客户场景化需求和开源社区技术发展之间的协同和进化。EasyStack创始人兼CEO陈喜伦表示:“这种新一代开源商业模式意味着,EasyStack不仅可以按照国际规则参与开源社区,通过代码贡献把握和影响OpenStack社区方向,又能基于客户需求将OpenStack产品化,降低企业级客户采用OpenStack的门槛,还可以将实践中积累客户需求反馈社区,推动社区良性发展。”

  挖掘大数据金矿

  据Global Cloud Index预计,截止到2020年互联设备数量将达到500亿,众多爆发式增长的设备预计在2017年便会产生高达7.7ZB的互联网数据。在这个大背景下,各个机构都积累了足够多的数据,从而对数据进行分析并产生指导实践的见解也成为了企业提高竞争力的迫切需求。在这个需求刺激下,开源大数据技术生态圈得到了飞速发展——在数据的整个生命周期中,从收集到处理,一直到数据可视化和储存,各种开源技术框架林立。

  Teradata天睿公司大中华区首席执行官辛儿伦告诉《中国信息化周报》记者,在当今数据分析专业领域,已经无法通过采用单一平台,或是单一技术就能有效满足大数据分析需求。开源便成为挖掘大数据金矿的有力工具。Teradata天睿公司首席技术官宝立明(Stephen Brobst)是不折不扣的开源拥护者,他向记者介绍了Teradata对QueryGrid、Presto、Kafka等开源技术的结合应用。

  QueryGrid是一种互操作技术,可以实现Teradata与其他数据库产品的互通操作。作为Teradata的典型客户,富国银行要实现跨不同部门的数据访问,就多亏了QueryGrid。QueryGrid对SAS的一次查询可以从过去的48小时减少到5分钟。这种效率让富国银行的数据分析人员每分钟可以提出更多问题并获得更多答案,从而实现更深入的探索,更好地研究业务问题。“我们也与Facebook联合开发了Presto。”宝立明介绍说。Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Teradata也在与LinkedIn共同开发基于Kafka的应用。Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据。

  相关链接

  那些我们知道的开源软件基金会

  基于开源软件变得日趋商业化,商业硬件及软件厂商越来越多地参与开源项目,如今开源软件基金会显得尤为重要——通过一家可以信赖的独立的非营利机构,就算是与彼此竞争的公司合作开源项目,也会极大程度上扫除障碍。软件基金会为开源项目提供了多种服务,同时也为项目参与者提供法律框架。

  ■Apache软件基金会提供了组织、法律和财务等方面的支持,监管350多个开源项目,其中包括Apache HTTP Server(全球应用最广泛的网站服务器软件)、Apache Hadoop大数据分析平台以及Apache Tomcat(Java应用服务器)。这些开源项目都是采用Apache许可证发行的。其孵化器项目还为期望加入该基金会的项目和代码库提供了一条道路。

  ■软件自由管理委员会为开源项目提供大本营和服务的基金会。它目前管理着33个项目,包括几个一下子就能辨认出来的项目,比如BusyBox、Git、Samba和Wine。软件自由管理委员会还运作一个GPL合规项目,该项目旨在执行GPL。它目前在帮助出钱出力,支持指控VMware涉嫌违反GPL的诉讼。

  ■Linux基金会支持Linux内核。这本身很重要,因为Linux内核是Linux的基础,而Linux又是大多数开源软件的基础。不过近些年来,Linux基金会已扩大了涉足领域,支持其他软件项目,比如与软件定义网络、物联网、移动、嵌入式软件、云计算和容器等有关的项目。

  Linux基金会还监管大型的协作项目,包括Xen项目、Kinetic开放存储项目和核心基础设施项目(Core infrastructure Initiative),项目贡献者来自大型商业机构,包括谷歌、IBM、英特尔、思科和惠普。

  ■Cloud Foundry基金会由一群领先的厂商组成,包括EMC、惠普、IBM、英特尔和SAP,它们齐心协力,共同搞这个云基础设施项目。这每一家公司是诸多领域的竞争对手,每家都拥有庞大而宝贵的知识产权资源。尽管如此,Cloud Foundry基金会还是让它们可以彼此合作,不必担心危及彼此的竞争地位。

  ■OpenStack基金会一门心思扑在一个项目上:它致力于OpenStack云操作系统的开发、发布和采用。其目的是,提供一系列共享资源,扩大OpenStack公有云和私有云的普及范围,服务于广大开发人员、用户和整个生态系统,支持看好这个平台的技术厂商,并且帮助开发人员开发云软件。

  ■自由软件基金会一家重要的开源软件基金会,却有点不一样:它比其他任何项目更关注软件自由。是GNU项目的发起者,而GNU项目旨在提供一个完整的免费操作系统。它还发行了GNUGPL,这是最受欢迎的自由软件许可证。

  ■开源项目组织涉足领域与自由软件基金会一样,原因在于它的初衷是支持整个软件运动,而不是支持任何某一个项目,普及和倡导开源的好处,它是开源定义文档(Open Source Definition)的监管者,负责审批许可证是否符合其要求。

  ■本报记者 陈曲 霍娜

关注读览天下微信, 100万篇深度好文, 等你来看……