锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

分布式计算中的八大谬论

时间:2022-09-24 18:00:00 deutsch连接器0528

构建分布式系统是一项复杂的工作。分布式系统的成功是架构、设计、编码和测试的关键。任何失败都可能导致性能下降、频繁故障、成本超标和客户流失。在20世纪90年代Sun Microsystems的Peter Deutsch,James Gosling总结了分布式计算的八个谬论。随着时间的推移,IT人员对这些谬论的认识可能已经消退,所以想要提醒下大家。

八大谬论是:

  1. 网络可靠。 The network is reliable.
  2. 延迟为零。 Latency is zero.
  3. 带宽是无限的。 Bandwidth is infinite.
  4. 网络安全。 The network is secure.
  5. 拓扑不会改变。 Topology doesn’t change.
  6. 只有一个管理员。 There is one administrator.
  7. 运输成本为零。 Transport cost is zero.
  8. 网络是同质的。The network is homogeneous.

网络可靠

网络在局域内可能看起来坚如磐石。毕竟现在网络组件失败多久?即使单个组件出现故障,也有很多冗余?因此,随着网络变得越来越复杂,网络管理越容易出错,大多数都是配置错误。在某些情况下,多达三分之一的网络变化会导致影响网络可靠性的错误。软件和硬件都可能出现故障,尤其是路由器,约占所有故障的四分之一。不间断电源也可能中断,人们可能会改变不明智的设备配置,可能会有网络拥塞,拒绝服务(DoS)软件和固件升级或修复程序的攻击失败。网络遭受自然灾害和非自然灾害,设计一个弹性网络需要技能。超出你控制范围的广域链接很容易出错。

最近几个月,Azure事件很痛苦,这种失败率是主要云服务提供商的典型特征。对于移动应用程序,各种事情都可能出错:网络请求将在不可预测的间隔内失败,目标将不可用,数据将到达目的地,但不能返回确认,数据将在传输中损坏或不完整。移动应用程序必须在网络可靠性范围内具有弹性,但所有分布式应用程序都必须能够理所有这些可能性,网络节点必须能够处理服务器故障。

延迟为零

延迟不同于带宽。延迟是等待响应的时间。除了明显的处理延迟外,还有网络延迟,包括传输延迟、节点延迟和拥塞延迟。传输延迟随距离增加:约30 ms。欧美之间。节点数决定了节点延迟。

通常,开发人员在内部网络中建立分布式系统,这些系统有无关紧要的延迟,因此频繁的细粒度网络呼叫几乎不受惩罚。这种设计错误只有在投入实时系统时才会变得明显。

高延迟的一个令人不安的影响是它不是恒定的。在糟糕的网络上,偶尔可以在几秒钟内计算出来。就其性质而言,它不能保证单个数据包的顺序,甚至不能保证请求过程仍然存在。延迟会让事情变得更糟。此外,当应用程序发送多个请求进行补偿时,可以通过响应加剧暂时的高延迟。

带宽是无限的

虽然大多数现代电缆可以处理几乎无限的带宽,但我们还没有找到如何构建足够快的连接设备(集线器、交换机、路由器等),以确保所有连接用户的高带宽。典型的企业内部网络仍将有限制带宽的区域。

随着公共网络带宽的增加,视频和音频服务的使用速度也同样快,视频和音频曾经使用过广播技术。社交媒体等新用途往往吸收不断增加的带宽。此外,主要城市以外的许多地方都有最后一英里的限制,丢包的可能性也在增加。

一般来说,我们需要仔细假设高带宽是一种常见的体验。无论网络带宽多么令人印象深刻,它都无法接近共同托管过程的通信速度。

网络安全

遗憾的是,基于网络的系统仍然存在基本的安全漏洞。网络攻击逐年增加,好奇心、恶意和犯罪已经超越了它们的原始根源,成为国际冲突和政治行动的一部分。网络攻击是IT生活的一部分:对开发者来说很无聊,但却是必不可少的。有些问题是网络入侵检测往往是低优先级,所以我们并不总是意识到网络攻击的成功。

