查看原文
其他

【开源之夏】Apollo 社区学生火热招募中!

01

活动简介


『开源之夏』(全称:开源软件供应链点亮计划——暑期 2021 )是一项专门面向高校学生的开源项目开发活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源社区的蓬勃发展。


『开源之夏』由中国科学院软件研究所与 OpenEuler 社区主办,中科院软件研究所南京软件技术研究院承办,开源社、SegmentFault 思否协办,联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。目前共有 109 家海内外开源技术社区、877 个开源项目通过了活动审核并上线官网。


这个活动主要是利用在校生的暑假时间,让学生们参与到开源项目的建设,一方面能提高个人技术能力、了解开源、结实开源圈的大牛,另一方面对于成功入选并完成社区项目考核的同学,还有最高 1.2 万元人民币的现金奖励。


02

关于 Apollo

Apollo 是一款可靠、易用的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。


自开源以来,Apollo 以其功能丰富、简单易用等特性,得到了社区开发者的广泛关注,在 Github 上有 24.7k star, 9k fork 和 77 contributor,也已在数百家企业中投入生产使用。


2.1 产品界面



2.2 架构模块



2.3 特点介绍

  • 统一管理不同环境、不同集群的配置

    • Apollo 提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。

    • 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等

    • 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖

    • 配置界面支持多语言(中文,English)

  • 配置修改实时生效(热发布)

    • 用户在 Apollo 修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。

  • 版本发布管理

    • 所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。

  • 灰度发布

    • 支持配置的灰度发布,比如点击发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。

  • 权限管理、发布审核、操作审计

    • 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。

    • 所有的操作都有审计日志,可以方便的追踪问题。

  • 客户端配置信息监控

    • 可以方便的看到配置在被哪些实例使用

  • 提供Java和.Net原生客户端

    • 提供了 Java 和 .Net 的原生客户端,方便应用集成

    • 支持 Spring Placeholder,Annotation 和 Spring Boot 的 ConfigurationProperties,方便应用使用(需要 Spring 3.1.1+)

    • 同时提供了 Http 接口,非 Java 和 .Net 应用也可以方便的使用

  • 提供开放平台API

    • Apollo 自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。

    • 不过 Apollo 出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。

    • 在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,如 xml, json,需要对格式做校验。

    • 还有一些使用方如 DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。

    • 对于这类应用,Apollo 支持应用方通过开放接口在 Apollo 进行配置的修改和发布,并且具备完善的授权和权限控制

  • 部署简单

    • 配置中心作为基础服务,可用性要求非常高,这就要求 Apollo 对外部依赖尽可能地少

    • 目前唯一的外部依赖是 MySQL,所以部署非常简单,只要安装好 Java 和 MySQL 就可以让 Apollo 跑起来

    • Apollo 还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数


03

Apollo 社区暑期 2021 项目详情

此次 Apollo 社区有幸参加『开源软件供应链点亮计划 - 暑期2021』活动,也是特意选取了一些社区呼声很高,同时也适合学生独立完成的项目,欢迎大家踊跃报名!


题目一:

Apollo 支持使用 Zookeeper 作为注册中心


项目主导师:陈凯玲(Apollo Committer)

联系邮箱:632104866@qq.com

难度:低

技术标签:Java, Cloud Native, Zookeeper


项目描述

Apollo 默认内置 Eureka 作为注册中心用来管理 apollo-configservice 和 apollo-adminservice 的服务实例列表。不过在实际使用中,有些公司为了统一管理,所以希望 apollo-configservice 和 apollo-adminservice 注册到公司内部已有的注册中心,比如 consul,nacos,zookeeper,kubernetes 等,目前 apollo 已经支持和 eureka, consul, nacos, kubernetes 等集成,所以需要增加对 zookeeper 的支持。 

更多信息详见 github 讨论:

https://github.com/ctripcorp/apollo/issues/3557


题目二:

提供 Apollo 公共 Namespace 统一管理页面

项目主导师:宋顺(Apollo PMC Member)

联系邮箱:nobodyiam@outlook.com

