layotto icon indicating copy to clipboard operation
layotto copied to clipboard

“SOFA 星球”闯关计划 —— Layotto飞船

Open wangxingyu000 opened this issue 2 years ago • 39 comments

一、这是一个什么样的游戏

近年来,整个时代技术潮流走向开源与开放,中国开发者已经成为全球开源体系中的重要力量。

互联网企业都在积极拥抱开源,中国已逐渐生长出越来越亮眼的开源项目。SOFAStack 社区作为蚂蚁集团开源经验丰富的金融级分布式架构开源社区,还不快来搭上开源的列车。

二、这是一艘什么样的飞船

SOFA 星球中有众多开源项目,就像是一艘艘的飞船构建起了星球的生态,本次闯关活动中的 Layotto 飞船就是其中重要的一艘,提供了各种分布式的能力,比如状态管理、配置管理、事件发布订阅等能力,以简化应用的开发。 是一款使用 Golang 开发的应用运行时, 旨在帮助开发人员快速构建云原生应用,帮助应用和基础设施解耦。

徘徊在开源门口的技术爱好者,你还在犹豫什么?

和社区共同成长,不再做开源旁观者!

第一关:先立一个小 flag

一、测试相关

二、翻译相关

  • [x] 将“介绍 layotto CI” 的文档翻译成英文 https://github.com/mosn/layotto/issues/545

  • [x] 将“介绍如何自动测试 quickstart” 的文档翻译成英文 https://mosn.io/layotto/#/zh/development/test-quickstart

三、开发相关

  • [ ] 优化 lock api demo,让所有 lock 组件公用一个 demo
  • [x] 优化 sequencer api demo,让所有 sequencer 组件公用一个 demo
  • [x] 优化 pubsub api demo,让所有 pubsub 组件公用一个 demo

第二关:来实现一些很酷的 feature 吧!

一、组件开发

  • [x] 用 mysql 或 postgresql 实现分布式自增id 组件(已领)

二、 WASM 相关(已领完)

  • [x] 升级由 Rust 开发的 Wasm demo. #255
  • [x] 升级由 AssemblyScript 开发的 wasm demo. #256

三、工程化相关(已领完)

  • [x] 自动化检查 code style。 我们可以在 github workflow 中使用go lint自动检查代码风格,检查的细节比如: 代码里不能有中文; 用go xxx()起新协程的地方,必须有 recover; 当然这几个例子实现不了也不要紧,只要有有价值的自动化检查就行

目前 ci/cd 使用 github actions,配置文件在这里 可以参考一些 github actions 优质教程:

1.https://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html

2.http://www.ruanyifeng.com/blog/2019/12/github_actions.html(.http://www.ruanyifeng.com/blog/2019/12/github_actions.html)

  • [x] 发布新版本时自动化构建: 修改 workflow,每次发布新版本时自动交叉编译出多平台的二进制文件(linux/mac下的二进制文件)、压缩(把二进制文件压缩),以便在发版报告中提供二进制文件或压缩文件。需要调研一下方案,看看是自己写一个构建脚本、用go的交叉编译功能,还是有现成的平台帮忙做构建。

第三关:我要成为中间件大师!

一、可观测性(已领)

集成 Jaeger 等系统 目前 Layotto 支持了 trace 能力,希望能够和 Skywalking,Jaeger 等可观测性相关平台做集成

  • [x] 集成 Jaeger
  • [ ] 集成 zipkin
  • [ ] Some other tracing platform...

二、集成 istio 1.10(已领)

  • [x] 让 layotto 的 invokeService API 能够复用 istio 的流量治理能力

三、WASM Lab

  • [x] (已领)让 Layotto 支持通过接口调用的方式动态加载 wasm,以支持 FaaS 场景动态调度.#191

四、Layotto API

  • [ ] 设计实现 Redis API
  • [ ] 设计实现 Kafka API 有了这个API后,我们可以用阿里云 SLS 组件来实现这个 API
  • [ ] 设计实现事务消息 API
  • [ ] 设计实现延迟消息 API

如何获取获任务能量:

1.通过第一关即可成为 Contributor ,获得电子和实体版证书,且收集一颗能量值。

2.通过第二关即可成为 member,且收集四颗能量值。

2.通过第三关即可成为 Reviewer,且收集十颗能量值。

