AWS 加速西门子智能家居系统的云上构建

2020 年 7 月 03 日

AWS 加速西门子智能家居系统的云上构建

“在 AWS 全面的无服务器架构支持下,总体来说我们的开发效率至少提升了 30%-40%,运维成本至少降低了 10%-20%。”

张豪-西门子(中国)有限公司 Siemens Advanta 解决方案开发服务 软件研发总监



西门子股份公司是全球知名的技术企业,成立 170 余年来,始终以卓越的工程技术、不懈的创新追求、优良的品质、出众的可靠性及广泛的国际性在业界独树一帜。西门子业务遍及全球,专注于服务楼宇和分布式能源系统的智能基础设施,以及针对过程工业和制造业的自动化和数字化等领域。通过独立运营的西门子能源和西门子交通业务,西门子正在重塑当今和未来的能源系统发展以及全球客运和货运服务市场。西门子自 1872 年进入中国,140 多年来始终以创新的技术、卓越的解决方案和产品坚持不懈地对中国的发展提供全面支持。目前,中国已成为西门子第二大海外市场。截至 2019 财年,西门子在中国拥有 21 个研发中心,超过 5,000 名研发和工程人员,以及约 13,200 项有效专利及专利申请。顶尖的研究人员在西门子设在北京、上海、苏州、南京、武汉、无锡、青岛和成都等地的创新实验室里工作。


业务需求与挑战


企业数字化转型成为时代主题,物联网正在重新定义业务模式。从 1899 年西门子的首款开关插座在德国问世至今,拥有 120 年悠久历史的西门子家居电气更是秉承德国工艺精益求精的严谨风格,立足中国,为蓬勃发展的中国市场提供全新设计理念的电器附件产品。


而在中国开发的具有标志性的 IoT 产品 SmartHome 智能家居云端系统,则是西门子中国研发团队自主设计研发的第一个完整的、系统化的智能家居产品,其后端服务要求全部构建在云上。云端系统只是西门子智能家居体系的一部分,产业下游包含很多硬件设备,主要是用于智能家居电气设备控制的硬件产品,例如智能照明开关、空调面板、红外遥控器等,面向客户群体为 C 端的家庭用户。


作为在 IoT 领域的重要尝试,去年西门子发布了一款空气检测仪——西睿,其服务就是基于 SmartHome 智能家居云端系统。西门子需要寻找一个可靠的云服务商为其提供持续稳定、安全的服务。


因为智能家居在设备联网、数据存储分析、安全性保障等层面,对技术要求非常高,其中涉及用户的隐私信息,必须保证业务安全性;而且智能家居是 To C 产品,保障用户体验是重中之重,例如:通过手机上的 APP 触发设备,响应时间如果过长,对用户体验是非常大的损伤,这就需要保证设备连接的稳定性以及快速的系统响应速度。


因此,在整体技术考量上,西门子对于快速开发、服务高可用、自动伸缩能力、架构扩展性、运维自动化、成本低廉以及安全性保障这些层面非常关注,希望在云服务支撑下,能够保证 IoT 海量设备需求的稳定连接,实现业务发展。


为什么选择 Amazon Web Services


在系统构建之初,西门子基于对服务选型等综合考量,在评估几家云平台后,最终选择了 AWS,将 SmartHome 智能家居云端系统全面构建在 AWS 上。


目前西门子 SmartHome 智能家居云端系统使用到的 AWS 服务包括:AWS LambdaAmazon API GatewayAWS IoT CoreAWS IoT Device ManagementAmazon DynamoDB、Amazon Simple Storage Service (Amazon S3)、Amazon CloudWatchAWS CloudFormation、Amazon Simple Notification Service (Amazon SNS)、Amazon Simple Queue Service (Amazon SQS)、 AWS Identity and Access Management (IAM)、Amazon Elasticsearch Service。其中所有的智能家居设备与云端通讯都以 AWS IoT 为基础架构和设施,所有业务都以 AWS Lambda 为基础进行构建。


基于 AWS 的全面技术架构,保证 SmartHome 用户体验与设备通讯


对于智能家居设备来说,用户与之连接的入口一般都是 APP,用户通过 APP 来控制设备。SmartHome 智能家居云端系统基于 AWS 的技术架构,整体业务实现流程为:



