标签 开源 下的文章

在过去十年中,从 Linux 和 MySQL 到 Kubernetes、Spark、Presto 和 MongoDB,开源一直是云的创新支柱。但最近的一些事态发展为开源背后的商业模式带来了阴霾,业界现在必须采取行动,以避免扼杀其最大的创新来源之一。

作为 Apache Hive 项目的共同创始人和前负责人,我知道激励对于开源生态系统的蓬勃发展至关重要。独立开发者需要激励他们为开源项目贡献自己的时间和技能,而那些具有创业思维的人需要激励他们围绕这些项目建立公司以帮助它们蓬勃发展。

公有云可能会破坏这些激励因素,因为它改变了开源的形态。大型云服务商很容易将开源项目拿来,并将其作为托管服务提供个客户。如果它是在没有回馈社区的情况下这样做的,它就是从别人的工作中获得不公平的利润,从而破坏了开源所需要的蓬勃发展的动力。

我们在围绕 AWS 的当前讨论中已经看到了这一点,AWS 被指责 将开源项目作为服务而提供,并对这些开源项目进行品牌重塑,却不总是回馈这些开源社区。这促使包括 ConfluentRedis LabsMongoDB 在内的开源软件供应商使用了新的许可证,以阻止大型商业云服务商将其代码作为托管服务提供。

我不认为这是一种正确的方法。这些新的许可证尚未得到 开源推进组织 Open Source Initiative (OSI)的认可,并且它们有可能会混淆开源软件的使用权。正如 软件自由保护协会 Software Freedom Conservancy 主席 Bradley M. Kuhn 所说,软件自由应该“对所有人来说都是平等的,无论他们是否是商业行为者。”开源之所以蓬勃发展,是因为这个原则一直受到尊重,任何模糊不清的地方都可能会阻止人们加入社区。

我同情那些寻求保护其业务的开源公司。尽管独立开发人员付出了很多的努力,但开源项目需要公司的资源和管理工作才能被视为足够稳定,才足以供企业广泛使用。Linux 在企业领域中起飞,是因为 Red Hat 和 IBM 全力支持它。Kubernetes 的发展是如此的快,也是因为它得到了谷歌的支持。当然也有例外,但如果一个开源项目背后有一家公司,那么这个开源项目更有可能在大型企业中取得成功。

我需要说明一下我的利益相关立场。我的公司提供了一个基于云的数据分析平台,该平台严重依赖 Spark、Presto 和 Hive 等开源组件。与此同时,我们通过两个项目回馈社区,成为优秀的开源公民:Sparklens,一个提高 Spark 应用程序性能的框架;以及 RubiX,一个提升 Presto 和 Spark 性能的缓存框架。

在云中提供开源软件有助于这些项目吸引更多用户和开发人员。但是,如果商业云服务商获利不公平,则会对下一代企业家程序员们构建开源公司和投资者支持他们产生抑制作用。

因此,如果新的许可证不是解决方案,那么什么是呢?

部分要靠大型云服务商的公平竞争。我不认为 AWS 是“邪恶的”,他们的行为是他们认为最符合他们商业利益的行为。但他们需要认识到,从长远来看,破坏开源对他们的伤害会像对其它人的伤害一样。开源倡导者应该继续提高对这个问题的认识,并对云服务商施加公众压力,以便让他们采取负责任的行动。我们已经看到证据表明这种压力可行

我们还需要一个开源的“ 道德规范 code of ethics ”,由社区(贡献者、项目负责人)和开源组织(如 OSI 和 Apache)创建。一个企业的行为即便是 100% 符合开源许可证,但仍然能够以损害社区的方式行事。这个道德规范能够指出一个广泛认可的道德准则,列出了不可接受的做法,这将使公司和个人对他们的行为负责。

最终的推动力来自于竞争。确实,大型云服务商在吸引客户方面具有优势;它们被 CIO 们视为“简单”和“安全”之选。但客户也可以选择最好的软件和支持。如果开源公司能够为他们自己的发布版本提供更好的功能和更好的支持,他们可以说服客户选择他们自己的产品。

我已经概述了社区可以采取的改善这种情况的行动,但我们每个人也都可以以个人身份采取行动。通过让云服务商了解我们的担忧,我们能够对市场产生一定的影响。要求他们通过反馈表和产品论坛向社区提供特定功能,这是让你发出自己的声音的一种方式。这些云服务商的开发人员也在开源论坛中闲逛,并希望成为开源社区的一员;让这些要求引起他们的注意会促使这种改变。

