使用异步微服务实现家庭自动化

原标题Home Automation with Asynchronous Microservices

Fred George 讲解 2017 年的设备、事件与小型服务实验。

FGFred George讲者
频道
GOTO Conferences
发布
2017年11月7日
视频
42:07
阅读
2 分钟
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

Fred George 介绍一个个人家庭自动化实验,使用事件总线和小型服务协调不同设备。他采用的部署简化做法只针对该实验,应结合各系统的风险评估。

  1. 1不确定的目标演讲者把家庭自动化视为不确定问题。
  2. 2设备 API设备专用接口可以封装在服务之后。
  3. 3事件总线小型服务异步交换事件。
  4. 4急流与池塘事件流和保存的视图用途不同。
  5. 5没有回应请求可能没有监听者或回应。
  6. 6保持颜色多个服务可以恢复期望的灯光状态。
  7. 7实验测试和部署方式必须与系统风险相匹配。

要点建议

  1. 演讲者把家庭自动化视为不确定问题。
  2. 设备专用接口可以封装在服务之后。
  3. 小型服务异步交换事件。
  4. 事件流和保存的视图用途不同。
  5. 请求可能没有监听者或回应。
  6. 多个服务可以恢复期望的灯光状态。
  7. 测试和部署方式必须与系统风险相匹配。
全文

按章节阅读整理后的全文

只看原始文稿
01

在家中实验

不确定的需求和不同设备。

在这场 2017 年 GOTO 演讲中,Fred George 介绍使用小型异步微服务进行家庭自动化的实验。他把它作为探索不断变化需求的个人项目,而不是适用于每个家庭或生产系统的通用架构。

George 区分因果关系可预测的问题与团队需要实验和观察的复杂情境。他认为,目标尚不明确的家庭自动化适合逐步尝试想法。

他演示改变家中灯光,并介绍具有不同 API 的设备集合。挑战在于组合这些设备,同时避免让每个高层行为都直接依赖某一家厂商的接口。

02

异步架构

事件、流与服务职责。

他的设计使用小型服务和异步事件总线。面向设备的服务发布观察结果并接收命令,其他服务可以作出响应,而不必直接调用每个设备的专用实现。

他把共享事件流称为“急流”,筛选后的流称为“河流”,保存当前状态的视图称为“池塘”。这是一种理解事件流和可查询状态的方法,并不保证顺序或投递。

在他的“需求”模式中,服务发布请求时不假定某个特定监听者一定会回应。异步系统必须明确处理没有回应以及其他失败情况。

George 将硬件访问与高层场景、跨设备行为分开。监控服务观察事件流,可以标记冲突命令或发生故障的组件。

03

保持颜色与经验

状态恢复、监控与权衡。

他的“保持颜色”例子轮询灯光状态并发布,在灯恢复后状态不同时重新应用目标颜色。多个小服务协作,而不依赖中央编排服务。

他为了开发效率偏好快速实验和大量消息。在家庭实验中,他也主张省去部分测试直接部署;这种权衡不应推广到故障可能伤人或造成重大损失的系统。

George 将这一方法与敏捷价值观联系起来,认为处理不确定问题的团队可以围绕实验和反馈组织工作。他还描述了传感器和小型硬件方面可能的后续工作。

同频道的其他文章

3 张幻灯片39:12EN → 简体中文
GOTO Conferences· 2026年10月28日Cate Huston:严谨如何支撑 AI 辅助开发的交付速度Cate Huston · Twill两人团队分享发布关口、自动检查、优先级和加快交付的成本。AI 工程管理Software engineeringAI agents
4 张幻灯片22:33EN → 简体中文
GOTO Conferences· 2026年10月26日William Schor:Netflix 如何从单元测试走向合成金丝雀William Schor · Netflix用生成的工作负载和接近生产的基础设施,测试分布式键值服务。Software engineering
5 张幻灯片34:11EN → 简体中文
GOTO Conferences· 2026年10月23日Anatoliy Bilenko 和 Alberto Carretero:用形式化方法和 AI 让数据库协议可靠Anatoliy Bilenko, Alberto Carretero · CanonicalCanonical 的数据库工程师把可执行规格、基于模型的测试、故障探索和重建的执行历史串起来,并说明为什么这些方法单独用,都无法证明真实系统正确。开发流程与测试Code review & verification可观测性与可靠性+2
28:15EN → 简体中文
GOTO Conferences· 2026年10月22日Steve Poole:开源安全与 AI 带来的维护挑战Olimpiu Pop, Steve Poole为什么漏洞发现加速会给维护者、依赖使用者和升级流程增加压力。Software engineeringAI security
5 张幻灯片46:36EN → 简体中文
GOTO Conferences· 2026年10月21日Don Syme:围绕人类协作构建 Agent 自动化Don Syme · GitHubContinuous AI、仓库工作流,以及无人值守软件维护所需的防护措施。Agent orchestrationSoftware engineering编程智能体
28:23EN → 简体中文
GOTO Conferences· 2026年10月19日学习 Ash:声明式 Elixir 应用、测试与可扩展性Christian Alexander, Rebecca Le, Zach DanielRebecca Le 和 Zach Daniel 解释他们的书与框架如何共同演进。Software engineering