首先,APP 控制终端发起服务请求,通过 AWS API Gateway 来接收用户的请求命令,AWS API Gateway 直接调用到 AWS Lambda,基于 AWS Lambda 做数据访问、存储工作,另外对业务数据的增删改查也均通过 AWS Lambda 实现。目前 SmartHome 数据主要存储在 Amazon DynamoDB 上,还有部分存储在 Amazon S3 上,Amazon DynamoDB 主要存储活跃型数据比如用户帐号信息、设备的基本配置,Amazon S3 主要存储日志、用户行为等数据。


第二步,APP 涉及到用户登陆注册,以及获取某些权限使用户能够访问自己的设备,在这里用到了授权服务,授权分配 Token,西门子使用了专有的 AWS Lambda 生成 STS Token 交付给客户端。


接下来主要实现和设备的通讯,目前 SmartHome 智能家居云端系统全部是应用 AWS IoT Core,以及 AWS IoT Core 周边的一些分支服务,比如 AWS IoT Things Graph、规则引擎。最终由 Gateway 网关通过 AWS MQTT(专门设计用于容许间断式连接,可最大限度地减少代码在设备上占用的空间及降低网络带宽要求的轻型通信协议)连接与 server 端进行所有交互,包括控制设备,对设备的增删改查。


借助 AWS IoT Core,西门子可以轻松将任意数量的设备连接至云和其他设备。AWS IoT Core 支持 HTTP、WebSockets 和 MQTT,也支持其他行业标准和自定义协议,而且即使设备使用不同的协议,也可以相互通信。


整合设备数据,让数据在云上安全地流通


AWS 为西门子提供数据存储、数据安全保障服务,让海量设备数据,在云端安全地流通。


SmartHome 智能家居云端系统连接着非常多的设备,AWS IoT Things Graph 需要每个设备对应一个 Thing,西门子则通过设置汇总的网关,让其单独对应一个 Thing,来连接 AWS IoT Core 上面的其他单个 Thing,从而实现所有子设备的连接,并在命名上区分 Thing 之间的关系,把所有的设备数据收集上来。


通过 AWS IoT Things Graph 整合来自各个传感器的设备,数据汇总上来以后,再使用规则引擎,做数据的筛选以及简单的处理,如果有复杂的处理则需要通过规则引擎发送到 AWS Lambda,再进行一轮处理。


以上就是 SmartHome 智能家居云端系统整合数据的主线。在数据流通过程中,AWS 也能够保障业务安全性要求,AWS IoT 提供适用于所有安全层的服务,包括预防性安全机制(如对设备数据的加密和访问控制),以及持续监控和审核安全配置的服务。


解决运维难题,实现脚本自动化部署


西门子现在在云端部署的组件,包括 AWS Lambda、AWS API Gateway 在内的 95%以上都是通过 AWS CloudFormation 工具来进行自动脚本部署,只有少部分需要手动再处理。


在监控检测异常行为、报警设置层面,西门子使用 Amazon CloudWatch 在 SmartHome 智能家居云端系统里设置一些指标,例如设置 IoT 的消息数超过某个阈值,就会发送通知,以及当发现网关连接非常频繁,重连超过某个阈值时发送告警等。


同时,因为业务均部署在 AWS Lambda 上,不需要考虑自动扩容、容灾备份等问题,也大大减少了运维成本。


深入客户场景,提供团队型支持


西门子这样的大型企业在实行数字化创新过程中,于技术层面主要关注三点:快速简单构建、安全性保障、减少运维成本。这几点 AWS 已经交出了满意的答卷。


在团队服务层面,西门子则期待及时响应,快速解决问题的能力。AWS 为之提供了优质的团队服务,保证每次咨询都能及时回复,以及主动询问是否需要支持。张豪提到了一个场景:AWS IoT Core 中的设备影子有一定的存储大小限制,但西门子的设备是具有级联层级的多层设备,上报的状态数据会超过存储大小限制。最终在进行更细致的业务沟通后,有效地解决了数据存储问题。


获得的成效


通过使用 AWS 无服务器、IoT 等服务,西门子获得了一系列显著的成效,包括:


SmartHome 智能家居云端系统的请求在 100-300 并发数的情况下,AWS Lambda 的响应速度都能维持在 1s 以下,达到了在智能家居行业中的要求,甚至保证 95%都在 500ms 以下,少部分在 800ms 到 900ms。