我们所面临的这个挑战并没有简单的解决方案,但我们需要认真对待。开源模式并不脆弱,不会在一夜之间崩坏。但是,如果商业云服务商继续利用开源项目而不给予回馈,那么他们就会削弱帮助开源成功的激励措施。杀死产下金蛋的鸡并不符合他们的利益,这肯定也不符合开发者和客户的利益。


via: https://venturebeat.com/2019/04/14/how-open-source-can-survive-the-cloud/

作者:Ashish Thusoo 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

室内设计应用可以轻松渲染你喜欢的房子,不管是真实的或是想象的。

 title=

我最近接受了一份在弗吉尼亚州的新工作。由于我妻子一直在纽约工作,看着我们在纽约的房子直至出售,我有责任出去为我们和我们的猫找一所新房子。在我们搬进去之前她看不到新房子。

我和一个房地产经纪人签约,并看了几间房子,拍了许多照片,写下了潦草的笔记。晚上,我会将照片上传到 Google Drive 文件夹中,我和我老婆会通过手机同时查看这些照片,同时我还要记住房间是在右边还是左边,是否有风扇等。

由于这是一个相当繁琐且不太准确的展示我的发现的方式,我因此去寻找一个开源解决方案,以更好地展示我们未来的梦想之家将会是什么样的,而不会取决于我的模糊记忆和模糊的照片。

Sweet Home 3D 完全满足了我的要求。Sweet Home 3D 可在 Sourceforge 上获取,并在 GNU 通用公共许可证下发布。它的网站信息非常丰富,我能够立即启动并运行。Sweet Home 3D 由总部位于巴黎的 eTeks 的 Emmanuel Puybaret 开发。

绘制内墙

我将 Sweet Home 3D 下载到我的 MacBook Pro 上,并添加了 PNG 版本的平面楼层图,用作背景底图。

在此处,使用 Rooms 面板跟踪图案并设置“真实房间”尺寸是一件简单的事情。在我绘制房间后,我添加了墙壁,我可以定制颜色、厚度、高度等。

 title=

现在我画完了“内墙”,我从网站下载了各种“家具”,其中包括实际的家具以及门、窗、架子等。每个项目都以 ZIP 文件的形式下载,因此我创建了一个包含所有未压缩文件的文件夹。我可以自定义每件家具和重复的物品比如门,可以方便地复制粘贴到指定的地方。

在我将所有墙壁和门窗都布置完后,我就使用这个应用的 3D 视图浏览房屋。根据照片和记忆,我对所有物体进行了调整,直到接近房屋的样子。我可以花更多时间添加纹理,附属家具和物品,但这已经达到了我需要的程度。

 title=

完成之后,我将该项目导出为 OBJ 文件,它可在各种程序中打开,例如 Blender 和 Mac 上的“预览”中,方便旋转房屋并从各个角度查看。视频功能最有用,我可以创建一个起点,然后在房子中绘制一条路径,并记录“旅程”。我将视频导出为 MOV 文件,并使用 QuickTime 在 Mac 上打开和查看。

我的妻子能够(几乎)能看到所有我看到的,我们甚至可以开始在搬家前布置家具。现在,我所要做的就是把行李装上卡车搬到新家。

Sweet Home 3D 在我的新工作中也是有用的。我正在寻找一种方法来改善学院建筑的地图,并计划在 Inkscape 或 Illustrator 或其他软件中重新绘制它。但是,由于我有平面地图,我可以使用 Sweet Home 3D 创建平面图的 3D 版本并将其上传到我们的网站以便更方便地找到地方。

开源犯罪现场?

一件有趣的事:根据 Sweet Home 3D 的博客,“法国法医办公室(科学警察)最近选择 Sweet Home 3D 作为设计规划表示路线和犯罪现场的工具。这是法国政府建议优先考虑自由开源解决方案的具体应用。“

这是公民和政府如何利用开源解决方案创建个人项目、解决犯罪和建立世界的又一点证据。


via: https://opensource.com/article/19/3/tool-find-home

作者:Jeff Macharyas (Community Moderator) 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Big News

开源项目如何在云端生存