打通所有关可受邀成为“ Layotto 飞船驾驶员”(活动 Reviewer),查看更多人的闯关 PR,认识更多对开源开兴趣志同道合的朋友,帮助更多人登陆 SOFA 星球啦~

能量兑换:

完成任意任务即可获得相应的能量值,累计能量可随时兑换礼品奖励。

● 一颗能量值- SOFA 创意贴纸、钥匙链

● 四颗能量值- Layotto 专属杯子

● 十颗能量值- SOFA 宇宙抱枕

● 十五颗能量值- SOFA 社区大礼包

四、活动流程

1.参与者登陆自己的 GitHub 账号,在活动页面查闯关任务

2.挑选出自己想要完成的任务,在本文下留言自己选择的任务, Layotto 飞船驾驶员”(项目 Reviewer )会将任务分发给您

3.在完成任务后提交 PR 给“ Layotto 飞船驾驶员”(项目 Reviewer )@seeflood

4.“ Layotto 飞船驾驶员”(活动 Reviewer )对提交的 PR 进行 Review

5.PR 审核通过后,由 “ Layotto 飞船驾驶员”合并到项目主干中

6.即通过本关

7.重复以上流程依次,通过接下来的关卡,直至完全通关

8.成为飞船驾驶员,询问是否愿意成为成为“ Layotto 飞船驾驶员”(帮助 Review 闯关 PR)

五、通关直通车

如果在活动任务中有中意的任务,或只想做某一高阶任务怎么办?

可以直接选择该任务,进行提交,PR 审核通过后,依旧能获取相应的通关能量获取奖品。

祝你闯关顺利!

有任何问题可以微信添加 SOFAGirl180419,备注飞船任务

wangxingyu000 avatar Mar 23 '22 06:03 wangxingyu000

感谢毛毛 !!!

● 自动化检查 Pull request 标题,必须满足类型(scope)主题的格式,以便让 commit history 可读性更好。https://github.com/mosn/layotto/issues/243

这个 @ZLBer 在搞

自动化构建: 自动化编译出多平台的二进制文件(linux/mac 下的二进制文件)、压缩(把二进制文件压缩)、构建 docker 镜像

这个先hold,等 @Xunzhuo @zhenjunMa 做前置准备

作为替代,我再录入些新任务哈

seeflood avatar Mar 23 '22 08:03 seeflood

你好@seeflood,我想要尝试为 state API 相关代码添加注释

GimmeCyy avatar Mar 26 '22 08:03 GimmeCyy

@2019030007547 好呀欢迎~ 我在 issue https://github.com/mosn/layotto/issues/112#issuecomment-873522095 里把这个任务 assign 给你

参考资料: 新手攻略:从零开始成为 Layotto 贡献者 可以参照quickstart demo把hello world跑起来,先了解项目是干啥的

使用State API进行状态管理的demo

代码在:

pkg/grpc/default_api/api_state.go
pkg/grpc/dapr/dapr_api_state.go
pkg/runtime/state

seeflood avatar Mar 26 '22 08:03 seeflood

@seeflood 可以直接做这个吗?升级由 Rust 开发的 Wasm demo. https://github.com/mosn/layotto/issues/255

nanjingboy avatar Apr 07 '22 15:04 nanjingboy

@nanjingboy 当然可以,欢迎!我assign 给你哈 遇到问题可以找我,群聊或者github都行

seeflood avatar Apr 07 '22 15:04 seeflood

@nanjingboy 当然可以,欢迎!我assign 给你哈 遇到问题可以找我,群聊或者github都行

OK,BTW,群聊指的是?还有二维码?

nanjingboy avatar Apr 08 '22 08:04 nanjingboy

@GimmeCyy @nanjingboy hi, 我们拉了个微信群,可以微信添加 SOFAGirl180419 备注飞船任务,拉您进群哈~

seeflood avatar Apr 08 '22 08:04 seeflood

@seeflood 我试下” 提供一个 Layotto 集成 Prometheus 的示例 Demo“这个feature

LXPWing avatar Apr 12 '22 09:04 LXPWing

@LXPWing 好呀好呀,我建了个issue assign给你 https://github.com/mosn/layotto/issues/466

seeflood avatar Apr 12 '22 11:04 seeflood

hello,我申请一个为 actuator 相关代码添加注释的任务

Holdonbei avatar Apr 13 '22 11:04 Holdonbei

@Holdonbei 好呀欢迎!我 assign 给你哈,见 https://github.com/mosn/layotto/issues/112#issuecomment-873522095