在 AWS 全面的无服务器架构支持下,使用至今几乎没有碰到服务器维护等运维问题,总体来说开发的效率至少提升了 30%-40%,运维的成本至少降低了 10%-20%。


另外,AWS 对西门子的业务创新也提供了很好的帮助,通过使用 AWS Lambda 的服务,把 Serverless 先进的理念带给 SmartHome 开发团队,推动了其内部新技术传播。并且,通过对 AWS 服务特性的探讨和挖掘 ,深入地考虑 AWS 服务设计理念,也为西门子其他 IoT 场景的架构设计提供了很好的指导。


总体来说,AWS IoT 的整体架构,包括 IoT 通信协议的选择、 IoT 设备之间的交互、设备管理以及监控设备都满足了 SmartHome 项目的需求;AWS Lambda 服务器架构的高可用性和低成本也为 SmartHome 项目节省了大量设计和开发时间。


展望未来


未来,西门子有计划使用 AWS 数据分析服务,托管 ETL 可能会用到 AWS Glue 服务。另外,西门子也在考虑使用 Amazon CloudFront 做数据处理加速,以及考虑使用 AWS X-Ray 进行跟踪体系的建设。


关于西门子(中国)有限公司


西门子自 1872 年进入中国,140 多年来始终以创新的技术、卓越的解决方案和产品坚持不懈地对中国的发展提供全面支持。目前,中国已成为西门子第二大海外市场。


为什么使用 AWS


  • 功能全面的IoT服务

  • 确保海量设备数据安全

  • 灵活自动化部署运维

  • 深入业务场景提供专业支持


2020 年 7 月 03 日 14:002168

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

理想的程序员

极客思享

第三周-代码重构

Galaxy数据平台

spring-boot-route(六)整合JApiDocs生成接口文档

Java旅途

Java Spring Boot

Chrome浏览器架构

曲迪

chrome 前端 浏览器 专栏

架构师训练营第 1 期 - 第 3 周 - 作业

wgl

极客大学架构师训练营

Linux搭建C++开发调试环境

MySQL从删库到跑路

c++ Linux gdb 编译

Architecture Phase1 Week4:Summarize

phylony-lu

极客大学架构师训练营

阿里P8大牛爆肝的《Java核心技术总结》+《面试题总结》简直赞爆了

Java架构之路

Java 程序员 面试 编程语言 进阶

源码分析怎么做?

tison

源码分析

LeetCode题解:49. 字母异位词分组,数组计数+哈希表,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

第二节课后作业

happy

如何开一场高效的会议?

boshi

高效工作 开会

架构师训练营 - 学习笔记 - 第三周

徐时良

极客大学架构师训练营

Architecture Phase1 Week4:HomeWork

phylony-lu

极客大学架构师训练营

架构师训练营 Week4 系统架构 - 学习总结 架构演进

【知识分享】区块链常用术语

CECBC区块链专委会

区块链 货币 网络节点

金秋十月重磅技术文——网络编程大揭秘

Java架构师迁哥

编程 程序员

区块链带来第四次技术革命 融入生产大幅提高企业收入

CECBC区块链专委会

区块链 数字资产 技术革命

云服务器网站打开速度过慢,如何进行自检

德胜网络-阳

作者谈《阿里巴巴Java开发手册(规约)》背后的故事

Java架构师迁哥

架构师训练营 Week4 - 课后作业

缓存 自动化 异步 集群 冗余

区块链--凌驾于政治之上的存在

CECBC区块链专委会

区块链 信息技术

spring-boot-route(五)整合Swagger生成接口文档

Java旅途

Java springboot swagger

架构师训练营第四周学习总结

邓昀垚

极客大学架构师训练营

小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

冰河

项目管理 jenkins 灰度发布 自动构建 及时发布

一个草根的日常杂碎(10月5日)

刘新吾

随笔杂谈 生活记录 社会百态

架构师训练营 - 命题作业 - 第三周

徐时良

极客大学架构师训练营

架构师训练营第 1 期 - 第 3 周 - 学习总结

wgl

极客大学架构师训练营

架构师训练营第三周心得

CmHuang

Serverless Frist 的渐进式应用开发框架 Malagu

木香丘

开源 Serverless 云原生 Malagu Framework

Web Storage API的介绍和使用

程序那些事

web tech web storage web storage api storage api

AWS 加速西门子智能家居系统的云上构建-InfoQ