过去的数十年,开源是云计算产业的支柱,从 Linux 到 Kubernetes 、Spark、MongoDB 等。但最近几年,也有声音说,公有云平台,比如 Aws ,在从开源项目吸血,MongoDB 甚至修改了授权协议。

开源教育了市场,让市场开始使用一些新的东西。云平台从中摘桃子,最终逼死开源是谁都不愿看到的。如果云能够反馈给开源,帮助开源成长,才是共赢的局面。不过,这个又有了新问题,如何做到反馈开源而不是背后的商业公司?

信息来源:【venturebeat】

Quick News

GPL 开源软件在黑洞照片中发挥大作用

在黑洞照片的合成过程中,开源软件 Sparselab 和 ehtim 帮了很大的忙。【TFIR】

普林斯顿大学的研究人员开发了工具了探测智能家居设备

普林斯顿大学的研究人员研发了工具来帮助用户探测智能家居的数据请求。【Princeton】

Windows 10 系统包含 581GB 的源码文件

微软工程师 Axel Rietschin 在 Quora 发布了一篇文章,展示了 Windows 10 的项目规模,大约有 581GB 的文件,共 4073468 个文件和 86439 个子文件夹。【Quora】

引言

最近,我听到了一个消息,蚂蚁金服将会开源 SOFA最核心的两个组件——分布式事务框架和服务注册中心

熟悉中间件的朋友们都知道,这两个组件都是针对当前最火的微服务架构。其中,分布式事物框架是解决数据一致性问题的关键。服务注册中心则是服务治理的基础。在这两块开源后,SOFA 将成为一套真正完备的分布式解决方案

作为开源人士,我对此消息深感兴趣,因此联系到了蚂蚁金服中间件团队的杨冰总监,就此消息向他求证。机缘凑巧之下,杨冰花费了宝贵的时间,和我深入讲述了 SOFA 开源的思考,以及近期的规划。

通过这次交谈,也让我看到了一个成功的商业公司是如何拥抱开源、并将开源作为其根本战略来撬动技术红利,支持其急速发展的业务需求的

以下是正文,我将它分享出来以飨读者。


如今,开源已经成为主流,可以说,整个信息产业已经从过去的闭源模式转换为现今的开源模式。各种开源公司纷纷创新不同的开源模式,其中以 RedHat、Google、Facebook 等公司所取得的成绩最为耀眼。2018 年的时候,我曾经参与“开源社”主持的《2018 中国开源年度报告》的撰写工作,并建立了一个数学分析模型,以此来对中国的互联网公司的开源项目分析其活跃度和健康度。让我既感意外,也不意外的是,阿里系的开源项目占据了活跃度排行榜前五的第一、第二和第四;甚至在前五十个项目中,阿里系的开源项目占据了超过一半的份额!我不意外的是,业界一直对阿里在开源方面的动作和力度颇有感受;意外的是,这种力度还是超乎了我的想象。这其中包括阿里巴巴集团和蚂蚁金服等都贡献了相当可观的开源项目。

因此,这次遇到杨冰时,我就开源方面和他深入聊了几句,想了解一下蚂蚁金服是如何思考开源和践行开源的,是如何将开源与公司的商业价值有机地结合起来的

缘何开源

作为一家商业公司,宣称自己开源,甚至也形式上开源一些代码,其实已经是很常见的事情了。但是,真正能将开源与公司的技术演进相融合,并能有效地助推公司业务发展的,却并不太多。这件事其实并没有那么简单——远非只是上传到 GitHub 那么简单。

根据业界的经验,在公司的技术产品开源方面,要将现有场景的代码开源,至少需要在已经运行稳定、结构清晰的现有代码基础上多付出 30% 的技术投入,对代码进行梳理、完善和通用化,才能做到初步的代码开源;而进一步要将这些开源代码维护下去,乃至于和公司业务线上的产品代码保持同步发展,多付出的技术成本还远远不止这些。作为一个互联网技术老兵,我对此深以为然。

那么,蚂蚁金服是如何说服公司决策层在尚未看到开源回报的前景下,同意付出这么多的额外代价来支持开源的呢?推动开源的力量是因何而来的?

