Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

月会 23.07.03 SOFAServerless 月会(第四次月会) #1

Closed
gold300jin opened this issue Jun 28, 2023 · 1 comment
Closed

月会 23.07.03 SOFAServerless 月会(第四次月会) #1

gold300jin opened this issue Jun 28, 2023 · 1 comment
Assignees

Comments

@gold300jin
Copy link
Collaborator

gold300jin commented Jun 28, 2023

月会议题

SOFAArk 版本发布计划

  • 2.2.1 版本,预计 7 月底发布
  • 打包插件支持url获取排除 jar 列表

Arklet 近期变更内容

  • 完成arklet工程初始化, 提供spring starter依赖方式启动
  • 提供apiclient指令渠道扩展能力, 完成http协议
  • 支持装卸、激活、查询模块指令, 提供标准指令扩展能力
  • 完成biz identify维度指令锁机制

当前未关闭 Issue 进展同步

需求类:
支持生成 zip64 格式可执行文件 ( sofastack/sofa-ark#404 )
sofaark静态合并部署 集成 springcloud ( sofastack/sofa-ark#645 )
Jar中jar中jar,解析ArtifactId ( sofastack/sofa-ark#655 )

bug类:
日志打印 ( sofastack/sofa-ark#624 )

--- 2023年6月月会---
测试类:
集成测试 ( sofastack/sofa-ark#25 )
需求类:
sofa-ark-maven-plugin的gradle插件( sofastack/sofa-ark#73 )
sofa-ark-maven-plugin 打包 war 包( sofastack/sofa-ark#215 )
资源隔离( sofastack/sofa-ark#566 )
资源模糊匹配( sofastack/sofa-ark#113 )

@gaosaroma

开源之夏活动

开发一个客户端,支持 Biz 模块的热部署和热卸载,初步实现 Serverless 体验

导师:@glmapper

设计详见 6月月会


开发一个 K8S Operator,编排客户端 API 实现 Biz 模块的热部署,初步达成 Serverless 研发体验

项目描述:SOFAArk 从最初的一个类隔离框架,逐步演进为支持合并部署与热部署的 “Serverless” 运行时框架,尤其在去年我们完成了 SOFAArk 1.0 到 2.0 架构的演进。但是为了让开发者真正享受 Serverless 的研发体验,我们需要先建设一个简易的 K8S Operator 和 SOFAServerlessModuleDeployment、SOFAServerlessModuleReplicaSet CRD,对接编排模块热装载和热卸载的客户端,实现模块秒级发布的初步能力,让开发者能初步体验到 Serverless 的发布运维能力。

导师:@gold300jin

项目产出要求:设计一组 CRD 并实现一个 K8S Operator,Operator 底层调用热安装和热卸载的客户端 arklet,让用户能够通过 kubectl 操纵 SOFAModuleDeployment 从而实现 SOFA 模块的热部署和热卸载运维能力。

项目技术要求:理解 SOFAArk 模块安装和卸载部分的源代码,并且熟悉 K8S CRD 和 Operator 体系的设计与开发。

初步设计

module deployment drawio

支持能力

通过API 和 CR 的方式支持:
支持 deployment 下 pod 的单模块和多模块的发布、回滚和下线。
支持变更中的 beta 和动态分组等部署策略。
支持变更中暂停和恢复。
支持模块的一致性校验和拉齐。
支持 pod 变更时(发布、重启、替换和扩容)的模块回放。
支持查询 pod 中的模块状态和运行情况。

SOFAServerless 开源计划和RoadMap

module-deployment

  • 23 年 7 月:module-deployment module-deployment crd api 和核心领域模型定义,首个初始化 MR 完成提交(代码脚手架)
  • 23 年 8 月:module-deployment operator 实现
  • 23 年 9 月:module-deployment 1.0 版本完成发布(基于 ModuleDeployment CR 的对等模块分组发布能力、模块首发和下线能力、基于基座模块安装个数限制的简单调度能力。使用 K8S 调和方式实现)
  • 23 年 10 月:module-deployment 1.1 版本完成发布(模块扩缩容能力、替换能力)
  • 23 年 11 月:module-deployment 1.2 版本完成发布(更加定制化的模块调度能力)
  • 24 年 1 月:module-deployment 1.3 版本完成发布(模块发布运维能力支持 HTTP/RPC + DB 方式实现)
  • 24 年 3 月:module-deployment 1.4 版本完成发布(支持先扩容后缩缩容的热部署方式,根除原地替换潜在的类卸载问题)
  • 24 年 5 月:module-deployment 1.5 版本完成发布(当发现基座应用 Pod 不够调度支持自动扩容 Pod)
  • 24 年 12 月:module-deployment 2.x 支持非对等模块发布

Arklet

  • 23.07.05:arklet 首个初始化 MR 完成提交
  • 23.09.05:arklet 1.0 版本完成发布(单模块安装和卸载运维编排、多模块安装和卸载运维编排、基座容器启动自动安装模块、HTTP/RPC 多种对外接口支持等)
  • 23 年 12 月:arklet 1.1 - 1.3 版本发布,包括每月一次的日常迭代演进。
@lylingzhen lylingzhen changed the title 月会】23.07.03 SOFAArk/SOFAServerless 月会(第四次月会) 月会 23.07.03 SOFAServerless 月会(第四次月会) Jun 28, 2023
@lylingzhen
Copy link
Contributor

月会结束,先关闭归档。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants