用灵动小妖精原型化机器部署工具 - 地隐

主要观点:作者在假期对机器管理工具进行了早期原型设计,旨在解决常见 DevOps 工具难以解决的信任引导问题,实现集中式基础设施管理工具负责新机器配置等功能。
关键信息:

  • 目标:创建中央基础设施管理工具,负责新机器配置,避免信任引导问题,使不同机器上的服务能相互连接。
  • 原型构建:

    • 系统由“boss”(负责触发新机器配置和跟踪已配置机器)、“provisioners”(调用云提供商 API 配置新机器)和“hob”(分为两部分,与 boss 协同工作并作为通信通道)组成。
    • “boss”通过创建 Goblins 对象并添加相关方法来管理机器,其中“create-machine”方法启动新机器配置过程。
    • “provisioners”目前是一个虚拟的,在新“vat”中运行额外代码来模拟新机器配置,其中“new-machine”方法与“hob”交互。
    • “hob”分为机器侧和管理服务器侧,机器侧组件注册“hob-client”,管理服务器侧根据客户端状态选择不同行为,提供服务绑定相关操作。
  • 应用示例:通过创建“app-machine”和“db-machine”,在“db-machine”上注册数据库服务能力,在“boss”中获取机器的服务能力并传递给“app-machine”,实现“app-machine”访问数据库服务。
    重要细节:
  • Goblins 中方法调用视为对象间的消息传递,“$”表示同步方法调用,“<-”表示异步消息发送,“on”用于处理异步消息的回调。
  • 虚拟 provisioner 中通过序列化 hob-server 引用并在用户数据中传递来实现跨机器通信。
  • 服务绑定是人类可读名称与服务能力的映射,为系统中的机器提供服务查找命名空间。
  • 目前只是一个粗糙的原型,还有很多细节未涵盖,如服务能力的衰减和声明式接口的定义等。
阅读 8
0 条评论