“首先,开源是个共赢的模式,对于蚂蚁金服来说,开源可以扩大技术服务场景,为支付、金融等更多的客户提供服务,提升合作伙伴的效率。”杨冰说,“虽然,蚂蚁金服已经有很多的业务场景,也在很多场景下取得了超大规模的实践经验,但是,依然存在没有覆盖到的金融服务场景。而将技术开源出来,可以供更多的客户应用到其自身的场景下——这些场景有效的补充了蚂蚁金服的技术应用面,也为更完善的技术框架奠定了基础。因此,我们选择将 SOFA 中间件框架逐步开源出来,在贡献给社区的同时,也期待社区、合作伙伴甚至客户,都能够一起参与共建,形成行业标准和最佳实践。

“其次,对金融服务来说,监管和自主可控的要求更多,”杨冰接着谈到,“客户也希望可以对其所采用的技术有更多的掌控。”开源是一种可以使客户和上下游产业共同参与和发展的可行模式。

“所以,其实并不是技术部门去说服公司决策层去开源,而是业务发展的自然选择,这也是一种合理的发展方向。”他总结道。这样的结果,其实是和当前流行的开源商业模式所暗合的。

“另外,如你所说,确实在开源时,我们做了很大的改造。以可扩展化的方式来层层构建 SOFA 框架的能力,保证 SOFA 的内部版本和开源的版本采用的是同一个内核。在开源时,剥离了特定业务的逻辑,而保持了公司内部的业务线上的代码和开源代码的核心是一致的。这样,只要公司的业务在持续发展,开源的代码就会一直维护和演进下去。所以 SOFA 的内部版本就是在开源版本之上扩展了内部逻辑和历史版本的兼容逻辑。开源版本的核心逻辑,内外是一致的,并在蚂蚁金服的生产环境中被广泛使用,同时会随着蚂蚁金服自身业务诉求的驱动不断的演进。”杨冰补充道,“但这是值得的,在为开源代码做改进时,也是为公司自己的业务做改进,这是双赢且可持续发展的。”

很多公司在初涉开源时,常常有疑虑,将核心技术开放出去,会不会导致竞争对手的技术提升,会不会造成更大的技术竞争压力?

“事实上,我们在最初准备开源时,也有讨论过这个方面。技术要被更多人用、更多场景用,才会有发展。而开放的技术才能带来团队的发展,因为技术是动态发展的,作为开源的一方,事实上在技术上是相对领先的。开源和掌握是两码事,掌握和用好又是两码事,所以,因开源而带来的竞争,其实是助推整个开源体系的发展的,是良性的、有益的。”杨冰说,“而从社区和行业现状看,大家都在开放,封闭的技术体系会逐渐落后。只有开放才能求同存异,共同发展。”

花絮

我问蚂蚁金服的朋友,在你们开源中有什么有趣的“段子”吗?可以讲来听听。

我朋友过了几天后,给我发来了这样一段文字:

“参与双十一的中间件团队的常态是什么呢?

当晚,团队的常态大概就是喝着茶等零点高峰,高峰期过了之后,当然就是参与买买买啦。

我们很多的一些事情的初始的想法都是来自于双十一当天的夜聊,似乎在经历了紧张的零点高峰之后,脑细胞特别活跃。

对于基础设施团队来说,双十一算是一次大考的结束,考完成绩出来了,我们就想琢磨一些有挑战的事情,于是我们会天马行空地聊一聊对于下一年在技术上需要去做的事情。而在 2017 年的双十一当天,SOFA 的几个同学就围在一起聊了 SOFA 能不能开源?为什么要开源?开源和商业化之间的关系?开源后要做哪些事情等等,这个算是 SOFA 开源的第一次内部讨论。

从这次内部讨论之后,经过了大约半年的准备时间,我们在 2018 年 4 月份正式宣布开源并一直在逐步开源的进程中。”

他说,这就是他们憋了半天想出来的“段子”,哈哈哈,这群可爱的技术人啊。

SOFA 的演进和开源之路

SOFA 中间件框架是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是一套分布式架构的完整的解决方案,也是在金融场景里锤炼出来的最佳实践。

SOFA开源全景图,涵盖了微服务领域的各个方面,同时也积极和业界流行的开源组件结合,包括阿里巴巴集团开源的Nacos、Sentinel等,为用户提供更加广泛地选择。

SOFA 作为一个演进了几年的框架,也一定程度上代表了蚂蚁金服的技术体系的演变,并且现在形成了开源核心、开放式(组件式)开源的模式。SOFA 从 2018 年开始开源,但是我比较好奇 SOFA 开源之前的发展旅程是怎样的。

