数字化的浪潮席卷而来,千行百业都在借助智能技术推动业务场景的创新,成就商业价值。这一过程中,数字化的能力为企业构建现代化应用起到了关键作用。F5资深架构师林静认为,企业建设现代应用架构的动力来自业务驱动,用户需求的复杂多变使得应用底层的技术架构也要随之改变,不能一味追求激进的技术,而是要自上而下进行考虑,“当前,上层应用需要企业的整体支持,在各个业务系统之间形成有效的横向整合,不仅要融合传统技术和现代技术,还要在专业人才等方面相应提升。”
根据F5发布的《2023年应用策略现状报告》,79%的受访者不仅为内部员工提供支持,还为外部用户提供数字服务,58%拥有数字服务的企业超过一半的收入源自数字服务。F5观察到数字世界的三大主导技术趋势:混合模式被企业视为良策,兼容多云或混合环境的技术受到企业的欢迎,众多企业将混合战略视为良策;零信任和API安全成为IT领导者关注的重点,90%的受访者表示面临多云挑战,其中复杂性和安全性挑战高居榜首,为应对这一挑战,81%的受访者表示已经或即将采用零信任安全;数据和生成式人工智能将改变世界,生成式人工智能目前正处于高速发展阶段,该领域的突破层出不穷。
在多云环境的现代应用架构中,融入了很多新的技术,以满足模型的开发、发布、应用运行等需求,包括云原生、Kubernetes等技术得到了广泛的应用。对于现代应用来说,需要更多的服务和组装能力,前者依赖底层的运行环境,需要一系列的平台支持,横向贯穿业务对接、需求理解、用户服务、产业应用、研发、产品化等维度,以及运营、维护、交付、治理和反馈等环节。F5更关注横向平台内的组成能力,为基础设施提供支持。在底层的技术能力上,F5重点聚焦服务代理和DNS。
现代应用架构中的服务代理
在F5,服务代理可以被视为软负载或是网关,从数据中心的视角来看,由三个部分组成:基础网络架构驱动、软件架构驱动、基础平台架构驱动,其中,基础网络架构驱动会涉及传统ADC的应用安全和可靠、快速发布等问题,支持多活中心的流量调度和业务调配,也有更多的用户在思考软件化部署。软件架构驱动可以分为两个部分,即分布式服务架构(DSA)和微服务服务架构,演进部署的方式可以把服务通过消息的方式分解,把大应用拆解成几个宏应用,F5会帮助其在网关型的异构协议之间进行处理,例如某个应用因为特殊原因必须由网关进行服务代理,NGINX就可以提供相应的解决方案。
现代应用下的DNS需求特点
从应用的视角来看,网关、负载均衡和反向代理类的技术重要性在提升,从传统架构下的具象应用向虚拟化、容器化演进,在私有云部署时的负载均衡或代理技术已成为云上的标准ELB(弹性负载均衡),从传统的ELB演化为NLB(网络型负载均衡)、ALB(应用型负载均衡)。这样一来,私有云的服务能力在底层就需要NGINX和其他框架提供支撑。
Kubernetes标准的服务可表现为可访问的对象,背后的技术就是服务代理,使得用户在申请服务时不再需要专门做负载均衡,而是交付服务时默认支持负载均衡和网关的能力,这种接近上层应用的部署方式让企业在推行分布式技术的时候有了更多的选择。对于企业来说,服务代理的水平决定了平台级微服务下的应用能力。例如,如果服务代理落地时涉及的入口、业务API网关和服务网格所采用的技术各不相同,那么企业要付出的学习成本会很高,想同时处理好这些任务就要有一个扎实的底层数据架构。对此,F5采用的NGINX技术栈在上述的场景中都提供了相应的技术能力,用统一的反向代理理念来支撑上层应用。
林静认为,软负载已经是IP技术实施的关键,IP技术可以支撑现代应用,“如果基础打不牢,关键组件搭不好,支撑位搭不好,企业的楼就盖不好。很多地方存在各式各样的软负载技术网关,技术不一样,形态不一样,位置也不一样,如果这些东西很散乱,就意味着很难打通所有的适配能力。所以,我们必须要高屋建瓴的统一技术栈。”目前,F5也正在研发下一代的负载均衡技术,以解决现有架构下的问题,帮助企业更好地适配云原生的发展。
F5对底层网络同样关注。如果底层的物理网络、SDN网络和上层的应用网络不匹配,就会出现很多问题,例如之间不支持BGP,那么就难以满足上层应用的高性能、高效率的要求,同时,应用也无法有效基于现有的底层网络任意扩展。再如,如果企业希望把业务运行在多个集群上,进行多个服务实例的部署,那么就要打通底层的网络。同样,这种互通也有利于传统应用和Kubernetes应用的兼容和改造。如果是针对大模型等AI类型的应用,其特点是不需要过多的连接,服务关系也比较少,但是每建立一个连接通道,所涉及的需求带宽就会很高。此时,底层网络的设计就要考虑相应的要求,包括物理位置机架到数据路径之间的节点数量等,使得通信距离更短,甚至是在同一个机架内完成。
此外,考虑到企业现代应用和IP之间没有一一对应到关系,传统的管理方式是把IP资产和应用资产之间进行映射,使得底层网络的稳定性和上层应用的可变动态性之间有所割裂,这就需要在设计底层网络时,把上层应用所需的IP资产在底层上进行解耦。这样一来,无论业务的IP地址是什么,底层的关系资产和应用都可以被有效管控。如果网络能做到IP资产与上层应用之间没有关联性,那就证明网络和上层应用之间是友好的,否则就是不友好的。
在现代架构软负载技术的应用路径设计的实践中,以某金融客户为例,该企业的某个团队负责处理类似负载网关技术和软负载技术的问题,从起初的没有给予充分重视,到后来随着业务的发展将这些工作逐步纳入整个开发中心体系中,他们希望可以支撑全行所有的运营中心的技术应用。为此,该团队选择的切入点是在基于Kubernetes的平台上建立一些区域,解决与Kubernetes入口控制器相关的问题,引入了负载技术打造入口控制器。之后,又进一步完善了底层的数据能力,并且希望扩展满足虚拟机、非Kubernetes环境下单元化网关等需求,由统一的技术来实现,把软负载的网关技术延伸到更广阔的SLB领域。
此外,该团队还计划扩展到业务路由,进入API网关领域,在大量的SLB分析之后,提升流量网关、单元化网关和业务路由整体控制面的成熟度。此时,企业在标准现代化的Kubernetes平台和传统区域中的大部分网关类技术已经被统一,具备了较好的管理和控制能力,以及日常管理的成熟度,之后再向业务层面拓展。由此,上层业务获得了很好的支撑,服务网络治理也更加游刃有余,运营能力也得到了较大的提升。