Rails 关于 Gem,我真的做对了吗

ruohanc · 2014年01月02日 · 最后由 wppurking 回复于 2014年01月02日 · 2527 次阅读

关于把 rails 的外部依赖抽成 Gem,我真的作对了吗?本该如此,还是说过程中存在可以优化的点呢?

背景:我在公司里面用 Rails 写了一个底层运维系统,功能很简单:远程开关服务器电源(通过标准 IPMI 协议与服务器独立的 RMC 芯片通信,由 RMC 实现服务器的上下电)。由两个主要部分组成,一个是中心调度和对外 API 提供的 oob-master。另一个则是机房的本地服务节点,负责发出 ipmi 指令实际操作 BMC。

  1. rubyipmi gem 负责发起实际的 IPMI 请求
  2. oob-ipmi gem,调用 rubyipmi 的 API 操作 BMC,并捕捉所有已知的 BMC 异常统一返回结果
  3. oob-branch 作为机房本地服务节点,用 rails 写的,BMC 调用部分直接使用 oob-ipmi API 返回结果
  4. oob-master 从外部客户接受请求后,通过一定的路由规则找到对应的 oob-branch 下发操作等待回应

最近发现 oob-master 上有一个问题,需要通过修改 rubyipmi 解决,结果我为了 rubyipmi 的升级,自己也数不清楚发布了几次(包括 staging 和 production)

  1. rubyipmi 升级
  2. oob-ipmi 升级 rubyipmi
  3. oob-branch 升级 oob-ipmi

传说中的过度抽象?

  • -|| 传递依赖~~ 是最底层的出了问题,果真好麻烦...
需要 登录 后方可回复, 如果你还没有账号请 注册新账号