文  山金孝

前文中,我们分析并讲述了云原生技术体系在传统企业数字化转型过程中的价值和意义,并重点描述和分析了云原生技术体系如何重构传统企业零散分布式的异构基础设施,进而实现底层分布式异构基础设施的大一统和上层丰富多样中间件及个性差异化应用软件的统一运行时,最终实现以一套技术体系支持任意应用负载,运行于任意云环境,从而为传统企业数字化转型构建起应用从“传统”蜕变至“现代”的最佳路径。目前而言,对云原生的布道普及,更多的还是以互联网云厂商工程师为主,而作为云计算大变革最核心和下半场的主要阵地,传统产业的从业者应该清醒认识到,传统企业的云原生觉醒时代已经到来,东隅如逝,桑榆必晚。本文中,我们将尝试探讨大型多元化传统企业如何构建既适合自身当前业务需求现状,又能满足未来业务发展需求的云原生技术平台和技术体系。

一、传统企业为什么需要建设云原生技术体系

在“数字化觉醒时代:传统企业云原生技术体系建设之路(一)”文中,我们结合传统产业的现状和云原生架构的技术优势,从传统产业的数字化转型、技术架构升级等多个维度阐述了云原生对于传统行业的价值和意义。本文中,为了更进一步的论证传统企业拥抱云原生的必要性,我们将从云原生的初衷和本质两个维度,来论述云原生对于传统企业转型升级的重要意义。

1.1 云原生的初衷是解决复杂系统快速迭代与稳定运行的问题

从云原生的发展历程来看,其在早期的出现,源自于互联网企业解决上层大型分布式应用快速迭代的诉求和底层分布式基础设施稳定运行的要求时所归纳的方法论和最佳实践。在消费互联网迅速崛起和野蛮生长的年代,大部分互联网公司均建设了应对海量访问和高并发请求的大型分布式复杂系统,而为了快速开疆辟土、降维攻击,实现业务的快速增长,这些复杂系统通常需要快速迭代、高频发版,同时还要保障其运行稳定性问题,这对于当时的工程师而言,就犹如在高速行驶的列车上更换轮毂。而为了解决大型分布式复杂系统从开发、部署到运行、运维的全流程敏捷与稳定性问题,工程师们针对基础设施和软件架构提出了弹性、敏捷不可变基础设施,反脆弱性、基于API的协作,以及模块化、松耦合、可观测、可追踪、面向微服务和自动化管理等资源需求和软件开发设计理念,而随着云计算技术的发展,这些理念最终演变成以容器、微服务、不可变基础设施、声明式API和服务网格等为代表的技术体系,也即今天我们所谓的云原生技术体系。由此可见,云原生技术体系及其理念演变的背后,其所要解决的,就是通过一系列软件架构的变革和方法论,解决分布式复杂系统快速变更与稳定性的问题,进而确保企业既能以最敏捷快速的方式响应市场的需求变化,又能气定神闲的确保复杂系统在敏捷迭代中的稳定运行,同时还能实现整个过程的简洁化、自动化和高效化。

既然云原生源自于消费互联网,那么对于传统企业的意义又何在?事实上,如果某个传统企业具有足够高的行业垄断和壁垒,而企业发展仅需维持现状或稳定运行,那么传统的企业级IT架构,配以商业系统和外部合作伙伴,事实上也并无不好,反而可能更适合企业自身,因为云原生的种种诱惑其实也意味着封装了更多的复杂,其技术门槛的高度也并非厘米之间。但是,在全行业数字化转型竞赛,互联网企业全力迈向产业互联网的时代,又能有多少传统企业仅凭行业壁垒来生存,更多看到的,往往是倒地的大象,身体还是温的。

所谓传统企业无需敏捷和快速响应,究竟是业务需求及其发展本身存在的客观变化很慢,还是人为主观能动性的抵触使得企业变化缓慢,在互联网行业碾压式的攻击和诸多传统企业艰难喘息的事实之下,结论越来越倾向于后者。事实上,在传统企业走向数字化和产业互联网转型的过程中,当“产业+互联网”开始盛行时,曾经消费互联网遇见和需要解决的问题,产业互联网只能是有过之而无不及,虽然传统企业应用系统以“稳态”著称,但是产业互联网时代,传统企业需要的不在仅限于“稳态”,而是兼具“稳态”和“敏态”,而让二者皆可得正是云原生技术的初衷。临渊羡鱼,不如退而结网,传统企业需要看到的,不是来自互联网企业的云原生,而是云原生为互联网企业解决了什么,带来了什么,传统企业需要的是师夷长技以制夷,利用来自消费互联网的先进技术,在产业互联网时代重塑自己的产业,重构自己的竞争优势以变革自己、抵御外敌,夺取产业互联网的主动权和领导权。

1.2 云原生的本质是企业利用云计算先进技术红利实现降本增效

