来源 | 阿里巴巴云原生公众号
2021 年,由中国开源软件推进联盟 COPU 牵头发布了《2021 中国开源发展蓝皮书》,涵盖当今全球开源的总体情况分析、开发者分析、项目分析、领域案例,绘制了一副"开源数字生态地图"。让我们全面地看到了开源领域的中国力量。
报告指出:
- 国内的企业阿里开源活跃度排名第一,有的指标值甚至是其它公司之和,并且在社区化/开放等方面也做得不错。
- Dubbo 、RocketMQ两大云原生中间件开源项目处于 Apache 软件基金会中国的项目开源象限第一方阵(全球化+影响力两大维度)。
- 中国的活跃度Top 20项目列表中Nacos、Seata两大中间件开源项目上榜。
今年,阿里云原生开源大家族 13 大开源项目加入中国科学院软件研究所开源软件供应链点亮计划支持下的系列高校开源活动——暑期 2021。
活动官网:https://summer.iscas.ac.cn/
通过本活动,同学们可以在顶级开源导师的指导下,深度体验真实世界的软件开发,感受开源技术共建的魅力。参与本次计划的项目导师不乏 Apache 顶级项目 PMC & Committer、CNCF TOC 等,项目涉及领域微服务、容器、Serverless、混沌工程等多个热门方向。
项目介绍
1. Apache Dubbo
Dubbo 是阿里巴巴于 2011 年开源的高性能 RPC 框架,并逐渐从一个 RPC 框架向微服务生态系统转变。2019 年 5 月从 Apache 软件基金会毕业,并成为 Apache 顶级项目。2021 年,Dubbo 3.0 Preview 发布,直接宣布下一代云原生的技术蓝图。
- Dubbo idea list:https://summer.iscas.ac.cn/#/org/orgdetail/apachedubbo?lang=chi
- Dubbogo idea list:https://summer.iscas.ac.cn/#/org/orgdetail/dubbogo?lang=chi
2. Apache RocketMQ
RocketMQ 是阿里巴巴在 2012 年开源的分布式消息中间件,2016 年捐赠给 Apache 软件基金会,并于 2017 年 9 月 25 日成为 Apache 的顶级项目。
3. KubeVela
KubeVela 是一个“可编程式”的云原生应用管理与交付平台。作为 OAM(Open Application Model)在 Kubernetes 上的实现,KubeVela 从 2020 年 11 月正式宣布开源起,在演进至今的短短半年时间,社区贡献者达到 100+ 名,该项目不仅连续登上 GitHub Go 语言趋势榜首和 HackerNews 首页,更是迅速收获了包括 MasterCard、Springer Nature、第四范式、SILOT、Upbound 等来自世界各地、不同行业的终端用户,甚至还出现了像 Oracle Cloud、Napptive 等基于它构建的商业化产品。
4. Open Messaging
在云计算时代,消息通讯已经成为现代数据驱动架构的关键环节,消息中间件可以连接数据源、数据处理引擎和应用程序。然而,全球范围内,消息领域仍然存在两大问题:一是缺乏供应商中立的行业标准,导致各种消息中间件的高复杂性和不兼容性,相应地造成了公司的产品低效、混乱和供应商锁定等问题。二是目前已有的方案框架并不能很好地适配云架构,即非云原生架构,因此无法有效地对大数据、流计算和物联网等新兴业务需求提供技术支持。OpenMessaging 抛弃历史包袱,轻装上阵,期望能解决这些弊端。除了做到可以链接跨平台、跨语言、跨产品和跨云的标准之外,OpenMessaging 将提供 Cloud Native 的能力,面向云计算、混合云架构,实现多云平台无缝迁移,致力于提供金融、电子商务、IoT 及大数据等领域的一站式解决方案。发展 4 年多,至今包含 API Spec,OpenConnect,OpenChaos,OpenSchema,DLedger 在内的众多流行开源项目。
5. Sentinel
Sentinel 是阿里巴巴开源的,面向云原生、分布式服务架构的高可用防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支持 Java/Go/C++ 等多种语言,并且提供 Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力。
6. Arthas
随着微服务的流行,应用更加轻量和开发效率不断提升,但是带来的困境是线上问题排查越来越复杂困难。传统的 Java 排查问题,需要重启应用再进行调试,但是重启应用之后现场会丢失,问题难以复现。因此自 2018 年 9 月,阿里巴巴开源了久经考验,深受开发者喜爱的应用诊断利器 Arthas。在阿里巴巴内部 Arthas 每年诊断数百万次,服务 10000+ 应用,总共节约 9000 人日。Arthas 通过创新的字节码织入技术,可以在应用无需重启时,查看调用上下文,高效排查问题;结合火焰图,可以直接定位热点,发现性能瓶颈;通过 redefine 技术,实现在线热更新代码;同时支持黑屏化和白屏化诊断,可以连接诊断大规模的集群。目前 Arthas 在 GitHub 上星标数达到 26000+,多次登顶 github 趋势榜首,并收到 150+ 公司的登记支持,连续获得开源中国 GVP 和最受欢迎软件奖,是目前最流行的 Java 应用诊断工具。
7. Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 源代码位于 Github,并每日同步到 Gitee;有 17.4k stars 和 6.8k 的 forks;社区共有 28 位核心 Committer,其中一半来自于 Alibaba,一半来自于社区各行各业。Nacos 支持各类主流编程语言,支持 SpringCloud 及 Dubbo 生态,支持 K8s 及 Docker 等容器部署。Nacos 具备简单易用、特性丰富、超高性能、超大容量、高可用等优势。核心能力:提供服务发现和服务健康监测能力 ,提供动态配置服务能力,提供动态 DNS 服务 ,提供服务及其元数据管理能力。
未来发展方向 :完成全面插件化,为用户提供更简易的扩展方式来满足不同的安全性、可用性、可观测性的要求;Mesh 化探索,通过 Mesh 化进一步降低用户的使用成本和接入难度。
8. ChaosBlade
ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,现已进入 CNCF Sandbox。主要包含混沌工程实验工具 ChaosBlade 和混沌工程平台 ChaosBlade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。实验工具 chaosblade 支持 3 大系统平台,4 种编程语言应用,共涉及 200 多个实验场景,3000 多个实验参数,可以精细化的控制实验范围。混沌工程平台 chaosblade-box 支持实验工具托管,除已托管 ChaosBlade 外,还支持 Litmuschaos 实验工具。已登记使用企业 40 多家,其中已在工商银行、中国移动、小米、京东等企业中落地使用。
9. OpenKruise
OpenKruise 是阿里云开源的应用自动化扩展套件,也是当前 CNCF 托管的 Sandbox 项目。它在完全兼容标准的 Kubernetes 之上,围绕云原生应用场景提供多种丰富的自动化能力。它来自于阿里巴巴多年来容器化、云原生的技术沉淀,也是紧贴上游社区标准、适应互联网规模化场景的技术理念与最佳实践。目前 OpenKruise 在 Github 上已经有 2300+ star, 50+ 贡献者,已登记生产使用的用户包括来自国内外的阿里、蚂蚁、携程、苏宁、OPPO、有赞、斗鱼TV、申通、小红书、Lyft、Spectro Cloud 等企业。
10. OpenYurt
OpenYurt 是业界首个非侵入式的云原生边缘计算平台,于 2020 年 9 月成为 CNCF 沙箱项目。OpenYurt 秉承“Extending your native Kubernetes to Edge”的非侵入式设计理念,拥有可实现边缘计算全场景覆盖的能力。在过去两年内,OpenYurt 已实现全网覆盖和本地覆盖的全场景落地,全网覆盖的应用场景如 CDN、音视频直播、物联网、物流、工业大脑、城市大脑等;本地覆盖的应用场景和案例如阿里云 LinkEdge、优酷、盒马、AIBox、银泰商城等。
11. Seata
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 在阿里经济体内部一直扮演着分布式数据一致性的中间件角色,几乎每笔交易都要使用 Seata,帮助业务平稳的度过历年的双 11 洪荒流量,对业务进行了有力的技术支撑。2019 年 1 月为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,Seata 将以社区共建的形式帮助用户快速的落地分布式事务解决方案。目前 Seata 除了独创的 AT 事务模式外,还囊括了市面上绝大部分的分布式事务解决方案,为用户提供一站式的分布式事务解决方案。Seata 开源后受到了大家的热情追捧并一度蝉联 GitHub 榜首,快速的成为了国内分布式事务领域的事实标准,其生态得到了快速的发展。目前 Seata 支持了多种数据库与 RPC 框架,与其他开源社区相集成,支持多种语言框架等。
12. Serverless Devs
Serverless 是近年来云计算领域热门话题,其凭借着极致弹性、按量付费、降本提效等众多优势获得到了很多人的追捧,各云厂商也在不断的布局 Serverless 领域。但是随着时间的发展,Serverless 领域也暴露出一些比较严重的,例如厂商锁定严重,没有合适的开发者工具,程序难以调试......为此,Serverless Devs 应运而生,以解决开发者在开发 Serverless 应用中最根本的诉求为己任,以开源开放的形式为态度,以推动 Serverless 领域不断前行为目标,Serverless Devs 由阿里巴巴诞生,不拘泥于阿里云,放眼云计算,愿开放怀抱与更多 Serverlessor 一起,玩转 Serverless 架构。Serverless Devs 是一个由阿里巴巴发起的 Serverless 领域的开源项目,其目的是要和开发者们一起贡献一款开源开放无厂商锁定的 Serverless 开发者工具,希望这个工具可以在开发者开发 Serverless 应用的全生命周期发挥作用,希望开发者们可以像使用手机一样玩转 Serverless。
13. Dragonfly
Dragonfly 是一款基于 P2P 的智能镜像和文件分发工具。它旨在提高文件传输的效率和速率,最大限度地利用网络带宽,尤其是在分发大量数据时,例如应用分发、缓存分发、日志分发和镜像分发。在阿里巴巴,Dragonfly 每个月会被调用 20 亿次,分发的数据量高达 3.4PB。Dragonfly 已成为阿里巴巴基础设施中的重要一环。尽管容器技术大部分时候简化了运维工作,但是它也带来了一些挑战:例如镜像分发的效率问题,尤其是必须在多个主机上复制镜像分发时。Dragonfly 在这种场景下能够完美支持 Docker 和 PouchContainer。它也兼容其他格式的容器。相比原生方式,它能将容器分发速度提高 57 倍,并让 Registry 网络出口流量降低 99.5%。Dragonfly 能让所有类型的文件、镜像或数据分发变得简单而经济。目前已进入CNCF sandbox,是阿里第一个、中国第二个进入 CNCF sandbox 的项目。
项目申请攻略
1. 关于申请资格
- 本活动面向年满 18 周岁在校学生。
- 暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请。
- 海外学生可提供录取通知书/学生卡/在读证明证明学生身份。
2. 申请建议
- 仔细阅读学生指南:_https://summer.iscas.ac.cn/help/student/_。
- 多与导师沟通:对开源项目有一个全面的认识;细化方案,提升可行性;展现良好的沟通能力,有助于提升学中选概率。
- 每周至少 30 个小时能够投入在项目中。
- 对活动充分了解,至少要阅读学生指南、热点问题、活动日程等内容。
- 专注感兴趣的 1-2 个社区,提升中选率。
- 仔细查看社区的文档,认真熟悉社区的参与方式、沟通渠道、社区软件设计文档、社区开源仓库代码等。
- 项目申请书的质量是被选中的主要因素,仔细阅读申请要求,提交申请材料。
- 仔细阅读学生指南:_https://summer.iscas.ac.cn/help/student/_。
奖金说明
1. 奖金额度
每个项目奖金总额根据项目难度分为 12000 元、9000 元和 6000 元(注:奖金数额为税前人民币金额)。
2. 奖金发放时间
通过中期考核的学生会先收到 50% 的项目奖金,通过结项考核的学生将获得剩余 50% 的奖金。若结项评审未通过,则不予发放剩余奖金数额。
参与流程
- 于报名系统内注册账号并填写个人资料,点击直达:https://portal.summer-ospp.ac.cn/summer/login
- 于官网挑选项目,与导师沟通并准备项目申请材料:https://summer.iscas.ac.cn/#/org/projectlist?lang=chi
- 查看项目申请模板并根据要求准备相关材料:https://summer.iscas.ac.cn/help/assets/项目申请模板.pdf
- 通过报名系统提交项目申请材料,申请通道将于 5 月 24 日开放:https://portal.summer-ospp.ac.cn/summer/login
- 项目申请审核结果公示,学生可在官网查看申请结果,公示时间:6 月 30 日
- 进行第一阶段项目研发,提交研发成果供中期考核:7 月 1 日 - 8 月 15 日,中期考核结果公示:08 月 30 日
- 中期考核通过者进行第二阶段项目研发,提交研发成果供结项考核:8 月 16 日 - 9 月 30 日,结项考核结果公示:10 月 22 日
- 年度优秀项目公示:11 月上旬
钉钉搜索钉钉群号(33032396)直接和导师交流!