杨冰说,“最早的时候,在蚂蚁金服还没有从淘宝分拆出来时,公司内使用过一个名为 Webx 的框架,但是随着业务的发展和技术的演讲,这套框架已经不太适应淘宝的需求。那个时候胡喜(现蚂蚁金服副 CTO)就重新创建了一个新的框架——SOFA 中间件框架。”

SOFA 中间件在蚂蚁内部经历了十年的发展和五代架构的演进,被广泛应用在包括支付、借贷、信用、基金、保险等全金融场景,支撑着蚂蚁平稳度过历次双十一、双十二、新春红包等大考,创造了 25.6 万笔每秒的交易记录,并还在不断刷新这个记录。

“SOFA 的版本迭代和公司的架构发展是密切相关的。比如说我们从 SOFA1 刚刚开始的时候,会做模块化的事情。到了 SOFA2 开始引入整个微服务的体系。到 SOFA3 我们希望能够在微服务体系下,能够把一些服务聚合在一起,组成一个链路出来,这就是我们说的合并部署。”

“随着每年的交易量的不断上升,让我们必须从单体架构转到服务化架构,然后演进到单元化架构、弹性架构。SOFA 大部分的功能升级都是伴随着整个公司的技术架构目标上的更大挑战进行的。”杨冰说,“我个人是经历了 SOFA1 到 SOFA2 开发过程,从 SOFA1 整体完成落地,到 SOFA2 引入了服务的架构。到了 SOFA3 我们把 Tomcat JBoss 那层替换掉,变成自研的应用服务器,解决了我们内部系统做类隔离、模块隔离以及合并部署的问题。”

SOFA4:迈入开源

正如前面所谈到的,开源既有的代码是需要做许多繁重的工作的,所以, SOFA 直到发展到第四代才为开源做好了准备,并将开源作为 SOFA4 的核心目标。

“SOFA 发展了这么多年,是有非常重的历史包袱的,这也是我们为开源准备了非常长时间的原因。在从 SOFA3 到 SOFA4 的整个过程当中,在把整个 SOFA 做轻量化的过程当中,其实就是在为开源做准备。有一些公用的能力(和蚂蚁金服的整个架构或业务没有强相关的部分)我们都希望可以开源出来。我们做开源这件事情不会把我们代码分为完全两套东西,然后两个分别演进,我们觉得这不是开源的正确做法。”杨冰说,“另外,开源对我们整个团队的消耗是非常大的,我们希望用同一套代码来实现内部的兼容和外部的开源,我们会在开源的代码当中留一些比较好的扩展点,这也是对我们本身代码架构可扩展性的挑战,目前我们做到的程度就是这样的。”

SOFA 从 2018 年 4 月开始对外开源,得益于社区和开发者的认同,在经历了半年多的时间,SOFA 所有相关的开源代码,获得了累计 10000+ 的 Star和 80 多个代码贡献者