长期以来,业界通常认为传统企业的技术体系以围绕CTOT领域构建为主,而以云原生为代表的新一代IT技术,则是消费互联网行业为满足自身发展需求而演化出的产物,具有较强的消费互联网行业属性,而不具有产业互联网的普适通用性。此外,也有部分传统行业观点认为,虽然云原生技术具有跨时代的先进性,但是在传统产业特有的行业壁垒和固有的流程复杂度面前,云原生不过是与己无关的另一世界喧嚣,跨界渗透那是遥远的未来。然而,诸如此类掩耳盗铃、自我蒙蔽的观点,往往也正是大变革时代,反复上演的“消灭你,与你无关”的开始。历次工业革命的历史结果表明,在通用技术的大变革面前,不存在行业上的边界之分,只存在时间上的早晚之别。以上各种观点的存在,在于传统行业并未真正理解云原生的本质,从企业经营的角度来看,云原生的本质,是一套利用云计算技术为企业实现降本增效的最佳实践和方法论,而其核心本质正是企业的降本增效

传统企业对于云原生的理解,在看到其技术先进性的同时,也需要看到其技术背后的核心商业本质。首先,从技术先进性的层面来看,云原生是云计算的再升级或高级形态,是云计算作为通用技术大变革发展第二阶段的产物,云计算的优势是将计算、存储、网络等资源进行集中池化,进而实现基础设施的大规模集约化管理,满足应用弹性、分布式的资源诉求,并通过IaCInfrastructure as Code)的方式进行资源管理,云计算的出现极大变革了传统基础设施资源的供给、管理和运维模式。在云计算持续发展的基础之上,云原生更进一层,通过全新基于云计算的软件架构设计和应用开发交付方式,最大化利用云计算的技术优势,来构建具有敏捷性、高弹性、容错性、自愈性,以及可扩展、可观测、松耦合等特性的应用系统,云原生有效解决了业务需求的“快”与分布式复杂基础设施“稳”之间的矛盾。其次,从技术背后的商业本质层面来看,云原生是指企业充分利用云计算的先进技术红利,构建现代化的软件架构和应用系统,聚焦业务开发与应用创新,充分释放业务价值,进而为企业实现降本增效的最佳实践和方法论。

企业借助云原生的先进技术,可以最快、最敏捷的速度响应业务的需求和变化,建立企业应对市场不确定环境的韧性,满足市场竞争的需求,实现企业的增效;同时以最接近业务创新的方式聚焦应用开发,屏蔽低价值、高成本的非核心业务工作,以全流程自动化的方式实现复杂应用系统的稳定运行,实现企业的降本。而作为一套以利用云计算技术为企业降本增效的最佳实践和方法论,正是云原生最核心的商业价值和本质,也是数字化时代,全行业均在全力拥抱云原生的根本原因。

二、传统企业云原生技术体系建设进阶之路

2.1 传统企业云原生建设并行推进的两个方向

时至今日,云原生所涉及的各类代表技术,如容器、服务网格、微服务、不可变基础设施和声明式API,都已非常成熟,多数互联网公司和云服务厂商均构建了自身极为完备和成熟的云原生技术和产品体系。与此同时,尽管传统企业对云原生的热度也在不断升温,但是鉴于传统行业,尤其大型多元化传统企业长期以来业务发展的特殊性,例如历史业务发展存留的大量传统架构应用系统,应用建设多年依赖外采和供应商所带来的自主能力缺失和技术债务,企业并购战略和多化元发展带来的存量分布式异构基础设施和差异化应用,以及涉及国计民生的制造、控制类现场实时特殊应用系统的大量存在,均给传统企业的云原生之路带来了异于互联网行业的极大挑战。事实上,即使互联网企业,云原生建设之路也并非一蹴而就,其探索过程也是循序渐进。因此传统企业的云原生技术体系建设,更应该结合自身实际,做好整体推进的顶层设计和长远规划,以兼顾过去、面向未来,夯基递进、立而不破的思路,平稳渐进的向云原生技术体系演化。

通常而言,传统行业的业务形态、技术架构和技能体系均与互联网新生代企业存在较大差异,因此即使全行业都在迈向云原生这个共同的目标,但是关于云原生的探索实践和推进落地的具体路径与方法却有所区别。不同于互联网企业或中小企业以云端为中心的云原生应用构建,传统企业更多是基于混合云和分布式云的云边端协同一体化云原生应用构建,其云原生建设之路也不仅局限于中心化云原生技术平台的建设,还需考虑兼容各类存量分布式的异构化基础设施,以及多场景、多语言、多平台依赖的差异化关键生产应用的云原生重构和开发需求,需要从中心云原生、区域云原生到边缘云原生,乃至终端云原生进行一体化的全局考虑,最终才能走向传统企业的全面云原生。

