回望云原生的十年和未来展望

2023-07-28

2013年,Pivotal 的工程师Matt Stine提出“Cloud Native”概念,后来他又将这项技术的特点归纳为模块化、可观察、可部署、可测试、可替换、可处理6项,这就是大名鼎鼎的云原生。回首望云,十年已过去,我们可以看到新技术的不断发展、优秀开源项目的大量涌现和架构的升级演进。在这篇文章中,我将从架构师的角度,回顾这一段漫长的旅程,并探讨云原生的技术如何推动了当今企业在云计算领域的转型与快速发展。


01

云原生之前:云计算兴起

(2006-2013年)


640.png


虚拟化技术最早出现在大型机时代,随着虚拟化、网格、分布式等技术的不断成熟和应用场景的不断扩展,云计算开始进入商业化阶段。2006年亚马逊推出了AWS云计算服务平台,随后Google、Microsoft、IBM等大型科技公司纷纷加入云计算,之后SaaS/IaaS/PaaS等云计算三种服务模式全部出现,互联网、IT公司开始发展云计算,传统企业开始逐步上云。在云原生概念出现之前,企业已经开始将其业务搬迁至云端。那时,主要围绕基础设施即服务(IaaS)等云服务进行拓展。企业开始改变原有的部署模式,将应用部署在虚拟机(VM)上,这使得企业能够实现更高的资源利用率,更快的业务迭代,以及更低的资本预算。云技术全线爆发,对传统技术栈产生颠覆性变化,重塑了企业的技术架构、软件架构、设计理念、组织结构,实现了云计算技术的普及和落地应用。然而,这一时期的云计算存在明显的局限。在此架构中,应用程序与其所在的基础设施(网络、文件和存储)相互关联紧密,亦难以对基础设施进行快速、灵活地弹性伸缩。此外,虚拟机的启动与部署时间较长,也无法满足日益增长的业务需求和变化。


02

云原生诞生:技术变革和应用

(2013-2018年)

640 (1).png


2013年,在云计算领域发生了一件影响深广的技术变革:容器。容器技术可以说是过去十年间对软件开发行业改变最大的技术,而从虚拟机到容器,整个云计算市场发生了一次重大变革,甚至是洗牌。基于容器技术的容器编排市场,则经历了Mesos、Swarm、kubernetes三家的一场史诗级大战,最终以kubernetes全面胜利而告终。2015年7月,Google联合Linux基金会成立了CNCF组织,kubernetes 成为 CNCF 管理的首个开源项目。CNCF组织开始力推 Cloud Native ,Cloud Native 的重要理念是:以微服务的方式部署应用,每个应用都打包为自己的容器并动态编排这些容器以优化资源利用。正是在这样的背景下,云原生与架构师的角色逐渐崛起。


这一阶段,Docker的出现推动了云原生发展的脚步。Docker提出了基于容器的轻量级虚拟化技术,解决了传统虚拟化环境创建速度慢、占用资源多的问题。而其可运行于不同平台、快速容器化分布式应用的能力,亦为云原生发展提供了基石。随着容器化的广泛应用,管理容器运行、伸缩和协同的需求逐渐增加。云原生技术在保障IT实现资源供给效率与弹性的同时,实现IT资源的共享和按需分配,提升资源利用率,缓解数据中心机房紧张问题,实现运维效能的最大化。2017年到后来一个阶段,Kubernetes作为容器编排管理平台的领导者崛起,被业界公认为构建云原生应用的最佳选择。其强大的服务发现、负载均衡器、自动扩容与缩容的功能,帮助企业实现了自动化运维,提升了工程效率。同时,Kubernetes非常强大的社区生态,使得它逐渐成为云原生技术的核心,使一大批云原生技术,如Istio、Envoy、Prometheus等应运而生,并且与Kubernetes紧密集成,形成一个完善的云原生技术生态链。


03

云原生快速发展期:提高软件开发效率

(2018年至今)

640 (2).png


2018年,云原生快速发展,Service Mesh取得广泛共识,Istio开启服务网格元年,微服务成为主流,DevOps相关技术快速发展,我国云原生市场规模也在不断快速增长。随着业务逐渐迁移至云原生环境,企业开始将软件应用拆分为各种微服务,形成弹性、易扩展、松耦合的微服务架构。云原生帮助企业更好地支持微服务模式,实现独立开发、部署、管理和运营。此外,DevOps作为一种持续集成和持续交付的方法论,在云原生技术发展过程中,与微服务实现互为鸳鸯。云原生弥补了DevOps在基础设施资源、应用部署和运维等方面的限制,进一步提高了软件开发效率,企业用云的需求也从资源优化转向了效能提升。可以说在过去 10 年中,云原生和开源在推动 DevOps 发展方面发挥了关键作用。云原生和开源工具都为软件交付提供了规模优势,并使整个过程成本变得更低。组织正在从单体架构(大型、集中式服务器)转向微服务架构(分布式和小型应用程序)。GitHub 和 GitLab 等企业应运而生,帮助实现从代码到部署的整个软件交付工作流程的自动化。软件部署速度的加快,开发人员的生产力就变得更加重要。DevOps 将开发人员和运维人员紧密联系在一起,通过使用一套实践(practice)、工作流程和工具,大大加快创新速度,减少重复性工作量。


