30 秒看懂
Fred George 介绍一个个人家庭自动化实验,使用事件总线和小型服务协调不同设备。他采用的部署简化做法只针对该实验,应结合各系统的风险评估。
- 1不确定的目标演讲者把家庭自动化视为不确定问题。
- 2设备 API设备专用接口可以封装在服务之后。
- 3事件总线小型服务异步交换事件。
- 4急流与池塘事件流和保存的视图用途不同。
- 5没有回应请求可能没有监听者或回应。
- 6保持颜色多个服务可以恢复期望的灯光状态。
- 7实验测试和部署方式必须与系统风险相匹配。
要点建议
- 演讲者把家庭自动化视为不确定问题。
- 设备专用接口可以封装在服务之后。
- 小型服务异步交换事件。
- 事件流和保存的视图用途不同。
- 请求可能没有监听者或回应。
- 多个服务可以恢复期望的灯光状态。
- 测试和部署方式必须与系统风险相匹配。
按章节阅读整理后的全文
在家中实验
不确定的需求和不同设备。
在这场 2017 年 GOTO 演讲中,Fred George 介绍使用小型异步微服务进行家庭自动化的实验。他把它作为探索不断变化需求的个人项目,而不是适用于每个家庭或生产系统的通用架构。
George 区分因果关系可预测的问题与团队需要实验和观察的复杂情境。他认为,目标尚不明确的家庭自动化适合逐步尝试想法。
他演示改变家中灯光,并介绍具有不同 API 的设备集合。挑战在于组合这些设备,同时避免让每个高层行为都直接依赖某一家厂商的接口。
异步架构
事件、流与服务职责。
他的设计使用小型服务和异步事件总线。面向设备的服务发布观察结果并接收命令,其他服务可以作出响应,而不必直接调用每个设备的专用实现。
他把共享事件流称为“急流”,筛选后的流称为“河流”,保存当前状态的视图称为“池塘”。这是一种理解事件流和可查询状态的方法,并不保证顺序或投递。
在他的“需求”模式中,服务发布请求时不假定某个特定监听者一定会回应。异步系统必须明确处理没有回应以及其他失败情况。
George 将硬件访问与高层场景、跨设备行为分开。监控服务观察事件流,可以标记冲突命令或发生故障的组件。
保持颜色与经验
状态恢复、监控与权衡。
他的“保持颜色”例子轮询灯光状态并发布,在灯恢复后状态不同时重新应用目标颜色。多个小服务协作,而不依赖中央编排服务。
他为了开发效率偏好快速实验和大量消息。在家庭实验中,他也主张省去部分测试直接部署;这种权衡不应推广到故障可能伤人或造成重大损失的系统。
George 将这一方法与敏捷价值观联系起来,认为处理不确定问题的团队可以围绕实验和反馈组织工作。他还描述了传感器和小型硬件方面可能的后续工作。
同频道的其他文章
39:12EN → 简体中文
22:33EN → 简体中文
34:11EN → 简体中文
28:15EN → 简体中文
46:36EN → 简体中文
28:23EN → 简体中文