鉴于传统企业,尤其大型多元化传统企业的业务复杂性,我们认为传统企业的云原生建设之路,应分别从垂直纵向和水平横向两个维度分阶段逐层推进。垂直纵向主要从技术架构维度进行云原生技术平台的建设,包括混合分布式和云网边全域融合的弹性敏捷基础设施,一体化分布式云原生平台,以及以应用为中心的云原生应用管理平台等由下至上的云原生逐层建设;水平横向主要从应用架构维度进行传统应用的上云迁移和云原生应用的改造建设,其进程主要包括存量非关键应用的托管迁移上云阶段,传统核心应用局部化云原生改造及由此而来的云上、云下新旧架构混合云原生应用模式阶段,以及云边协同下的全域全面云原生应用三个阶段。

从云计算行业当前的社会分工来看,垂直纵向主要以云厂商为主,而水平横向主要以中小企业客户为主。而大型传统企业云原生技术体系建设的难度,在于现阶段受相关技术条件的约束和传统企业本身业务复杂性、多样化的多重阻碍,企业很难借助外部云厂商中心化或标准化的技术平台,来满足传统企业多样性、差异化和碎片化场景下的特殊业务场景需求。因此,为满足业务云化的实际诉求,大型传统企业在云原生技术体系的建设过程中,通常不得不“以我为中心”,同时从纵、横两个方向并行推进云原生建设。而传统企业的云原生建设也只有纵、横两个方向同时推进,才有可能实现真正的云原生企业,才能真正看到云原生的价值,而如果企业仅是聚焦于垂直纵向云原生技术平台的建设,而忽略传统应用的云原生改造推进,那么纵使企业建成再先进的云原生技术架构与平台,也只是裹着华丽外装的低智侏儒,永远不能称之为云原生企业。

图1 传统企业云原生建设并行推进的两个方向

2.2 传统企业云原生垂直纵向建设的三个阶段

2.2.1 云原生技术架构建设第一阶段:敏捷基础设施——异构混合多云、全域云网融合

弹性敏捷基础设施,是任何企业云原生技术体系构建的首要提前。云原生是云计算的再升级,也是云计算作为通用技术大变革发展的第二阶段,因此在构建云原生技术体系之前,传统企业必须构建起弹性敏捷,契合自身业务现状,同时又能面向未来的云计算基础设施,而这也是云原生技术体系构建的核心基础,如若无此,一切皆空。对于传统企业而言,由于多元化业务的广域分布和基础设施的长期分裂孤岛式建设,加之传统行业业务场景的复杂性、实时性和多样性,致使传统企业弹性敏捷基础设施的建设长期处于停滞不前和碎片化的状态,而诞生于互联网企业的中心化公有云模式又难以触及传统产业的真正核心。因此,大型传统企业敏捷基础设施的构建必须坚持外学内用的原则,将源自消费互联网的先进技术与产业互联网的业务特性紧密结合,方可打造极具自身行业特色的产业互联网弹性敏捷基础设施。对于多数传统企业而言,分布式异构基础设施的现状,以及由此而造成的资源管理分配上的割裂和数据自由流动上的障碍,一直是横亘在传统企业基础设施一体化建设和弹性敏捷面前的沟壑。因此,如何构建基于异构多云的架构和管理能力,打通异构多云基础设施,实现全域范围内的资源灵活调配,形成企业“内部互通、内外互通、多云互通、云边互通”的资源互通格局,是传统企业弹性敏捷基础设施建设的关键。也正因如此,异构混合多云和全域云网融合云原生基础设施的建设,成为传统企业构建云原生技术体系必须经由的第一阶段。

传统企业业务发展多元化、产业需求多样化的现状与未来,必然要求云原生基础设施在架构范围内寻求最符合企业多元化业务需求的平衡点:既能弹性敏捷,又可固若金汤;既能敏态响应,又能稳态运行;既要中心化集中处理,又要云边分布式协同。整体架构需要保证用户体验和管理机制高度一致,以遵循管理规范作为前提,业务负载在统一的编排、调度和管理下,自由安置于最适合业务需求的分布式异构基础设施之上,形成内看兼容并蓄、优劣互补,外看整齐划一、全然一体的异构混合多云架构。而异构混合多云的建设,是以业务需求为导向,整合复杂多样业务模式,并以最贴合业务的形态,提供跨底层异构基础设施域的综合平台能力,实现数据在异构IaaS层面的自由流动和业务负载在PaaS层面的自由迁移,赋予业务系统跨越平台桎梏和地域阻隔的广域分布式扩展、高维度弹性敏捷和异构平台自由伸缩的能力,以及分而不散的运维监控和调度管理能力。最终实现异构多云环境下的统一平面、一致体验,互联畅通、数据流动,以及面向应用、自由迁移,广域无界、云随业动的云原生基础设施能力。

