主要观点:作者在假期对机器管理工具进行了早期原型设计,旨在解决常见 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 引用并在用户数据中传递来实现跨机器通信。
- 服务绑定是人类可读名称与服务能力的映射,为系统中的机器提供服务查找命名空间。
- 目前只是一个粗糙的原型,还有很多细节未涵盖,如服务能力的衰减和声明式接口的定义等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。