当下的热门词“云原生”颇具讽刺意味。
首先要注意的是,云原生虽然名称中有“云”,却并不需要云。没想到吧?这个名称源于一种应用架构方法:构建依赖基础设施,并围绕云的理念进行设计的应用,包括弹性、规模经济和分布式计算。毫无疑问,正是云计算将这些理念带入了应用交付的方方面面,从应用架构到自动化,从基于API的集成到基础设施。云计算改变了我们开发、构建和部署应用的方式。诞生于公有云的应用自然也具备许多相同的依赖关系和特征。因此,这个名称准确体现了这种架构风格的由来。
云原生与容器之间也确实存在关联。仅这一点就使其有别于主要依靠虚拟机和云原生服务来实现类似目标的云上原生应用。云原生与容器紧密耦合,因为相关的容器编排工具(Kubernetes)是将应用与实现弹性所需的基础设施相结合的简便且常用方式,并可借助这种弹性实现所需的规模经济。

在云原生应用中,组件会被拆分为细粒度单元,以实现规模经济。因此,云原生几乎与容器密不可分。应用需要能够按需仅扩展当前有需求的功能。传统上,这种弹性的应用功能分区通过依赖第7层(HTTP)路由的架构实现,云原生也不例外。同样的原则也适用于这些现代应用。它们通常使用入口控制器(一种基础设施应用服务),将入站请求分发到相应的应用组件容器实例。
这种划分通常在API层面进行,其中URI与API调用相匹配,而API调用又与特定的容器服务相匹配。入口控制将请求定向到相应的容器服务,再由该服务将请求分发到组件或应用实例池。这是一种双层架构:第7层(HTTP)入口控制将请求分发到普通负载均衡器(POLB),由后者完成请求的交付和处理。
此外,云原生应用还依赖服务注册表。服务注册表本质上是另一项基础设施应用服务,是实现云原生应用弹性所必需的。如果没有服务发现机制,负载均衡和入口控制将无法运行,进而导致应用无法运行。
组件、服务、服务注册中心、负载均衡器和入口控制之间的这种关系,体现了云原生应用的原则。应用组件与基础设施紧密关联,但并非紧耦合。如果没有第7层路由和传统负载均衡功能,组件就无法实现规模经济,也无法跨环境分布。基础设施与应用之间确实存在依赖关系,这对于满足应用交付这一业务需求至关重要。
这些都不依赖或要求任何类型的云计算环境。云原生应用可以独立部署,而且通常也是如此。事实上,从容器及其运行位置的相关数据来看,“本地部署”仍比公有云环境更为普遍。

当然,容器可以部署在私有云(本地部署)上。事实上,我们的研究持续表明,本地私有云仍是使用最广泛的云模式。在我们的《2019 年应用服务状况报告》中,超过四分之三(79%)的受访者在本地私有云中部署了应用,而使用公有云的受访者比例仍未过半,仅为45%。
云原生应用是一种快速发展的架构,未来5年仍将持续增长。要成功交付并保护这些现代应用,关键在于了解它们与基础设施应用服务之间的关系及其对这些服务的依赖。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。