对于传统企业而言,传统的云服务弹性敏捷,并不代表云原生基础设施的弹性敏捷,而只有云上云下一张网的企业云网融合敏捷基础设施,才是真正意义上的云原生敏捷基础设施。大型传统企业通常业务形态复杂众多,分支机构横跨全球,广域组网连接多样,网络需求场景各异,移动终端无处不在,物联终端遍布全景,异构多云横跨地域。传统企业以云、边、端为瞄点构建云网融合基础设施,打造云上云下全域融合一张网,实现网络资源的服务敏捷化、需求弹性化和接入便捷化,满足产业端按需开通、动态扩容,集中控制、应用分级,一点入网、零触配置,智能选路和可视智能运维等网络服务需求,进而实现云计算时代网络即服务、网随业动、云随网至的云网全域赋能和数据自由流动,是云网融合时代云原生敏捷基础设施的核心基础和重要特征。只有当网络服务如同云服务一般实现动态按需、灵活弹性、按需定制时,云端能力才能以最快、最便捷的方式输送至产业端,才能实现企业物联设备、边缘设备、公有/私有中心云、广域边缘云、海外分支、国内分支、无线/有线用户以便捷自由、实时无碍的方式接入同一个云网融合平面,才能做到企业数据在云网之间的自由流动,也才能实现云原生价值在企业全网内的最大化扩张。归结而言,只有真正做到云、网、边、端一体化的资源弹性敏捷服务和自由无界立体化的互联互通,传统企业的云原生敏捷基础设施建设才算基本完成,而传统企业云原生技术体系的建设也才有“基”可建。

2.2.2 云原生建设第二阶段:云原生分布式操作系统——无界云原生、云边端一体

对于传统企业而言,云原生第一阶段所解决的,是企业分布式异构资源池的一体化弹性敏捷和统一调度管理问题,也是传统意义上混合多云主要聚焦的领域,集中在对异构裸金属、虚机、网络和存储等底层虚拟化资源的统一管理和弹性供给,是对企业底层各类异构基础设施及其各项能力的抽象化和标准化。这一阶段的首要目标,是解决以资源为中心的云原生基础设施构建问题,即让传统企业最底层的分布式异构资源以弹性敏捷的方式变得互联互通和中心一体化的调度使用,为后续以应用为中心的云原生建设夯实底层的弹性敏捷资源池。事实上,企业云原生建设的第一阶段主要聚焦在IaaS资源层面,并未涉及应用层面的抽象和标准化,其离云原生所倡导的核心理念仍就遥远,因为资源层面的弹性远不意味着应用层面的敏捷。虽然第一阶段实现了传统企业底层异构资源的互联互通和统一管理,但是由于底层不同的边缘云、私有云、公有云采用了不同的技术架构和标准规范,企业分布式应用在不同的边缘云与中心云、私有云与公有云,以及不同公有云之间的自由迁移和安置,仍需解决异构厂商和技术层面的壁垒问题。

解决云原生建设第一阶段遗留的问题,需要我们在企业多样化的异构基础设施之上,抽象出屏蔽底层异构资源和上层差异化应用的共性中间层(云原生操作系统层),使其定义开放标准,向下封装资源,向上支撑应用,使得上层差异化的应用无区别的运行在底层多样化的异构资源层上,进而实现上层应用在不同底层基础设施上的自由分发和运行。对传统企业而言,只有抽象并构建出上述云原生操作系统层,才能解决软件应用从开发、交付到运行、运维全流程的敏捷化、自动化,构建出具有容错性、易管理和便于观察的松耦合应用系统,也才能在对复杂应用系统作出频繁且重大变更后,系统按照可规划、可预测的状态稳定执行与运行。而如何解决与复杂应用系统全生命周期相关的既能快速敏捷满足业务价值诉求,又能稳定运行实现业务敏态与基础设施稳态之间最佳平衡这一难题,也将在云原生操作系统中得以解决。因此,传统企业以应用为中心的云原生第二阶段的建设,即是打造企业级分布式云原生操作系统的过程,传统企业如能将分布在云网边端的任意基础设施作为一体化的“硬件”(云原生建设第一阶段目标),并将企业级分布式云原生操作系统运行在其上(云原生建设第二阶段目标),则企业任意应用便可无区别的自由运行在云、网、边、端的任意资源上,真正实现企业的算力无边、应用无界和数据的自由流动,而传统企业的云原生建设也只有达到这一阶段,作为通用技术大革命的云计算才能真正改变沉睡在工厂、车间、仓储、隧道、桥梁和流水线上的设备运行方式,真正的产业互联网时代也才能到来。而支撑这一时代到来的企业技术架构,正是传统企业云原生建设第二阶段要实现和完成的目标。

