前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五个可预见的物联网挫折

五个可预见的物联网挫折

作者头像
未来守护者
发布2018-04-24 17:04:30
7050
发布2018-04-24 17:04:30
举报
文章被收录于专栏:安全领域安全领域

物联网发展的真正危险在于其早期巨大的“成功”

简单的原型实现设备,与支持上亿软硬件都不同的设备之间存在巨大差异。一些故障并不会直接影响收入和用户的体验,因此可能会在早期的应用和敏捷开发迭代中被忽略。物联网的持续发展也带来了进一步的风险。一旦物联网启动了,你就一刻也不能关闭它,因此日常维护将很困难,大幅度的架构变革几乎不可能实现。

一个难以理解的事实是,你可以“cool”,也可以“unreliable”(意思是你可以使用最先进的技术服务客户,但是最先进的技术往往不成熟,也就意味着不可靠;如果使用成熟的技术,一般来说这个技术就不够新了)。所以你无法得到又新又稳定的技术,你可以让你的客户失望几次,而不能总让他们失望。以下是可能会导致物联网失败的五种情况:

安全

我还需要说什么吗?

未能从一开始就构建海量数据

物联网的成功比我们以前见过的任何事物都更成功、更迅速。这意味着物联网系统必须无缝地扩展到大规模。扩展的比率不是一年增加50%或100% - 而可能是几年内从1,000台扩展到100,000,000台。

几乎所有的云供应商都声称能够支持巨大的工作负载,NoSQL供应商和open source projects也这样说。

我不会质疑这些说法,但有三个因素需要考虑,如果你打算像乐高那样(通过组装大量不同的技术来组建大规模系统)处理问题:

  1. 物理约束 - 单向穿越美国需要大约60毫秒的时间。这意味着,如果您的应用程序必须与服务器进行长连接而不是单个请求,则由于用户远离单个数据中心,因此您的延迟可能会跳到几秒钟内。数据中心内部也存在限制。大容量网络的瓶颈在10 GiB / sec左右。而且为了实现可扩展性,不仅您的应用不适合只用一台服务器,您的应用的任何一个子系统都不会只用一台服务器。
  2. 技术阻抗不匹配 - 无论单个技术的可扩展性如何,不能保证在将它们组合在一起时能获得高性能,特别是当它们以不同的速度处理数据时。
  3. 开发人员经验 - 您有多少开发人员实际构建了拥有100,000,000用户的系统?你是否碰巧雇用了他们中的任何一个,或者他们是承包商还是顾问?我并不是说你的员工不够聪明,但他们是否会可以在第一时间找到正确的问题解决方法?如果不能,是否第二次可以?

虽然还没想到,但有些事确实会发生

传统软件和物联网系统之间的一个根本区别是缺乏对部署环境的控制。现实世界是一个奇怪,混乱和不稳定的地方,而这个奇怪的地方会强加给你的系统。可笑的是,一次性事件会频繁发生。假设你部署了100,000,000个设备,每两周就会发生一次一百万分之一的事件。为了应对这种情况,许多开发人员需要改变思维方式。有微小不足的软件将允许错误进入系统并传播混乱。混乱将导致糟糕的用户体验,这反过来会导致负面影响 - 或者更糟。

未能预测和应对不断变化的物理复杂性

物联网系统的初始部署通常将重点放在某种形式的最小可行产品上,随着时间的推移,将增加更多功能。除此之外,经营有方的大公司将收购竞争对手,与拥有不同世界观、经营理念的人建立技术合作伙伴关系,以及随着时间推移会产生不可避免的技术债务。(技术债务是现在增加的任何代码,都将在以后,花费更多的时间,来处理它带来的问题。--通常是为了实现快速收益。)

在传统的企业环境中,我们可以替换老化的组件,但在物联网领域,实际的东西并非由您拥有 - 它们归您的客户所有,客户不能被强迫停止使用他们的设备,而是希望他们能够继续工作,直到设备坏损。这意味着,一旦您发布设备,这些设备就得用几十年,除非您愿意“堵塞”设备并和您的客户对抗(即对老旧设备不再支持,强制更新)。

未能预见和应对不断变化的逻辑复杂性

随着您的物理环境变得更加复杂,软件堆叠问题将会随之而来。随着时间的推移,好的、整洁的部署将变得陈旧和混乱,随着代码的过时和日益复杂的数据路径,当你不得不试图去修改代码时,你无法理解这些复杂的逻辑。

你的JSON杂乱吗?

文档数据存储在这种也是一个大问题。因为他们没有强制规定存储的内容,所以你拥有的每一个数据库交互代码都需要能够理解它遇到的每一个记录结构。比如在SQL数据库中,创建新列用于存储新数据。

你将如何协调需要保留的需求和需要升级的需求?

高可用(HA)应用程序就意味着笨拙(不灵活)。创建和部署真正的高可用性应用程序是一项重大的技术挑战。从长远来看,这是一个大问题。

你所有的开源组件都会得到十几年的维护吗?

废弃一个购物中心更加令人人悲伤的是废弃一个开源项目,尤其是在你使用它的时候被废弃了。虽然现在很容易通过组装一堆开源项目来构建复杂的应用程序,但随着时间的推移,维护是否不中断很难预测。一个或多个项目组建可能无人维护。这时,你必须选择变更架构或是做一些与盈利无关的Bug修复。至少,这意味着您需要保留编译整个项目的能力(因为替换组建要重新编译整个项目,而编译整个项目也不是一件简单的事情)。

所有物联网议程网站的贡献者均对其帖子的内容和准确性负责。作者的意见并不一定表达物联网议程的想法。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 物联网发展的真正危险在于其早期巨大的“成功”
  • 安全
  • 未能从一开始就构建海量数据
  • 虽然还没想到,但有些事确实会发生
  • 未能预测和应对不断变化的物理复杂性
  • 未能预见和应对不断变化的逻辑复杂性
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档