五个可预见的物联网挫折

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

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

一个难以理解的事实是,你可以“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 条评论
登录 后参与评论

相关文章

来自专栏技术文章

测评报告:热门项目管理工具哪家强?

现在市面上免费的项目管理工具多如牛毛,然而在工作中一旦用错了工具,就不是免费不免费的事了,如果对项目整体进度造成影响,就得不偿失了。本着让项目管理者省钱又省力的...

1480

我们是否应该在物联网上使用无服务器体系结构?

我们正处于前所未有的行业混乱的时代,这是由技术发展过快导致的,特别是在物联网领域。物联网有助于将行业转变为数据驱动的范例,开辟了巨大的机遇。一些公司正通过技术革...

4046
来自专栏云计算D1net

公有云供应商加入无服务器计算的浪潮

无服务器计算正在所有云服务供应商间流行着,而AWS Lambda之类的工具将可能改变资源的利用方式,尽管这一切还在萌芽阶段。 无服务器架构是云服务提供商之间最新...

3426
来自专栏鹅厂网事

浅谈服务器海量运营

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

3336
来自专栏程序你好

微服务的创建和管理最常见问题是什么?

如果你不正确地划分责任,你就会遇到问题。将任何应用程序应用到分布式系统中。想想你可能会遇到的问题。管理数据和管理状态是许多人在管理有状态和无状态数据时遇到问题的...

1081
来自专栏达摩兵的技术空间

前端大牛or架构师应该具备这些

相信很多招聘要求上都会写明需要3-5年经验才可以达到架构师要求,并且针对其中一些必要的技术储备大家已经能够耳熟能详,那究竟为什么需要这么久时间,以及具体每项技能...

986
来自专栏前沿技墅

监控系统的前世今生

微博平台监控技术负责人,负责微博平台、PC微博大规模监控系统的建设,主要关注实时大数据、运维自动化、智能化方向,2014年加入微博,之前曾在新浪、搜狐等公司从事...

2724
来自专栏知晓程序

App 打开小程序正式开放,我们都猜错了微信的方向

1764
来自专栏BestSDK

不是开发者也要知道,揭秘SDK采集5大隐私数据的方式

编辑导语 SDK采集包括五大类,开发者可以采集到信息:“设备信息”、“应用信息”、“传感器信息”、“账号信息”、“网络相关信息”。如果一旦开发者需要采集这些数据...

2925
来自专栏Rainbond开源「容器云平台」

使用好雨云平台的10大理由!

1774

扫码关注云+社区

领取腾讯云代金券