博客

为什么网络对应用架构如此重要

Lori MacVittie 缩略图
洛里·麦克维蒂
2017 年 5 月 8 日发布
2965-集团

我已经写了很多有关应用程序架构和网络之间有时混乱的关系的文章。 这些主要集中在应用程序架构的变化如何影响网络和用于提供速度、规模和安全性的应用服务。 然而,今天我们将扭转这种关系,看看网络如何对应用以及进而对创新产生重大影响。

最近一篇关于高可扩展性的文章让我想起了这一点,其中作者说明了网络为何重要以及演变如何发生——直到今天的无服务器,以及为什么我们实际上可以考虑一个互联网实际上就是计算机的世界。 它很长,但值得一读,我鼓励你花点时间阅读它。 我将在这里进行总结,但是有很多我没有提到但您会在源文章中发现有趣的内容。

在拨号访问互联网的时代,网站大部分都是文本,可能还有一两张(低质量的)图像。 如果您想要一些交互式的东西,您可以启动 gopher 或 telnet,并使用基于文本的终端。 拨号连接的最后一英里根本无法提供更复杂的服务。

随着拨号速度的增加,最终被第一批“宽带”服务所取代,应用程序开始显示更多图像并开始分成多个页面。 因为网络速度足够快,可以传输这些信息,而不会让消费者感到无聊并跑去玩暗黑破坏神。 这种模式一直持续,直到规模成为一个问题。 阻碍网站发展的不再是速度,而是规模。 负载平衡突然变成了一座金矿。

网络速度持续提升 – 不仅是最后一英里,还包括数据中心内部和互联网主干网。 Web 2.0 向世界推出了网络应用程序的概念,为我们提供了响应迅速、交互性强的网站,利用网络的能力来确保数据交换的规模和速度。

application架构由于网络的进步而发生了改变。 如果没有速度和规模,Web 2.0 的世界就永远不会诞生,因为它根本无法满足每个消费者与生俱来的速度需求。 但这些应用程序仍然采用传统的三层模型,包括表示层、逻辑层和数据层。 它们只是在互联网上传播。

不久之后,SOA(年轻人,面向服务架构 - 顺便说一句,从我的草坪上走开)风靡一时。 通过使用多种标准(SOAP、XML)并基于现有的面向服务概念,“Web 服务”占据了主导地位。 Web 服务和 SOA 引入了将应用分解为单个服务的概念。 如果这听起来很熟悉,那是应该的,因为今天我们称这个概念为“微服务”。

Web 服务的问题在于 XML 是一种功能强大的格式,在客户端(或服务器)上解析它需要时间。 因为 XML 是 SOA 的核心,这意味着每个服务都需要消耗 X 量的时间通过网络进行交换和处理。 由于处理消费者请求的时间有限,这必然限制了应用可合理分解成的服务数量。  人们最多只能期望获得两到三次服务。

如今,网络从端到端的速度越来越快,带宽越来越大。 数据中心(和云)网络以每秒千兆比特而不是每秒兆比特来衡量,甚至宽带连接也会让早期的企业网络速度相形见绌。 这意味着网络传输速度更快。 结合计算和 I/O 速度的惊人提升(因为摩尔定律是正确的),应用已经能够分解为数十甚至数百个服务,这些服务可以在预期的响应参数内调用和执行。 我们称之为微服务。

网络中的这些变化使得现代应用架构和 API 成为可能。 它以一种在本世纪初根本不可能实现的方式鼓励实时信息交换。 就像技术现在被视为商业战略的关键组成部分而不再承担其传统的支持角色一样,网络越来越成为应用的关键组成部分。 当我们看到下一波架构(无服务器)的到来时,我们会注意到,如果没有高度响应、集成的网络和应用服务层对规模和安全事件提供近乎即时的响应,这种计算模型是无法实现的。

现在,网络速度不再那么重要(我们正在达到光速的极限),而更多地与网络速度有关,以便响应诸如扩大和缩小规模、停止正在进行的攻击或绕过网络或应用程序基础设施中的问题等事件。 下一代网络是软件定义、软件驱动和软件支持的。 它还正在向一种可扩展性模型迁移,该模型采用即时方法,要求为托管在这些容器中的服务提供访问、扩展和安全性的服务具有几乎即时的反应速度。

我们通常所说的“网络”是由各种软件和硬件中的服务组成。 “网络”以即时模式响应和提供服务的能力将在一定程度上决定这些新兴应用架构模型的成功。 

“网络”从来没有像现在这样重要。