事实上,在云原生理念还未提出之时,以Heroku为代表的云厂商便在寻求构建以应用为中心的PaaS云平台。但是,早期的PaaS平台深陷厂商“自我创造”的泥塘,各种自创的约束和限制条件,形成了以平台厂商为主导的封闭生态,最终使得PaaS平台与开源开放的开发者生态脱轨,而平台使用者不得不以丧失应用开发的灵活性,来换取应用开发的标准化和敏捷性。厂商自我封闭生态的构建和开发者主观能动性受到极大制约,是早期PaaS平台未能成功的根本原因,而直至Docker和Kubernetes的出现,以应用为中心的PaaS平台才出现根本性的改变。Kubernetes的出现,屏蔽了底层异构环境的复杂性,为上层应用提供了统一的标准和接口,正如单机时代的Linux系统提供了对底层计算、存储、网络等设备的资源抽象和安全访问模型,Kubernetes则提供了集群时代对底层分布式异构基础设施资源的统一抽象和安全访问模型,因此Kubernetes也被称为云计算时代的“Linux”,即分布式云原生操作系统。而传统企业云原生第二阶段的建设,正是在第一阶段以资源为中心的分布式异构混合云和云网全域融合弹性敏捷基础设施之上,构建以容器和K8S为核心,以应用全生命周期管理为中心的分布式混合云。也即借助容器的封装屏蔽和基于K8S原生的云边协同能力,将企业分布在不同地域、不同架构、不同厂商、不同规模的异构基础设施资源,进行统一的屏蔽抽象,实现企业在中心云、边缘云和边缘设备上的一体化、无边界云原生,让企业应用可以自由运行在任意位置的任意设备资源上。从应用角度,企业云、网、边、端设备是一体化、无区别、可运行任意应用的敏捷资源;从开发者角度,一次DevOps流水线构建的任意应用,可以无需修改、幂等多次的自由部署、安置在任何需要运行的位置;从维护者角度,运行于任意位置的分布式应用,均可实现弹性动态伸缩与自我愈合,中心化的监控运维,以及云端版本的集中控制和边端应用的统一分发与滚动升级。

2.2.3 云原生建设第三阶段:以应用为中心——应用组装、业务聚焦

对于多数传统企业,如果已完成云原生第二阶段的建设,则其已基本实现碎片化资源的整合和统一调度能力,技术架构在所处行业已具备相当的领先能力,基本可纳入云原生企业范畴。第二阶段的企业,通过Kubernetes及其原生的技术生态圈已搭建云边端一体化的基础设施抽象层,应用开发者基于Kubernetes可以构建出企业需要的任何垂直业务系统而无需关心底层基础设施层面的细节,而平台开发者或运维人员基于Kubernetes可以构建出支撑企业应用全生命周期管理的PaaS平台。至此阶段,企业分布式应用的构建、部署和运行已具备相当的云原生弹性和敏捷能力,而云原生所倡导的企业应用“生于云上、长于云上”的架构土壤已基本形成。但是,如果跳出技术架构的层层抽象,俯看整个云原生建设的两个阶段,就会发现截止目前为止的云原生建设仍然聚焦在底层基础设施的抽象和标准化上,离“以应用为中心”的云原生终极目标仍有距离。云原生前两个建设阶段的区别在于抽象层次的不同:第一阶段更多是对底层分布式异构资源池一体化弹性调度的抽象,第二阶段更多是对分布式应用运行时的封装与抽象。并且第二阶段所谓“以应用为中心”的云原生建设,更多聚焦的,是对向下屏蔽异构资源差异、向上承载多样化应用,以及向外可拓展至任意边缘的分布式资源和应用运行平台的抽象和构建,而并非应用本身的抽象和规范。

简而言之,截止云原生建设第二阶段,我们在云原生技术架构的建设上并没有做到真正意义上的“以应用为中心”。其主要原因,在于作为能力接入层的Kubernetes平台,其专注点在于“如何标准化的接入来自于底层,容器、虚机、负载均衡等开源生态圈各种各样的能力,然后通过声明式API的方式去暴露给用户”。这也意味着Kubernetes实际上的用户并不是业务开发者和运维人员,而是企业或厂商平台开发者。然而,对于企业用户而言,真正的价值源自业务,而非任何平台本身。虽然Kubernetes通过对南向各类底层资源的接入和北向声明式API的暴露,帮助平台开发者解决了企业底层资源碎片化和上层资源统一使用之间的矛盾和大问题,但是并没有减轻业务开发者和运维人员的心智和负担,甚至由于其过于底层的资源抽象和API定义,业务开发者和运维人员不得不一边吐槽其设计之奇异、使用之复杂,一边又被迫成为各种“容器专家”或“K8S专家”,陡峭的学习曲线和较高的使用门槛,不仅影响了用户的使用体验,拖慢了企业的研发效能,还与传统企业落后的技术能力和有限的技术投入形成鲜明对比,最终形成了企业内部平台建设不断内卷,业务创新萎靡不振,应用改造阻力重重的困境。

