微软开源文化的演变
2020-11-28StephenR.Walli
微软创始人的初衷是建立一家由开发人员治理并为开发人员服务的公司。在当前的历史节点上,开发人员一直都在使用开源,并生活在一个开源的世界里。因此,微软也积极参与到开源的世界。
两年前,微软加入了开源创新网络OIN社区,另外还加入了LOT Network,这是两个专利持有组织,旨在保护开源社区。由此可看出,微软正致力于发展自己的开源文化。
据Gartner预测,到2022年,超过75%的全球组织将运行容器化应用程序来协助生产。Kubernetes是容器编排的核心,它是一个非常成功的开源软件项目。微软围绕支持Kubernetes及其相关开源项目,积极加入技术监督委员会、管理委员会和项目指导委员会。作为Linux基金会的董事会成员,多年来我们一直同社区不断成长。
Kubernetes的成长令人欣喜,它得到了广泛地使用,并且独立于供应商,得到了社区的支持。Kubernetes是一个非常活跃的社区项目,拥有众多来自不同公司和行业的贡献者。微软不仅参与了Kubernetes开源社区项目,还围绕Kubernetes这一项目创建了不少新项目,这些项目与云原生部署、云原生应用程序打包,以及如何在Kubernetes上大规模运营和管理有关。Kubernetes本身仍然只以容器编排为核心项目,但在应用过程中,我们不仅使用Kubernetes,还向Kubernetes回馈,使其真正成为应用程序部署的统一平台。
一些大型云服务提供商会把Kubernetes作为社区中的认证平台,引入自己的平台,以便创造丰富的客户体验。不同的服务商以多种不同的方式引入Kubernetes以增加安全性,应用Kubernetes进行程序管理、数据集治理,以及身份管理平台等。微软集成Kubernetes的方式与众不同,所有的模块都是面向客户的托管服务,为企业提供了安全的多层次的支持以及完整的统一管理经验。
我们应该明白,企业将开源项目当作一种可以与面向客户的旧的产品和服务相结合的组件,并以这种方式使用开源,回馈开源,保持开源项目健康活力。
下面我想谈谈GitHub,GitHub的使命是帮助开发人员协作构建全球平台。到2020年,GitHub上的开发人员总数增长到5000万,中国的用户在GitHub上汇聚成一个充满活力的成长型社区。有超过200万学生在GitHub上查阅和学习代码,并获得了很好的开源知识学习体验。另外,在目前全球财富50强企业中,有32家企业在GitHub上构建软件,形成一个非常稳定的企业合作环境。
这两年,GitHub在中国持续发展壮大,中国成为GitHub在亚太地区最大的市场,也是全球第二大市场。开源在中国拥有充满活力的技术发展机会。我们很高兴看到开源在中国的发展,看到GitHub在中国产生的良好连锁反应。
很多人都在关注关于开源软件供应链保护方面的问题。软件供应链指的是从开源开发人员把代码放入GitHub存储库,然后由应用程序开发人员持有,到最后用于公司的终端用户,或者用于销售给终端客户的产品的构建的全过程。
人们总是使用更多的小组件来构建大组件,这是软件供应链的规则。随着软件变得越来越复杂,越来越多的人在开源世界中协作和共享,长此以往,软件的依赖链就会越来越长。例如,Visual Studio Code依赖于Electron,Electron依赖于Chromium,而且并非当前版本的Chromium,它依赖于旧版本的Chromium。而Chromium则依赖于Ffmpeg,Chromium还依赖于Freetype……继续这样下去,Freetype中的漏洞可能会通过Electron迅速影响到很多其他软件。
我们正努力通过软件物料清单和策略来解决上述问题,细致化地考虑到诸如开发人员、生产者身份产品识别等因素,逐步构建软件供应链的完整性,让软件及其所有依赖关系都符合许可要求。
我们对我们创造的软件组件能否抱有充足的信心?基于这种怀疑,我们开始考虑构建材料、软件组件,以及应用策略等各种要素。早期的SPDX(软件包数据交换)项目为这些思想提供了形成基础。SPDX是Linux基金会旗下的项目,用于许可证的合规性识别,它提供了XML格式标记系统,可以帮助用户快速识别清单中软件组件的关联关系。
现在这个领域仍然有很多工作要做,我们的目的是要在整个复杂的软件供应链中,列出大家都认可的软件物料清单,并将软件供应链的不同部分通过组件整合起来,这个清单让企业在遇到很长的依赖性关系链时,可以进行简单快速的验证。这项工作引起了很多人的关注,微软也参与了这方面的讨论,我相信在不久的将来还会有更多的讨论。
最后我想给大家阐述一个观点:社区中的集体合作能够确保开源软件供应链的安全。我想请大家在2020年,继续通过齐心协力的行动,在全球各个开源软件社区中,参与开源,贡献开源,发展开源,让开源世界永远保持活力。