难度:中

技术标签:Java, Cloud Native, JavaScript, Distributed System, Database, MicroService


项目描述

Apollo 的创新点之一就是公共 Namespace,通过公共 Namespace 可以非常方便地实现公司内不同应用之间共享同一份配置,同时也提供了个性化配置的能力。不过当公共 Namespace 越来越多后,不少用户反馈希望能提供一个统一的视角,从而可以方便地看到系统中所有的公共 Namespace,从而可以方便配置的治理。此项目的目标就是提供一个公共 Namespace 的列表页面,用户可以在这个页面上看到所有的公共 Namespace,点击后可以跳转到实际的项目中去查看和编辑。 

更多信息详见 github 讨论:

https://github.com/ctripcorp/apollo/issues/1926


题目三:

Apollo 公共 namespace 支持 xml、json、yaml 等格式

项目主导师:张乐(Apollo Committer)

联系邮箱:lepdou@126.com

难度:中

技术标签:Java, Cloud Native, JavaScript, Distributed System, MicroService


项目描述

目前 Apollo 只支持 properties 格式的公共继承能力,但是用户实际使用过程中对于其它的格式,例如: xml、yaml、json 也有公共 namespace 的诉求,以期望 Apollo 平台能够支持全格式的公共继承能力

更多信息详见 github 讨论:

https://github.com/ctripcorp/apollo/issues/2602


题目四:

Apollo 扩展灰度发布能力,支持除 IP 以外的维度

项目主导师:宋顺(Apollo PMC Member)

联系邮箱:nobodyiam@outlook.com

难度:高

技术标签:Java, JavaScript, Distributed System, Database, Kubernetes, MicroService


项目描述

Apollo 的一大功能亮点是灰度发布,配置修改后,可以先对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。目前的灰度是基于 IP 的,比如可以设置对 1.1.1.1 生效新版本的配置,而其它的机器仍然使用老版本。不过在一些 IP 会动态变化的场景下(如 kubernetes),由于容器重启后往往会使用不同的 IP,灰度发布的使用场景会受到较大的限制,所以社区有很好的期望希望 Apollo 支持通过 IP 以外的维度来实现灰度发布。 

更多信息详见 github 讨论:

https://github.com/ctripcorp/apollo/issues/2932


04

学生申请

面向哪些学生

  • 本活动面向年满 18 周岁在校学生

  • 暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请

  • 海外学生可提供录取通知书/学生卡/在读证明证明学生身份


申请贴士

  • 在官网系统内注册账号并完善个人资料,并阅读学生指南,相关链接如下

    https://summer.iscas.ac.cn/help/student/

    https://summer.iscas.ac.cn/#/org/orgdetail/apollo

  • 在正式提交项目申请书之前,建议与社区指定的项目导师沟通,提高申请成功概率

  • 一个学生最多可以同时申请三个项目,但最终只能承担一个项目。尽量专注于感兴趣的 1-2 家社区,以免降低中选概率

  • 避免在最后一天提交,避免因不熟悉申请流程、缺少申请材料、网络等问题造成无法在指定时间内完成申请


05

奖金说明

奖金额度

每个项目奖金总额根据项目难度分为 12000 元(高难度)、9000 元(中等难度)和 6000 元(低难度)(注:奖金数额为税前人民币金额)


奖金发放时间

通过中期考核的学生会先收到 50% 的项目奖金,通过结项考核的学生将获得剩余 50% 的奖金。若结项评审未通过,则不予发放剩余奖金数额。


06

沟通与交流

为了方便高校同学与 Apollo 社区项目导师进行及时交流,我们特意创建了开源之夏微信沟通群,欢迎扫描下方二维码加入:


Apollo 社区期待你的参与!

  • 活动申请入口:

    https://summer.iscas.ac.cn/#/org/orgdetail/apollo

  • Apollo 官方网站:

    https://www.apolloconfig.com/

  • Apollo 项目地址:

    https://github.com/ctripcorp/apollo

  • Apollo 公共邮箱:

    apollo-config@googlegroups.com

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存