欢迎报名开源之夏项目,领取 1w2 结项奖金

查看 20|回复 0
作者:johnlanni   
开源之夏介绍
开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。
目前开源之夏官网已经开启了学生报名,只要你满足以下要求即可进行项目申请:
  • 本活动面向年满 18 周岁在校学生。
  • 暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请。
  • 中国籍学生参与活动需提供身份证、学生证、教育部学籍在线验证报告(学信网)或在读证明。
  • 外籍学生参与活动需提供护照,同时提供录取通知书、学生卡、在读证明等文件用于证明学生身份。

    参与项目不仅可以为开源世界做出自己的贡献,还能获得丰厚的结项奖金(基础难度 8000 RMB/进阶难度 12000 RMB ),项目经验也会成为你毕业简历上的亮点,快来报名吧!
    报名截止时间为 6 月 3 日 15 点,具体参考官网活动流程和参与指南介绍:

    Higress 介绍
    Higress 是基于阿里内部两年多的实践沉淀,以开源 Istio 与 Envoy 为核心构建的下一代云原生网关。Higress 实现了安全防护网关、流量网关、微服务网关三层网关合一,可以显著降低网关的部署和运维成本。

    Higress 在阿里内部的诞生和演进历程可以看这篇文章:
    阿里巴巴重磅开源云原生网关: Higress
    Higress 开源半年时间,GitHub star 数已经破千,在上个月 Higress 已经 Release 出了第一个 RC 版本,作为正式 GA 的候选发布版本,详情可以查看这篇文章:
    上线控制台,降低使用门槛| Higress 1.0.0 RC 版本发布
    在本次开源之夏活动中,Higress 有两个进阶难度的项目可以申请,欢迎各位同学踊跃报名。
    项目介绍
    项目一:Higress Wasm 插件构建 /调试 /部署的命令行实现
    Higress 提供了很方便的 Wasm 插件扩展框架,具体可以查看这篇文章: 30 行代码写一个 Wasm Go 插件
    更详细的插件开发和调试流程可以查看这篇文章:使用 Go 语言开发 WASM 插件
    这里对插件的生效机制简单做个说明:

    [ol]
  • 用户将代码编译成 wasm 文件
  • 用户将 wasm 文件构建成 oci 镜像
  • 用户将 oci 镜像推送至镜像仓库
  • 用户创建 WasmPlugin 资源
  • Istio watch 到 WasmPlugin 资源的变化
  • Higress Gateway 中的 xDS proxy 进程从 Istio 获取到配置,发现插件的镜像地址
  • xDS proxy 从镜像仓库拉取镜像
  • xDS proxy 从镜像中提取出 wasm 文件
  • Higress Gateway 中的 envoy 进程从 xDS proxy 获取到配置,发现 wasm 文件的本地路径
  • envoy 从本地文件中加载 wasm 文件
    [/ol]
    这里 envoy 获取配置并加载 wasm 文件使用到了 ECDS (Extension Config Discovery Service)的机制,实现了 wasm 文件更新,直接热加载,不会导致任何连接中断,业务流量完全无损。
    这个项目的初衷是希望能基于 Higress 的 CLI 命令行工具(hgctl) 来进一步简化 Higress Wasm 插件的开发调试和安装部署步骤,使之更容易上手使用。
    需要实现的 hgctl 命令如下:
  • hgctl plugin build:构建 wasm OCI 镜像并推送到指定仓库
  • hgctl plugin test:启动 docker compose 测试插件功能
  • hgctl plugin install/uninstall:在当前 higress 集群中安装或卸载插件
  • hgctl plugin config:修改制定插件的配置

    Higress Wasm 插件配置基于 Openapi Specification ( OAS 3.0 )进行约束,需要能从代码中解析出插件配置字段格式,自动生成对应的 OAS 约束,用于添加到 OCI 镜像中,并同时用于 install/uninstall/config 等命令的参数配置校验
    项目二:基于 Wasm 实现 OIDC 认证插件
    Higress 作为一个云原生网关,需要实现 OIDC 认证的能力,方便用户对接外部认证服务。
    OIDC ( OpenID Connect ) 是基于 OAuth 2.0 的身份认证协议,可以用于实现 SSO ( Single Sign On )单点登录,即通过网关统一完成用户的身份认证,在身份认证成功后,再将资源请求转发给后端服务。

    流程简介如下:
    [ol]
  • 客户端向网关发起认证请求。
  • 网关将认证请求直接转发到给认证服务。
  • 认证服务读取请求中的验证信息(例如用户名、密码)进行验证,验证通过后返回 Code 给网关。
  • 网关将携带 Code 的应答返回给客户端。
  • 客户端向网关请求回调接口,请求中携带 Code 。
  • 网关请求认证服务颁发 Token ,请求中携带 Code 、Client ID 、Client Secret 。
  • 认证服务验证合法性,并返回 ID Token 。
  • 认证成功,网关将携带 ID Token 的应答返回给客户端。
  • 客户端向网关发起业务请求,请求中携带 ID Token ,网关校验请求中是否携带 ID Token 和合法性。
  • 网关校验客户端的业务请求合法,将请求透传给业务服务。
  • 业务服务进行业务处理后应答。
  • 网关将业务应答返回给客户端。
    [/ol]
    目前 Higress 也可以基于 Envoy 的 Ext Authz 机制对接外置的 oauth2-proxy 来实现鉴权,不过这个方案一方面有额外的请求开销,另一方面 oauth2-proxy 只能作一组 OIDC 配置,无法对接多个不同的认证服务
    加入社区
    GitHub: https://github.com/alibaba/higress
    官网: https://higress.io
    对于报名方式有任何疑问,或者对某一个任务非常感兴趣,并且想要深入了解的同学,欢迎扫码添加微信,备注开源之夏
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部