在线上社区方面,SOFA 开源的站点(https://www.sofastack.tech/)也是在不断沉淀相关的文章和文档。

杨冰说,“原先我们觉得开源就是最好的,然而在 SOFA 演进的过程中,我们发现我们的场景足以构建出来比开源软件复杂度更高、能力更强的体系。我自己也在参与这个的过程当中收获了很多。这件事情也是从一个侧面反映了蚂蚁金服技术演进的历程。我们从最早的 IOE 架构,到部分采用开源软件,再到逐步开始全套自研。在自研过程当中,拥抱部分开源软件,并且去做深度的创造,做一些自己的创新。整个过程其实是一条非常艰难的路。”

杨冰说,“我认为整个基础设施是应该走开源化道路的,因为从 Linux 到 Kubernetes,已经被一次又一次地证明。越底层的基础代码,包括 SOFA 中间件这样的东西,看起来逻辑没有业务系统那么复杂,然而其实它考虑的一些细节、设计的优雅性、架构的健壮性其实是非常强的。而且,它一旦要去支撑那么多业务系统,整个工程的复杂度也是非常高的,很难用一家公司的程序员去搞定整个技术栈。SOFA 也是一样的,我们越来越发现这方面的一些趋势。我们靠一己之力去做是很难的,再加上我们既要对内支撑又要对外支持。现在明白了这样一个趋势,因此我觉得应该回馈社区,和社区共建才是比较好的一条路。以 Linux 为代表的疯狂发展,以及伴随着而来的商业化生态的繁荣,是一次又一次向世界证明,开源和商业化的结合是可以非常完美的。”

SOFA5:拥抱 Service Mesh

从多年前的 SOA 架构,到现在的容器化、微服务的技术演变,我们可以看到虽然技术在逐步变化,但是其主体指导思想还是一脉相承的。蚂蚁金服在微服务方面已经走到了探索的前沿,那么,当前的 Service Mesh 技术在 SOFA 的发展过程中会起到什么作用?

“这两年我们在积极拥抱、布局 Mesh,在演进方向上,我个人比较关注 Mesh 这个方向,因为我个人认为这是把基础设施沉淀到我们整个技术平台当中非常关键的一环。这也是我们 SOFA5 的主要目标。”杨冰说,“随着容器技术的兴起,可以将以往的中间件组件拆分的更细、更灵动,而资源利用率和运维效率也得到了进一步的改善。”

近年来,随着 Kubernetes 确立了其在容器领域的统治地位,以及Serverless 模式等不可变基础设施的架构进一步成熟,可以将服务在上层进一步进行抽象,为现在大规模的容器化、微服务化奠定了坚实的基础。

也有一些业界的意见认为,Service Mesh 将会取代中间件。

杨冰认为,“蚂蚁金服已经在中间件方面探索的比较深远,规模也相当的大,为拿到业务红利做了很多优化,这些能力还是会存在,只是通过换了一种跟应用集成的方式,让 SDK 变得更轻。随着基础技术平台逐步走向云化,我们认为 ServiceMesh 将会是连接现在这个时代和云原生时代的桥梁,而且无论中间件还是很多基础技术组件都将走向 Serverless。Serverless 对开发者而言将是一种全新编程模型,对运维人员而言则是颠覆性的运维模式,甚至是一种 Opsless,我相信广义的 Serverless 模式会成为云原生时代的主角。”

Service Mesh 这个新兴领域是很大的一个热点。蚂蚁金服和社区一起共同发起了 http://www.servicemesher.com/ 这样一个针对中国的Service Mesh 领域开发者的社群,有很多的志愿者,蚂蚁金服是其中之一。

在蚂蚁金服的Service Mesh领域,涉及两个开源项目SOFAMesh和SOFAMosn。这两个项目的定位是这样:

  • SOFAMesh 项目:是蚂蚁金服 Service Mesh 的控制平面,分支自 Istio 项目。在Istio体系和框架内进行了功能补充、扩展、增强和改进,立足于探索并解决 Istio 生产落地,尤其是大规模落地中遇到的实际问题,在充分验证之后贡献回 Istio 上游。
  • SOFAMosn 项目:蚂蚁金服新型的基础设施和中间件的底层网络通用解决方案,可以有多种产品形态。在蚂蚁金服 Service Mesh 中承担数据平面的角色,和 SOFAMesh 项目配合使用,兼容 Istio 体系。此外 SOFAMosn 还将用于 Ingress / API Gateway / Serverless Function Gateway 等场景。

目前蚂蚁金服开发团队已经和 Istio 开发团队建立联系,在 Istio 大规模落地方面进行合作和探索,相关实践和创新会在生产验证/代码稳定之后会贡献出来。

Service Mesh 是一个非常新的技术,Istio 也是一个新兴的项目,在生产落地上存在很多需要了解的细节和可能遇到的各种问题。而且有些需求是有共性的,如 RPC 协议的支持,旧有非微服务应用的支持, 现有应用升级 Istio 的平滑迁移等。

“我们开源 SOFAMesh 和 SOFAMosn,一方面是希望可以将我们在 Service Mesh 和 Istio 落地的知识和经验分享出去看,另一方面希望通过开源共建的方式一起来将这个两个项目做的更完善。”杨冰说,“我们虽然现在开源出来的版本还不多,但是未来我们会把整个金融分布式云原生架构的领域补齐,一方面会把内部同领域产品更完整的开放出来,另一方面和每一个领域的社区实现都做到兼容和可互相集成。”

NEXT:分布式事务以及服务注册中心开源

蚂蚁在 2007 年就开始在核心的业务中去使用自研的分布式事务框架去解决服务化以及数据库拆分后的数据一致性问题,经过 10 多年的演进,SOFA 的分布式事务框架得到了蚂蚁内部业务广泛地使用与锻炼,包括蚂蚁金服最核心的交易、支付、账务系统等,在期间,SOFA 分布式事务框架也演化出了针对不用的业务场景的使用模式,兼顾研发效率与性能。而阿里巴巴前几个月也开源了其分布式事务框架 Fescar,蚂蚁金服和阿里巴巴将在分布式事务这个领域上强强联手,SOFA 的分布式事务框架将与 Fescar 合并,为业界提供更加优秀,更加全面的开源分布式事务解决方案

服务注册中心是微服务领域的重要组成部分,SOFA 的服务注册中心最早源自于淘宝的初版 ConfigServer,在支付宝/蚂蚁金服的业务发展驱动下,近十年间已经演进至第五代,具备无限水平扩展,高效的推送以及基于 AP 架构高可用能力,同时结合 SOFARPC 具备异地多活单元化架构支撑能力,SOFA 服务注册中心的开源将会极大丰富整个 SOFA 开源的生态体系,也为微服务领域带来一个全新的服务发现解决方案。

总结

纵观蚂蚁金服的 SOFA 中间件开源的历程,我们看到了一个大型的商业公司是如何将开源核心模式和其商业模式紧密结合的;其走过的从采用专有软件、应用部分开源软件、演化自身的自研软件,到开源核心软件、全面拥抱开源世界的路径值得很多技术企业学习和思考

“穿山甲专访”栏目是 Linux 中国社区推出的面向开源界、互联网技术圈的重要领军人物的系列采访,将为大家介绍中国开源领域中一些积极推动开源,谙熟开源思想的技术人,并辨析其思考、挖掘其动因,揭示其背后所发生的事情,为关注开源、有志于开源的企业和技术人标出一条路径。

取名为“穿山甲”寓意有二:取穿山甲挖掘、深入之意来象征技术进步和表征技术领袖的作用;穿山甲是珍稀保护动物,宣传公益。

不管怎么说,好的交流是一个活跃的开源社区的必备品。

我通常不会定下大的新年决心。当然,我在自我提升方面没有任何问题,这篇文章我希望锚定的是这个日历中的另外一部分。不过即使是这样,这里也有一些东西要从今年的免费日历上划掉,并将其替换为一些可以激发我的自省的新日历内容。

在 2017 年,我从不在社交媒体上分享我从未阅读过的文章。我一直保持这样的状态,我也认为它让我成为了一个更好的互联网公民。对于 2019 年,我正在考虑让我成为更好的开源软件维护者的决心。

下面是一些我在一些项目中担任维护者或共同维护者时坚持的决心:

1、包含行为准则

Jono Bacon 在他的文章“7 个你可能犯的错误”中包含了一条“不强制执行行为准则”。当然,要强制执行行为准则,你首先需要有一个行为准则。我打算默认用贡献者契约,但是你可以使用其他你喜欢的。关于这个许可协议,最好的方法是使用别人已经写好的,而不是你自己写的。但是重要的是,要找到一些能够定义你希望你的社区执行的,无论它们是什么样子。一旦这些被记录下来并强制执行,人们就能自行决定是否成为他们想象中社区的一份子。

2、使许可证清晰且明确

你知道什么真的很烦么?不清晰的许可证。这个软件基于 GPL 授权,如果没有进一步提供更多信息的文字,我无法知道更多信息。基于哪个版本的GPL?我可以用它吗?对于项目的非代码部分,“根据知识共享许可证(CC)授权”更糟糕。我喜欢知识共享许可证,但它有几个不同的许可证包含着不同的权利和义务。因此,我将非常清楚的说明哪个许可证的变种和版本适用于我的项目。我将会在仓库中包含许可的全文,并在其他文件中包含简明的注释。

与此相关的一类问题是使用 OSI 批准的许可证。想出一个新的准确的说明了你想要表达什么的许可证是有可能的,但是如果你需要强制推行它,祝你好运。会坚持使用它么?使用您项目的人会理解么?

3、快速分类错误报告和问题

在技术领域, 很少有比开源维护者更贫乏的东西了。即使在小型项目中,也很难找到时间去回答每个问题并修复每个错误。但这并不意味着我不能哪怕回应一下,它没必要是多段的回复。即使只是给 GitHub 问题贴了个标签也表明了我看见它了。也许我马上就会处理它,也许一年后我会处理它。但是让社区看到它很重要,是的,这里还有人管。

4、如果没有伴随的文档,请不要推送新特性或错误修复

尽管多年来我的开源贡献都围绕着文档,但我的项目并没有反映出我对它的重视。我能推送的提交不多,并不不需要某种形式的文档。新的特性显然应该在他们被提交时甚至是在之前就编写文档。但即使是错误修复,也应该在发行说明中有一个条目提及。如果没有什么意外,推送提交也是很好的改善文档的机会。

5、放弃一个项目时,要说清楚

我很不擅长对事情说“不”,我告诉编辑我会为 Opensource.com 写一到两篇文章,而现在我有了将近 60 篇文章。哎呀。但在某些时候,曾经我有兴趣的事情也会不再有兴趣。也许该项目是不必要的,因为它的功能被吸收到更大的项目中;也许只是我厌倦了它。但这对社区是不公平的(并且存在潜在的危险,正如最近的 event-stream 恶意软件注入所示),会让该项目陷入困境。维护者有权随时离开,但他们离开时应该说清楚。

无论你是开源维护者还是贡献者,如果你知道项目维护者应该作出的其他决心,请在评论中分享!


via: https://opensource.com/article/18/12/resolutions-open-source-project-maintainers

作者:Ben Cotton 选题:lujun9972 译者:bestony 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

了解如何使用 TODO Group 的成熟实践,使您的组织的开源软件目标与您的业务目标保持一致。

大多数使用开源的公司都了解其商业价值,但他们可能缺乏战略性地实施开源计划和获得全部回报的工具。根据 The New Stack 最近的一项调查,“开源计划的三大好处是 1)提高了对开源的认识,2)提高了开发周期的速度和灵活性,以及 3)更好的许可证合规性。”