为了真正实现“以应用为中心”的云原生终极目标,最大化释放企业核心业务价值,后K8S时代的云原生建设主要围绕两个方向:一是平台构建层面,基于K8S构建面向上层用户(以开发和运维人员为主),以上层应用而非底层资源为对象进行高层次封装抽象,实现应用开发、维护和平台构建者各自关注点的分离,构建具有更友好界面、更接近用户使用习惯的上层应用管理平台,目前主流的各大厂商云原生PaaS平台,以及所谓的低代码平台均属此类;二是应用开发层面,不断抽象和剥离上层应用代码中非业务逻辑或非核心业务代码的实现部分,并使其下沉至平台共享层或边车(Sidecar)抽象层,同时不断解耦上层应用与下层平台的依赖关系,让微服务应用的开发变得简单、高效,让分布式应用跨平台的迁移和运行变得更透明无感,让微服务应用变得更轻量、可解耦、可治理,让应用开发者更聚焦于业务逻辑的设计开发而非平台本身的学习和使用,目前以Istio等为代表的服务网格,以及以Knative等为代表的无服务器开发框架均属此类。作为传统企业云原生技术架构建设的第三阶段,企业应该以“平台能力下沉,业务价值上浮”为终极目标,围绕云原生应用管理平台和云原生应用开发层面进行持续建设与完善。一方面,构建简单易用且高度可扩展,以应用的定义、描述和组装编排为核心的云原生应用管理平台,实现应用组件的高度抽象和自由组装,实现开发、运维和平台构建者的关注点分离,摒弃开发运维人员对底层资源调度平台复杂细节的关注,以应用组装方式最大化释放业务价值。这一领域,社区提出的OAM云原生应用构建模型,以及基于OAM和K8S实现的KubeVela等云原生应用管理平台已做出有效的探索和尝试。另一方面,持续构建语言无关、平台无关的微服务开发与治理能力,不断下沉应用代码中非业务逻辑的实现部分,高度聚焦核心业务代码实现,打造跨语言开发微服务应用,在异构云、边跨平台上,无修改、可观测、可解耦、可治理的运行能力,真正实现传统企业云边架构主导下,分布式微服务应用的高效开发与极简运维。这一领域,服务网格、无服务器计算都是卓有成效的尝试,而基于边车理念的分布式应用运行时Dapr正在成为这一领域的代表。

2.3  传统企业云原生水平横向建设的三个阶段

2.3.1 云原生应用建设第一阶段:寄于云上——应用迁移、托管上云

云原生应用的目标,是充分利用云计算技术大变革带来的技术红利,基于原生态的云资源来构建和开发企业现代化的应用系统,最终实现企业降本增效的目标。但是,对于传统企业而言,由于长期大量历史留存单体应用系统的存在,以及基于传统技术栈所构建的团队技术体系,加之数字化转型初期云原生技术平台停留在以资源为中心的建设阶段,大多数传统企业云原生应用建设的第一阶段,主要以将应用系统从线下搬迁至云上为主。这一阶段,传统企业主要将存量非核心应用简单部署和运行在云上,应用以“云上寄宿”的方式集中运行在云端资源池上,通常也称为托管上云。

云原生应用迁移第一阶段,主要解决的是企业传统IDC时代运维、部署、扩容的难题,但是传统应用单体架构厚重、烟囱式架构等带来的一系列应用层面的问题并没有得到有效解决,云对业务的价值主要停留在资源供给阶段,现阶段的迁移主要以云上资源对云下资源“一对一”的替换为主,并不能充分发挥出云的价值,这一阶段更多是一种“换汤不换药”的迁移。换另外角度来看,现阶段的企业应用技术栈本身并没有发生实质性的改变,即企业软件架构的设计没有发生变化,只是软件运行的平台和运维的技术体系发生了变化,即应用运行环境从以“设备”为中心的物理时代迁移到了以“资源”为中心的虚拟化时代。虽然应用对底层资源的需求得到了弹性敏捷的满足,但是软件应用在分布式场景下需要解决的问题,包括稳定性、组件或服务之间的数据同步、整体的容灾高可用、DevOps流程自动化、端到端链路跟踪,以及分布式应用的可观测、可解耦、可治理等复杂问题,仍然需要应用花费大量时间和精力自行解决。

事实上,如果应用本身没有基于云原生的理念和云服务进行重构,而是继续在云端采用传统架构并进行简单的资源替换,那么传统企业应用长期面临的诸多问题,并不会因为应用迁移到了云平台就从根本上得到解决,这也是很多传统企业上云迁移后,仍然迟迟不见降本增效的根本原因。因此,严格意义上,传统企业云原生应用建设的第一阶段,更多是以存量应用的上云迁移为基础,对云原生技术平台上的云资源和云服务进行充分的理解使用,虽然应用系统可能已运行在云原生的环境中,但是应用本身的软件架构并未发生实质性改变,而企业应用上云所带来的价值也非常局部和有限。此时的应用更多属于云上托管应用,而非真正的云原生应用,就传统行业的现状而言,大部分企业仍然处于第一阶段,也可认为是云原生1.0阶段。

2.3.2 云原生应用建设第二阶段:生于云上——应用改造、混合原生

