忒修斯悖论的应用

F5生态系统 | 2016年5月23日
忒修斯之船

至少在过去,哲学研究常常会提出一些表面看来似乎无关紧要的问题。毕竟,我们真的有必要知道“一艘船的每一块木质部件都被替换并修复后”,它是否还是原来的那艘船吗?这正是普鲁塔克在《忒修斯传》中提出的问题,后来被称为“忒修斯悖论”。更一般地说,它探讨的是:“一个物体的所有组成部分都被替换后,从根本上说是否仍是同一个物体。”(维基百科:忒修斯之船)

对于微服务,我们或许也可以提出同样的问题。将微服务应用于现有的单体应用时,本质上是通过用相应的服务替代函数来重构应用。函数在设计上规模较小(或者说应该如此),因此,由此产生的解耦服务被称为“微”服务。两者的区别可以从通信方式来看。在单体应用中,函数通过引用内存中的特定地址来调用;在基于微服务的应用中,函数(服务)则通过引用网络中的特定IP地址来调用。

微服务悖论

从概念上看,两者并无区别,只有调用各个功能组件的机制不同。由此绘制的图示基本相同,区别仅在于单体架构的“盒子”是一台服务器,而微服务架构的“盒子”是整个数据中心。前者使用本地寻址,后者使用网络寻址。每项功能的代码甚至可以完全相同,就像忒修斯之船上的木板一样。

但其业务功能保持一致。事实上,如果我们正确地分解了应用,用户应该看不出两者有任何明显差异。可以说,从忒修斯之船上乘客的角度来看,两者并无区别,也不应有区别。

但哲学家往往会深入探究,我们也必须如此,因为单体应用与基于微服务的应用之间的差异,实际上对运维至关重要。

网络运维日趋复杂

微服务简化了应用开发流程的许多环节,但也因此带来了大量运维复杂性。基于微服务的应用由多个不同部分组成,各部分之间存在大量网络连接,因此需要投入额外精力来管理所需的各种网络属性,包括IP地址、VLAN、NAT表等。可扩展性也成为一项挑战,甚至连Dijkstra也可能为此感到棘手,因为微服务和负载均衡服务的部署位置会对性能产生切实影响,具体取决于网络流量必须经过多少个网段。

这会突然需要额外的策略,因为适用于直接访问敏感数据源的服务的安全策略,并不适用于保护管理偏好设置或会话状态的另一项服务。由此形成的微安全策略网络确实带来了许多与微服务本身相同的优势,即更精细的控制和一种简洁优雅的架构,但同时也会成为运维噩梦,因为策略必须突然随服务一起移动,无论服务出现在架构中的哪个位置。

部署也突然变得复杂得多,就像从简单的方步舞转向更复杂的弗拉门戈舞,不仅舞步更多,还需要在舞池(数据中心)中进行更多移动。编排和自动化也因此成为必要手段,以确保在适当的时间将所有组件部署到位时具备所需的一致性和可预测性。

负责为应用提供这些网络和安全服务的人员需要认识到,无论从五万英尺的宏观视角看起来如何,这艘船都已不再相同。听起来很简单:只需用十项服务替代一个应用。瞧!应用就像忒修斯之船一样被重新构建出来。但从运维角度看,这艘船已经截然不同。新船的连接方式(集成)完全不同,这可能会改变船与海洋(网络)之间产生的阻力,往往导致航行速度变慢。

微服务仍处于发展初期。它们尚未席卷全球,但必须认识到,这并不像拆解忒修斯之船再重新组装那么简单。网络和安全服务运维团队必须从哲学家的视角,而非乘客(用户)的视角看待这一问题,因为微服务对网络和安全的影响截然不同。

分享
标签: 2016

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。