运作一个开源计划办公室涉及到创建策略来帮助你定义和实施你的方法,并衡量你的进度。由 Linux 基金会与 TODO Group 合作开发的企业开源指南基于多年的经验和实践提供了专业开源知识。

最新的指南中,设置开源战略详细介绍了制定战略和确保成功之路的基本步骤。根据该指南,“你的开源战略将管理、参与和创建开源软件的计划与计划所服务的业务目标联系起来。这可以开辟许多机会并促进创新。”该指南涵盖以下主题:

  1. 为什么制定战略?
  2. 你的战略文件
  3. 战略方法
  4. 关键考虑因素
  5. 其他组成
  6. 确定投资回报率
  7. 投资目标

这里关键的第一步是创建和将你的开源策略形成文字,该策略将“帮助你最大限度地提高组织从开源中获得的利益。”同时,你详细的策略可以帮助你避免因错误而导致的困难,例如:选择错误的许可证或不正确地维护代码。根据指南,该文件还可以:

  • 让领导者感到兴奋并参与
  • 帮助在公司内获得支持
  • 促进分散的多部门组织的决策
  • 帮助建立一个健康的社区
  • 解释贵公司的开源方式和对其使用的支持
  • 明确贵公司在社区驱动的外部研发中投资的地方,以及贵公司将重点放在增值差异化的地方

Salesforce 的软件架构师兼本指南的撰稿人 Ian Varley 说:“在 Salesforce 内,我们有内部文件,我们将这些围绕开源战略指导和鼓励的文件分发给我们的工程团队。其中鼓励创建和使用开源,这让他们毫不含糊地知道公司的战略领导者完全支持它。此外,如果有某些我们不希望工程师使用的许可证或有其他开源指南,我们的内部文档需要明确。”

开源计划有助于促进企业文化,使企业更高效,并且根据指南,强有力的战略文档可以“帮助你的团队了解开源计划背后的业务目标,确保更好的决策,并最大限度地降低风险。”

了解如何使用设置开源策略新指南中的提示和经过验证的实践,将管理和创建开源软件的目标与组织的业务目标保持一致。然后,查看所有 12 个企业开源指南,了解有关使用开源获得成功的更多信息。

本文最初发表在 Linux基金会


via: https://www.linux.com/blog/2018/11/free-guide-setting-your-open-source-strategy

作者:Amber Ankerholz 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出