传统上,漏洞通常是防火墙配置不当的结果。大多数防火墙经常被检测到,因为你会立即发现你是否愚蠢地禁止它们。然而,这只是破坏网络和防火墙的一种方式,只是防御的一部分。Wi-Fi使用自己的设备通常是一个弱点(BYOD)虚拟化和软件定义网络可以通过损坏的设备进行入侵(SDN)也是如此。越来越多的DevOps对快速变化的基础设施的需求使得保持必要的控制措施更加困难。僵尸网络伙伴的入侵,企业网络中的僵尸网络是一个持续的问题。

你需要假设网络是敌对的,安全性必须深入。这意味着在分布式应用程序及其主机的基本设计中构建安全性。

通过深度防御,分布式系统的任何部分都需要一种安全的方式来访问其他网络资源。

安全带来了它自己的复杂性。这来自于维护不同用户账户、权限、证书、账户等的管理费用。主要的云网络中断是由更新前的权限到期引起的。

拓扑不会改变

网络拓扑不断变化,速度非常快。由于网络敏捷性的压力越来越大,与快速变化的业务需求同步是不可避免的。

无论您在哪里部署应用程序,您都必须假设大多数网络拓扑可能无法控制。网络管理员将一次性更改,因为它可能不符合您的利益。他们将移动服务器并更改网络拓扑以获得性能或安全性,并在服务器和网络故障时更改路由。

因此,依赖特定端点或路由的耐久性是错误的。网络的物理结构必须从任何分布式设计中抽象出来。

只有一个管理员

除非系统完全存在于小型系统中LAN否则,不同的管理员将与网络的各种组件相关联。他们将有不同程度的专业知识、不同的职责和优先事项。

服务失败的问题很重要。您的服务级别协议将要求在一定时间内做出响应。第一阶段将是确定问题。除非有问题的网络管理员是你开发团队的一部分,否则可能不容易。不幸的是,这不太可能。在许多网络中,问题可能是另一个组织的责任。若云组件是应用程序的重要组成部分,且云中断,则无法确定优先级。你所能做的就是等待。

如果网络中有很多管理员,就更难协调升级到网络或应用程序,尤其是当涉及到几个忙碌的人时。升级和部署必须协调完成。涉及的人越多,就越难!

运输成本为零

运输成本是指通过网络传输数据的总成本。我们可以参考时间和计算机资源,也可以参考财务成本。

需要将数据从应用程序层传输到传输层CPU以及其他资源。结构化信息需要序列化(编组)或分析,以将数据传输到线路上。由于带宽和延迟时间的影响可能大于带宽XML冗长和复杂XML占用JSON的两倍。

金融运输成本不仅包括创建网络的硬件和安装成本,还包括监控和维护网络服务器、服务和基础设施的成本,如果发现带宽不足,或者您的服务器实际上无法处理足够的并发请求。我们还需要考虑租赁线路和云服务的成本,由带宽支付

网络是同质的

今天的同质网络是罕见的,甚至比第一次发现谬误更罕见!网络可以连接到计算机和其他设备,每个设备都有不同的操作系统、不同的数据传输协议,所有设备都连接到各种供应商的网络组件。

然而,异构网络除非涉及设备或驱动程序的专有数据传输协议,否则没有特殊错误。从应用程序的角度来看,如果数据以开放的标准格式(如CSV,XML或JSON)传输和使用行业标准查询数据(如ODBC)方法,会有很大的帮助。

如果所有组件都来自供应商,则更可靠,因为测试覆盖范围可能更大,但实际情况是组件的丰富组合。这意味着互操作应该从任何分布式系统的设计开始。

结论

虽然这个指导是在20年前制定的,但我们今天仍然犯了这些错误。这些错误显示为不安全的端点,由于大对象的序列化、事务丢失、性能下降等原因。避免这些错误意味着这些谬误需要在每次设计和代码审查中考虑。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章