当你思考 DevOps 的未来会是什么样子时,其实你实际上是在看技术生产的未来会是什么样子。影响软件开发的趋势与软件本身的功能一样多变,但有三种趋势对未来的软件开发方式具有总体影响:


1、整合工具链:随着在软件开发生命周期中提高效率变得越来越重要,公司将寻求将更多的 DevOps 技术栈转移到同一平台上。这将有利于那些在同类最佳单点解决方案上构建多产品平台的公司,并为未来在 DevOps 中占据主导地位的公司奠定基础。


2、DevSecOps:随着软件开发速度的不断提高,在发布某些东西之前,事后安全审查的回旋余地不大。左移是将安全审查集成到开发生命周期中,从早期就开始关注软件开发安全,这对于任何希望成为主要 DevOps 平台的公司来说,这将成为越来越重要的筹码。


3、AI与DevOps的融合:AI 由业务需求驱动,提高软件质量,而 DevOps 则从整体提升系统功能。DevOps 团队可以使用 AI 来进行测试、开发、监控、增强和系统发布,AI 则可以有效地增强 DevOps 驱动流程,从开发人员的业务实用性和支持的角度来看,AI 在 DevOps 中的重要性显而易见。


04

企业的变化:拥抱云原生


云计算到云原生演进的背后,折射出企业业务应用开发和运维的发展和变化。企业积极拥抱云原生,带来的变化主要有以下4个方面:


(1)以资源为中心到以应用为中心。传统的应用开发和运维模式是以资源为中心的,即应用需要依赖特定的硬件和系统环境来运行,应用的部署和管理也需要针对特定的硬件和系统环境进行设计和实施。而云原生则是以应用为中心的,即将应用和基础设施分离开来,通过容器化、微服务化、自动化运维等技术实现应用的高效、灵活、可靠交付和运营管理。


云原生的发展从资源为中心到应用为中心,主要体现在以下几个方面:


1. 基础设施的抽象化。云原生通过抽象化基础设施,将应用和基础设施分离开来,使得应用可以在多种不同的基础设施上运行,从而实现了资源的可移植性和互操作性。


2. 应用的容器化。云原生采用容器化技术,使得应用的开发、测试、部署、运维等环节都可以在一个统一的容器环境中完成,从而实现了应用的高效、灵活、可靠交付和运营管理。


3. 微服务的架构。云原生采用微服务架构,将应用拆分成多个小型服务,每个服务可以独立部署、独立扩展、独立运维,从而实现了应用的高可用性、可扩展性和可维护性。


4. 自动化运维的实现。云原生引入了自动化运维的理念和技术,通过自动化的方式实现了应用的部署、监控、日志管理、故障诊断和恢复等运维工作,从而提高了运维效率和可靠性。


(2)编程模型发生巨大变化,非功能性特性的大量委托


云原生架构最有影响力的就是让开发人员的编程模型发生了巨大变化。今天大部分的编程语言中,都有文件、网络、线程等元素,这些元素为充分利用单机资源带了好处,但是却带来了分布式编程的复杂性;因此大量的框架和产品涌现,来解决分布式环境中的网络调用问题、高可用问题、CPU 争用问题、分布式存储问题……在云的环境中,云的相关能力和产品把这些问题都解决了,使得所有软件公司和企业都可以由此获益。开发人员技能栈中,不再需要掌握文件及其分布式处理技术,不再需要掌握各种复杂的网络技术……简化让业务开发变得更敏捷、更快速!另一方面任何应用都提供两类特性,功能性特性和非功能性特性。功能性特性是真正为业务带来价值的代码,比如如何建立客户资料、如何处理订单、如何支付等等;即使是一些通用的业务功能特性,比如组织管理、业务字典管理、搜索等等也是紧贴业务需求的。非功能性特性则是没有给业务带来直接业务价值,但通常又是必不可少的特性,比如高可用能力、容灾能力、安全特性、可运维性、易用性、可测试性、灰度发布能力等等。这些非功能性特性都可以委托交由云原生及其平台处理,那么这样就可以最大化利用云服务来提升软件交付能力,加快软件开发。


3效率提升,高度自动化的软件交付


软件一旦开发完成,就需要在企业内外部的各类环境中部署和交付,以将软件价值交给最终客户。软件交付的困难在于企业环境到客户环境之间的差异,以及软件交付和运维人员的技能差异,填补这些差异的是一大堆的用户手册、安装手册、运维手册和培训文档。容器就像集装箱一样,以一种标准的方式对软件打包,容器及相关技术则帮助屏蔽不同环境之间的差异,进而可以基于容器做标准化的软件交付。对自动化交付而言,还需要一种能够描述不同环境的工具,让软件能够“理解”目标环境、交付内容、配置清单,并通过代码去识别目标环境的差异,根据交付内容以“面向终态”的方式完成软件的安装、配置、运行和变更。基于云原生的自动化软件交付相比较当前的人工软件交付是一个巨大的进步。以微服务为例,应用微服务化以后,往往被部署到成千上万个节点上,如果系统不具备高度的自动化能力,任何一次新业务的上线都会带来极大的工作量挑战,严重时还会导致业务变更超过上线窗口而不可用。