seeflood avatar Apr 13 '22 11:04 seeflood

您的邮件我已收到。

Holdonbei avatar Apr 13 '22 11:04 Holdonbei

hello,我申请一个为 actuator 相关代码添加注释的任务

hello 辛苦微信添加 SOFAGirl180419,备注飞船任务,反馈下任务困难和进度🌹

wangxingyu000 avatar Apr 19 '22 08:04 wangxingyu000

@seeflood 我想尝试用 mysql 实现分布式自增id 组件

GimmeCyy avatar Apr 20 '22 09:04 GimmeCyy

@GimmeCyy 感谢帮助! 你可以发个"用 mysql 实现分布式自增id 组件"的 issue (比如像https://github.com/mosn/layotto/issues/150 这样) 然后我们把 issue assign 给你~

参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明

seeflood avatar Apr 20 '22 09:04 seeflood

你好 ,我希望可以用 mysql 或 postgresql 实现分布式自增id 组件,想参与该任务

azhsmesos avatar May 10 '22 11:05 azhsmesos

@azhsmesos 欢迎加入! “用 mysql 实现分布式自增 id组件” 这个事情 @GimmeCyy 已经在做了,你可以认领“用 postgresql 实现分布式自增id 组件” 哈 你可以发个"用 postgresql 实现分布式自增id 组件"的 issue (比如像 https://github.com/mosn/layotto/issues/489 这样) 然后我们把 issue assign 给你~

参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明

seeflood avatar May 10 '22 11:05 seeflood

您的邮件我已收到。

Holdonbei avatar May 10 '22 11:05 Holdonbei

@azhsmesos 欢迎加入! “用 mysql 实现分布式自增 id组件” 这个事情 @GimmeCyy 已经在做了,你可以认领“用 postgresql 实现分布式自增id 组件” 哈 你可以发个"用 postgresql 实现分布式自增id 组件"的 issue (比如像 #489 这样) 然后我们把 issue assign 给你~

参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明

您好,已经提issue了,issue序号544

azhsmesos avatar May 10 '22 11:05 azhsmesos

@seeflood 想了解下第一关是只剩下 https://github.com/mosn/layotto/issues/415 吗,还是说其他也可选?

codedededi avatar May 13 '22 03:05 codedededi

@seeflood 想了解下第一关是只剩下 #415 吗,还是说其他也可选?

文档相关合测试相关的都可以领取的 还有为 tcpdump 相关代码添加注释

wangxingyu000 avatar May 13 '22 03:05 wangxingyu000

@wangxingyu000 3Q,我先对比一下再选择任务

codedededi avatar May 13 '22 03:05 codedededi

@wangxingyu000 3Q,我先对比一下再选择任务

我们的第一关任务都更新了哟,可以看下。有任何问题可以微信添加 SOFAGirl180419,备注飞船任务

wangxingyu000 avatar May 18 '22 04:05 wangxingyu000

@seeflood 我想尝试”优化 sequencer api demo,让所有 sequencer 组件公用一个 demo“任务

GimmeCyy avatar May 18 '22 09:05 GimmeCyy

@seeflood 想确定下怎么理解,【所有 xx 组件公用一个 demo】类型的任务,是指不同类型的demo共用一套流程吗?通过参数或者配置区分类型

codedededi avatar May 19 '22 03:05 codedededi

@seeflood 我想尝试 #545

NTH19 avatar May 19 '22 06:05 NTH19

@seeflood 我想尝试 #545

@NTH19 感谢!可以在 #545 下面留言,我们assign 给您

seeflood avatar May 19 '22 07:05 seeflood

@seeflood 我想尝试”优化 sequencer api demo,让所有 sequencer 组件公用一个 demo“任务

@GimmeCyy Thanks! 可以发个issue,我们 assign给您

seeflood avatar May 19 '22 07:05 seeflood

是指不同类型的demo共用一套流程吗?通过参数或者配置区分类型

@gdutChenxj 是的,公用一个demo,通过参数区分 这么讲有点抽象,详情见 https://github.com/mosn/layotto/issues/455 我补充下描述吧

另外,头像是穹妹吗

seeflood avatar May 19 '22 07:05 seeflood

@seeflood 我想尝试【优化 pubsub api demo,让所有 pubsub 组件公用一个 demo】,描述补充完之后麻烦再at同步下

是穹妹!

codedededi avatar May 19 '22 07:05 codedededi