Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: 采取API first的开发策略并提供命令行工具 #1451

Open
1 of 2 tasks
link89 opened this issue Oct 25, 2024 · 3 comments
Open
1 of 2 tasks

RFC: 采取API first的开发策略并提供命令行工具 #1451

link89 opened this issue Oct 25, 2024 · 3 comments

Comments

@link89
Copy link
Contributor

link89 commented Oct 25, 2024

简介 | Abstract

scow 是一个处于快速开发阶段的平台,处于这个阶段的软件一个常见的现象是有大量的功能和bug fix急待解决与交付。在这种情况下,如果功能的开发需要打通从产品设计、后端实现和前端实现的完整逻辑,则交付时间会很长,并且容易因为rush而出现问题。

在这种情况下,优先交付API并提供命令行工具会是一个更合理,也更容易让社区参与的选项。同时,scow是面向超算管理员的平台,命令行对于超算管理员来说更容易实现运维自动化。对于scow开发者而言,命令行也是天然的自动化测试工具,对于加速开发过程也有重大意义。

详细介绍 | Detailed Description

举例来说,目前有几个重要的后端能力是希望scow能交付的,例如 #1450 该功能是实现一个将某个account 的 owner 由一个成员转移给另一成员。该功能在UI层面如何进行产品设计和开发是一个相对复杂的问题,但在API层面则要简单得多:提供一个 SetAccountOwner 的接口,该接口接受一个新的 account 名做为参数,在执行时,后台启动一个事务将 account owner 字段进行替换即可。

而命令行层面上,用户可以

scow-cmd login --url http://scow-ip/  --user demo_admin 
> enter your password: *******

scow-cmd set_account_owner --account demo_account --owner user1

如此一来该功能可以在不对UI进行改动的情况下进行交付。

UI设计 | UI Design

本提案的目的在于推迟UI功能开发的优先级。

对数据库的修改 | Changes to database schemas.

No response

对API的修改 | Changes to API

No response

您是否有兴趣实现此功能? | Are you interested to implement it?

  • 是 | Yes
  • 否 | No
@Miracle575
Copy link
Contributor

感谢您的建议,我们需要对该功能进行研讨后再给您回复,谢谢您对 OpenSCOW 的支持

@vanstriker
Copy link
Member

OpenSCOW项目的目标是在网页进行管理,实现了的功能都会在UI上体现。如果是命令行的操作,可以在调度器或者认证系统等环境中单独执行。这个issue的优先级在开发团队这边会很低,我们也欢迎社区开发者来实现这个功能。

@link89
Copy link
Contributor Author

link89 commented Nov 7, 2024

OpenSCOW项目的目标是在网页进行管理,实现了的功能都会在UI上体现。

我认为这并不冲突。举例来说,假设 changeAccountOwner 的后端接口已经实现,但是前端页面还没设计。在这种情况下,接口先于UI界面发布,如此可以让有需要的用户以 api 的形式或命令的形式先行使用,而界面可以有更长的设计和实现周期。

,我们也欢迎社区开发者来实现这个功能。

我们自己内部已经有一些 scow api 封装,用于批量作业(例如每月从所有用户账户中自动扣除存储费用等)。之后可以考虑发布。如果社区有意维护一个命令行项目会更为理想。

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

No branches or pull requests

3 participants