(4)数字原生企业,需要新一代基础架构
近年来随着数字化转型向纵深迈进,成为数字原生企业成为企业数字化转型发展的目标。根据IDC的定义,数字原生企业是指一个企业以比传统企业高一个数量级的速度扩张业务、进行创新,并始终以技术和数据为企业的命脉,不断优化自己的运营模式、扩展新的收入的企业。显然,数字原生企业是建立在技术和数据之上,而它们都离不开底层基础架构的支持。

基础架构在快速发展,数据中心内硬件架构(计算、网络、存储等)、软件架构也都在快速发生变化,从集中式到分布式到云原生。这就给采用开源技术的企业带来了很大的困扰,企业不得不投入大量资源进行技术迭代,而无法聚焦在核心业务,这就需要一种面向未来的基础设施模型,能通过统一平台基础底座,渐进式进化来应对技术更迭带来的挑战。在国内易捷行云EasyStack提出了数字原生基础设施的理念,通过数字原生引擎(EOS)来破解渐进式进化这一挑战。

640 (3).png

 图 数字原生基础设施

数字原生引擎是一个通用化、标准化的产品,可以理解为新一代数据中心操作系统,它通过将软件定义计算、网络、存储的高度抽象封装,再加入身份安全、自动化中心、日志、审计、告警、监控、一云多芯等能力,构成了数字原生基础设施的核心基础单元。数字原生基础设施的一大特性是可以在线升级和持续进化,同时还具有渐进式路径、全云能力就绪、运营消费模式,从而彻底能改变企业使用云计算的方式,助力传统企业成为数字原生企业。


总之,云原生将应用作为中心,将基础设施抽象化,采用容器化、微服务化、自动化运维等技术和新的基础架构,从而实现了应用的高效、灵活、可靠、自动化交付和运营管理,推动了应用开发和运维模式的转型和升级。


05

未来发展展望:AI与云原生的结合


云原生和人工智能(AI)都是当前技术领域的重要趋势,它们可以相互促进和增强,提供更高效、创新和智能的应用程序和服务。


云原生和AI的结合可以带来以下几个方面的好处:


1. 强大的计算和存储能力:云计算平台为AI提供了高性能的计算和大规模的存储资源,使得处理大规模数据和复杂计算变得更加容易和高效。云原生通过容器化形式标准化封装多模态(文本、代码、图片等多维度信息)智能模块,统一了模块间的交互模式,提供超强算力,发挥创新叠加效用,大幅提升大模型的智能化水平。


2. 弹性和可伸缩性:云原生架构的特性使得应用程序能够根据需求进行弹性扩展和自动化管理,从而提供更好的性能和用户体验。对于AI应用程序来说,这意味着可以用可控优化的成本处理更多的数据和更复杂的模型,提高预测和决策的准确性。


3. 数据驱动的创新:云原生和AI的结合使得企业能够更好地利用数据来进行创新和决策。通过云原生平台的弹性和自动化能力,可以更快地构建、训练和部署AI模型,从而实现更快速的创新和业务转型。


4. 加速开发和部署:云原生架构和AI的结合可以帮助企业更快地开发和部署新的应用程序和AI模型。通过容器化和自动化技术,可以实现快速迭代和持续交付,加快产品上市和市场反应速度。


对于企业来说,原有的单体应用发展到云原生应用,则带来了架构形态的变革,而云原生和AI的结合则可以提供更高效、创新和智能的应用程序和服务,帮助企业和组织更好地适应快速变化的市场需求,实现业务转型和增长。另一方面从云原生应用向AI原生应用的跨越发展,则是在云原生应用的基础上进行扩展和延伸,带来的是交互形态的变革。云原生可以为AI原生应用提供算力供给、数据处理、迭代方式和服务模式的扩展能力,也能够基于更广泛的算力连接、更多元的异构供给、更高效的多模态数据处理能力、更成熟度的模型算法,与AI大模型更好的融合,激发业务创新,催生新商业模式。

640 (4).png


总结


回顾云原生的十年发展,我们看到了新技术如何推进企业业务开发和应用架构的蜕变,实现了IT生产力的释放,进一步消除数字鸿沟。未来,随着新技术的不断融合与创新,云原生将继续助力企业实现更高的敏捷度和效率,为企业和组织提供更加高效、灵活、可靠、智能化、可持续的应用开发和运维解决方案。下一个十年,云原生将成为企业和组织数字化转型的重要组成部分,伴随我们不断成长和前进!

 孙杰 云技术 2023-07-24 21:45 发表于四川


咨询

业务咨询QQ:

613606953

613606930

备案咨询QQ:

613606933

客服咨询QQ:

613601252


电话

咨询电话:

0371-55056677

0371-55056699


举报

“扫黄打非”举报专区:


您可以通过邮箱举报的方式向我们举报不良信息,将举报类型、举报网址、举报IP、举报描述、违法截图以及您的联系方式等信息发送至我们的邮箱:

support@htuidc.com