“开源(Open Source)”,这个在程序员界耳熟能详的词,几乎充斥着我们的整个职业生涯。相信没有一个程序员不知道啥是“开源”,相信没有一个程序员从来没用过“开源”产品。回顾一下,我们所熟知的一些伟大开源项目几乎都出自国外的程序大师或组织。然而,这几年国人也贡献了不少优秀的开源项目与产品,甚至有一些也收到国外同行的认可与赞许。下面我们就在一起盘点下,那些产自中国,走向世界的伟大开源项目吧!
Kylin™是第一个成为Apache顶级开源项目的中国作品。它是一个分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,能够处理TB乃至PB级别的分析任务。它能在亚秒内查询巨大的Hive表,并支持高并发。
Kylin的核心思想是预计算(以空间换时间),即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能力。
官方网站: http://kylin.apache.org/
2016年11月28日,阿里巴巴宣布将开源分布式消息中间件RocketMQ捐赠给Apache,成为Apache 孵化项目。在孵化期间,RocketMQ完成编码规约、分支模型、持续交付、发布规约等方面的产品规范化,持续听取和反馈社区,覆盖了电子商务、物联网、金融、大数据等众多领域需求,且具备了连接其它顶级开源生态(如Spark、Ignite和Storm等)能力。
RocketMQ来自于中国,但已经引起了全世界范围的关注。RocketMQ不仅斩获2015年中日韩开源论坛的CJK OSS大奖,并且已经进入欧美主流开源门户网站的视野,目前100多家公司和科研机构正在使用RocketMQ,值得一提的是目前美国是RocketMQ全球第二大访问国。
2017年9月25日,Apache软件基金会官方宣布,阿里巴巴捐赠给Apache社区的开源项目RocketMQ从Apache社区正式毕业,成为Apache顶级项目(TLP)。自此,Apache RocketMQ成为国内首个非Hadoop生态体系、国内首个互联网中间件的Apache顶级项目。这意味着中国技术走上国际舞台,在国际开源项目中了有主导权。
官方网站: http://rocketmq.apache.org/
Pulsar 是一个分布式的消息发布/订阅传递平台,旨在实现可扩展性和灵活性,并确保无数据丢失。项目于2015年由 Yahoo 开源,2017年6月提交给 Apache 孵化器。
Pulsar 最初目标是创建一个多租户可扩展的消息传递系统,也正因此,其将服务区和存储层分开的独特架构,已被证明是一个关键的优势。这两层架构使 Pulsar 能够为集群操作提供极为简化的方法,允许运营商轻松扩展集群并替换故障节点,或者提供更高的写入和读取可用性。
Pulsar 利用 Apache BookKeeper 作为存储组件,目前已被 MercadoLibre、Oath、One Click Retail、STICorp、TaxiStartup、Yahoo Japan Corporation 和 Zhaopin.com 等企业使用。
官方网站: http://pulsar.apache.org/
SkyWalking 是一款应用性能监控(APM)工具,对微服务、云原生和容器化应用提供自动化、高性能的监控方案。项目于2015年创建,并于2017年12月进入 Apache 孵化器。经过一年半时间,该项目目前已成为 Apache 基金会顶级项目。
SkyWalking 是观察性分析平台和应用性能管理系统。SkyWalking 是一款国人主导开发的开源应用性能监控系统。SkyWalking是一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。
SkyWalking 包括指标监控,分布式追踪,分布式系统性能诊断。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
官方网站: http://skywalking.apache.org/
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动复杂的单页应用。
官方网站: https://cn.vuejs.org/
Spring Cloud 是 Spring 社区打造出的一款基于 Spring Boot 用于快速构建分布式系统的框架,是一套微服务规范,并不是一个拿来即可用的框架,而 Spring Cloud Alibaba 的开源为开发者们提供了这套规范的实现方式。同时,Spring Cloud Alibaba 提供的完整的微服务组件、中文文档和本地化的开源服务提高了开发者们接入微服务的速率,并降低了后续的运维难度。
经过一年多的孵化,Spring Cloud Alibaba 作为 Spring 社区的唯一一个国产开源项目,正式从 Spring Cloud Incubator 孵化器毕业,并发布了适配 Spring Cloud Edgware、Finchley、Greenwich 三个版本的新版本。
Spring Cloud Alibaba 是 Spring 社区第一个也是唯一一个国产开源项目。
官方网站: https://github.com/alibaba/spring-cloud-alibaba
P.S. 欢迎关注我一直关注和持续分享的Spring Cloud专题(已更新Spring Cloud Alibaba的专题教程): http://blog.didispace.com/spring-cloud-learning/
Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。
2018 年,CNCF 正式宣布正式接纳 Harbor 为沙箱项目,此次大会上又宣布 Harbor 成为 CNCF 基金会第 19 个孵化项目,由 VMware 中国研发中心创立,是首个加入 CNCF 且原创于中国的项目,如今也成为 CNCF 首个进入孵化阶段的中国项目。
官方网站: https://goharbor.io/
2018年8月30日,CNCF 宣布接纳 TiKV 为沙箱项目。
TiKV 是一个分布式事务键值数据库,最初是为了补充 TiDB 而创建的。TiKV 采用 Rust 构建,由 Raft 提供支持,受到 Google Spanner 和 HBase 设计的启发,提供简化的调度和自动平衡,但不依赖于任何分布式文件系统。TiKV 是一个开源、统一分布式存储层,支持功能强大的数据一致性、分布式事务、水平可扩展性和云原生架构。功能特性:
官方网站: https://github.com/tikv/tikv
2018年11月14日,CNCF 宣布接纳 Dragonfly 为沙箱项目。
Dragonfly 主要解决以 Kubernetes 为核心的分布式应用编排系统的镜像分发难题。随着企业数字化大潮的席卷,行业应用纷纷朝微服务架构演进,并通过云化平台优化业务管理。Dragonfly 从实际落地场景出发,前瞻性地解决了云原生镜像分发的三大难题:
Dragonfly 于 2017 年开源,如今,Dragonfly 已经被应用在包括电商、运营商、金融、 互联网在内的一系列公司,如中国移动、蚂蚁金服、京东、⻁牙直播、滴滴、科大讯⻜、去哪儿等。
Dragonfly 进入 CNCF 对双方都是里程碑式的事件:Dragonfly 的云原生价值受到行业认可,CNCF 则在技术领域新增重要版图,首次将分发作为行业命题,提升企业微服务架构应用的交付效率。
官方网站: https://github.com/alibaba/Dragonfly
这里仅列举了进入国际开源组织、已经不仅仅服务于国人的伟大项目。除此之外,还有非常多优秀的国产开源项目被频繁的应用于我们的日常工作中,帮助我们更高效的完成工作,比如:Arthas、Dubbo、Apollo、ECharts…等等。虽然这些并没有进入这些高大上的国际组织,但是它们的维护者与贡献者们,依然值得我们每一个同行尊重,尤其是国内开源的氛围并没有那么好的情况下。但是,相信在这么多优秀项目的带领下,越来越多的中国开源会登上国际舞台!