从行业现状来看,当前阶段的大多数传统企业正在经历或基本已完成云原生应用第一阶段的建设,企业传统应用上云迁移工作已基本完成,传统应用开始在云环境下使用,并开始享受云计算基础设施资源弹性灵活的红利,但是由于应用架构本身并没有发生变化,因此也不能充分利用云计算新技术的诸多特性,应用运行效率只能局部得到提升,而企业应用上云后降本增效的整体成效也非常有限。

随着企业数字化转型的深入,企业需要充分享受云计算带来的技术红利,需要让业务能力生于云、长于云。所谓生于云是指基于云原生的技术、架构和服务来构建企业应用,而传统企业云原生应用建设的第二阶段,则是指企业由“面向云迁移应用”的阶段演进到“面向云构建应用”的阶段,即由“以资源为中心”演进到“以应用为中心”的云原生应用建设阶段。这一阶段,传统企业需要基于云原生的技术、架构和服务来构建企业自身应用,实现企业应用“生于云上”。当然,作为云原生应用改造或构建的前提,企业在垂直纵向上的云原生技术平台建设,至少应达到第二或第三阶段,即企业至少应部分实现开发云原生、计算云原生和架构云原生,否则将不具备改造或构建云原生应用的技术条件。

对于多数传统企业而言,在云原生应用建设的第二阶段,更多的精力应该聚焦于传统存量单体应用和外采传统应用的云原生改造,以及部分面向产业互联网转型而启动的创新型应用的云原生构建,尤其诸多“三无”(无供应商、无开发、无运维)系统的云原生改造。然而,很多传统核心应用的云原生改造,事实上很难一步到位。究其原因,首先在于很多传统企业由于各种历史原因,大量存在各种基于Windows系统开发和运行的传统应用,这与互联网公司和开源生态圈围绕Linux系统构建云原生应用截然不同;其次,与互联网公司以JavaPythonGo等语言为主不一样,传统企业中大量存在以.NETC#等与云原生亲和性不是很友好的语言或框架为主而开发的传统应用;另外,传统企业多数核心生产系统长期以靠近现场运行的方式存在,而此时也不可能因为应用云原生的改造,就能解决网络时延、成本、质量和安全等问题而将应用收归于云端,反而“运营管理”后台功能的云端中心化和“控制执行”前端功能的分布式边缘现场运行,成为传统企业云原生改造的最佳应用架构选择。以上三个方面,构成了现阶段传统企业云原生应用改造的三大阻力,也因此而导致传统企业在云原生应用改造过程中,难以一步到位而呈现出语言混合、架构混合和云边混合的状态。云原生应用建设第二阶段的企业,更多呈现出的是混合云原生过渡状态,传统单体应用、混合云原生应用、标准云原生应用同时并存于企业中。作为可能长期并存的混合云原生过渡阶段,传统企业更应该明确自身应用“生于云上”的方向和原则要求,在存量应用改造的同时,明确限制各种基于传统应用架构外采应用的引入,做好企业云原生理念宣贯与执行工作,并将云原生技术体系作为应用上线准入的评判标准。而此时的企业云原生建设,可以认为是云原生2.0阶段。

2.3.3 云原生应用建设第三阶段:长于云上——价值释放、全面原生

对于大多数传统企业,如果其正处于“生于云上”的云原生应用建设第二阶段,则意味着无论是云原生技术理念的普及,还是云原生技术平台的建设,以及云原生应用架构的设计与改造,企业都也具备相当实力,并已开始走向云原生企业的正轨。但是,处于这一阶段的传统企业,云原生应用仍然参差不齐,云原生技术能力处于积蓄成长期,云计算的技术红利主要以企业云端应用为主,并未实现传统企业云网边端一体化应用的全面覆盖,因此传统企业的业务价值未能全面释放,更进一步的云原生应用建设还需继续。

尽管目标遥远,但是迈向全面云原生依然是传统企业应用架构转型升级的终极目标,也是企业云原生应用建设第三阶段的初衷,即重塑传统企业,使其全面“长于云上”。而所谓的“长于云上”,则是指企业充分利用云计算的优势来助力企业应用和业务发展,将企业的数字化建设、业务智能化转型升级带入全新阶段。事实上,伴随云原生技术体系与生俱来的敏捷和庞大能力资源池的不断普及,云原生的虹吸效应已在传统行业初现:传统底层技术、编排及管理技术、安全技术、监测分析技术逐步开始云原生化改造,形成了基于云原生的全生命周期技术链,同时细分领域的技术也趋于多元化发展;传统行业用户逐步对外围系统、次核心系统、核心系统进行不同程度的云原生化改造,完成上云效能提升;越来越多面向边缘、云网融合、物联网、工业互联网的场景开始基于云原生进行构造和实践。

云原生降低技术门槛,深化交叉集成,推动云数智深层次融合。作为云原生应用建设第三阶段的企业,不仅在开发云原生、计算云原生、架构云原生和监控运维云原生方面处于领先地位,在数据云原生、智能云原生和安全云原生领域,已实现基于云原生的云数智深层次融合。这一阶段的企业应用,我们认为至少应该具备“五个现代化”,即应用设施现代化、应用架构现代化、应用开发现代化、应用运维现代化、应用安全现代化:

  • 应用设施现代化:开发人员从繁琐的资源管理和运维等低值工作中释放出来,聚焦于应用开发和业务创新等高价值工作,企业底层分布式异构基础设施资源的差异性已被屏蔽,云网边端一体化的弹性敏捷资源调度体系已经建立,覆盖中心云、边缘云、边缘设备、物联网设备在内的云边端综合性技术架构体系基本成型,企业呈现出云网边三级分布式基础设施架构,云随业动的云计算格局基本建成。
  • 应用架构现代化:在云网边一体化的技术体系下,基于微服务架构、横跨云边端的分布式应用成为主流,高内聚、低耦合、高可用与弹性可扩展等云原生应用的特性天然内置于应用全生命周期,应用的容器化、Mesh化和Severless化成为应用架构设计的标准与常态;基于云边端的三层分布式应用架构,企业“强后台、小前端”的业务发展理念得以快速实现,云端中心化的经营管控和边端分布式的控制执行成为传统企业上云常态。
  • 应用开发现代化:以释放软件开发效率,聚焦业务逻辑为核心,应用代码中与业务逻辑无关的公共实现部分被不断抽取并下沉至基础设施平台层,Severless开发理念被普遍接受;封装分布式应用系统复杂性,构建可移植、可跨云与边缘分布式应用,且与开发语言和框架无关、事件驱动、无服务器运行时的分布式应用开发与运行平台成为主流;基于容器和K8S构建,具备高可扩展性,以“以应用为中心”面向上层用户抽象与封装的云原生应用管理平台,驱动开发、运维和平台构建者关注点分离,并持续向低代码开发管理平台演进,企业应用的开发与运维管理效率得到极大提升。
  • 应用运维现代化:DevOps成为内嵌企业流程、治理、安全的自动化和标准化软件应用交付平台,企业软件的生产交付过程变成可复制、可批量化的生产流水线;云时代的立体化运维由上至下穿透上层应用与下层基础设施,全链路可追踪、可观测、可关联,自动化、智能化的运维管理平台精细化、立体化监控守护企业应用;云边端分布式应用云端一体化监控运维,应用分发流水线由云端穿透至任意边端侧,应用版本云端中心化集中管控,边端部署更新统一下发,立体化的云边端应用全生命周期管理得以实现。
  • 应用安全现代化:网络安全边界被打破,源于云网边端任意位置的应用与终端访问皆不可信任,零信任理念普遍成为企业共识,内外及东西、南北向访问皆以动态身份验证和最小权限授予、以及持续安全防护作为企业安全基准原则,实现企业资源安全可信访问;零信任融合原生安全,安全产品持续原生化,基于云原生的零信任服务体系内嵌融合于以云计算为承载的企业任意基础设施,企业安全能力得到最大防护加强。

传统企业云原生应用的建设,只有在实现“五个现代化”建设的基础之上,才可认为其基本走完云原生应用建设三个阶段的道路,进入云原生3.0阶段,同时也才可称为全面“长于云上”的云原生企业。而企业上云后的业务价值和降本增效的初衷,也只有进入全面云原生的阶段,才能得以全方位的释放和实现。对于传统企业而言,这将是一个曲折而漫长的过程,但也是转型之路必然走向的未来。

三、总结

云原生技术在本质上是一套利用云计算技术为企业实现降本增效的最佳实践和方法论,其初衷在于通过自动简洁的技术体系和方法,解决分布式复杂系统既能快速敏捷响应上层业务诉求,又能灵活弹性确保下层复杂基础设施稳定运行要求的问题,进而也是解决传统企业在数字化转型过程中,既要业务“敏态”,又要运行“稳态”的最佳途径和方法。然而,传统企业云原生技术体系的建设却是一个带有颠覆性的复杂过程,也是传统企业重构技术体系和重塑经营模式的重要过程体现,需要的不仅仅是企业高瞻远瞩的战略定力和魄力,更需要长远的顶层规划和战术目标的步骤分解。

为了阐述传统企业拥抱云原生的价值意义和传统企业如何建设云原生技术体系,我们以两篇长文贯穿了云原生相关的技术、价值、本质和建设进阶之路。本文作为传统企业云原生技术体系建设之路的下篇,提出了云原生垂直纵向和水平横向同时推进建设的观点,从云原生技术架构和云原生应用两个维度,分阶段同时推进传统企业云原生技术体系的建设,并给出了云原生不同阶段的特征和企业应该实现的目标,以帮助大型传统企业更好的规划、建设和实现自身企业的云原生之路。当然,任何一项变革性技术从出生、成长到成熟应用,都是个曲折漫长的过程,对于饱经沧桑的传统企业而言,要走向全面云原生,需要的不仅是声势口号,更需要我们脚下的坚持、心里的希望和眼里的光芒。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