您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[刘晖]:InfoQ:云原生的技术探索与落地实践 | 研究报告 - 发现报告
当前位置:首页/行业研究/报告详情/

InfoQ:云原生的技术探索与落地实践 | 研究报告

信息技术2020-11-19刘晖娱***
InfoQ:云原生的技术探索与落地实践 | 研究报告

云原生的技术探索与落地实践 一、云原生概述二、主要云原生技术三、云原生基于开源策略走向全新竞合四、云原生技术的落地与应用五、未来展望1. 云原生:云计算的下一站2. 云原生的前世今生3. 云原生的价值链生态0304050808161618202425251. 云原生底层技术2. 编排与管理1. 开源社区是实践平台化战略的最佳场所2. 开源策略是构建技术生态圈的有效路径1. 云原生创新技术方案及产品2. 云原生在各行业的落地应用1. 云原生技术生态将成为企业数字化转型的创新平台2. 自助化、智能化基础设施重塑用户侧视角3. 云原生的安全前置不可或缺目录CONTENTS 02 回首过去十年,云计算的高速发展推动数字化转型不断深入,云原生作为云计算的下一站,在重构 IT 产业的同时,也为更多领域释放了新的技术红利与增长机遇。虽然云原生概念由来已久,但对于云原生的理念边界、价值理解却众说纷纭。云原生究竟如何界定?如何借助云原生视角透视云计算、开源?云原生又将如何赋能企业实现业务价值? InfoQ 基于对云原生技术生态的深刻观察,将通过该报告为您展开一幅从技术演进、到商业策略革新、再到业务价值释放的“云原生”全景图,梳理技术发展脉络、剖析商业创新模式、观察行业实践的红利释放,看“云原生”浪潮如何吞噬旧秩序、重塑新世界。主要观察发现:1. 云原生本质上是一套指导软件架构设计的思想,定义了一条能够让应用最大程度利用云能力、发挥云价值的最佳路径,是基于云计算 PaaS 概念全新容器化思路、更贴近企业业务侧的价值延伸。2. 云原生价值链贴近业务侧的向上延伸,基于越来越多的非业务逻辑从应用程序剥离下沉到基础设施,在此进程中,Kubernetes 成为整个云原生技术生态的底层技术标准与关键价值节点。3.Service Mesh 的核心价值在于实现业务逻辑与非业务逻辑的分离,Serverless 将其功能从服务间同步通信推广到计算、存储、数据库等诸多场景,越来越多使用 kubernetes 服务的应用将转化成为Serverless 应用。4. 微服务带来基础架构复杂性激增,促使开发侧和运维侧关注点分离,不断泛化的 Serverless 将成为DevOps的一种思想导向和组成部分,“轻运维”、“NoOps”、“自助式运维能力”将成为应用运维的主流方式。5. 开源策略成为构建云原生技术生态圈的有效路径,推进云原生企业走向全新竞合,开源社区成为其实践平台化战略的最佳场所。6. 伴随云原生应用的不断丰富,基础设施的资源服务向精细化管理、更优成本、极致弹性、以及研发效能、交付优化的全生命周期转化,将重构整个信息产业,乃至医疗、制造、交通、教育等传统行业的基础设施构建形式,加速赋能全产业信息化升级。 03一、云原生概述十年互联网浪潮下,熠熠生辉的是 IT 技术的飞速发展,从云计算到云原生,已经迎来送往了多个时代。云计算带来了从底层的算力分配到上层应用的快速更迭,而基础软件作为更好运用云能力的有效路径,更是不断迸发出崭新的思想洪流,云原生在这样的思潮下应运而生。云原生本质上是一套指导软件架构设计的思想,建立在“未来的软件一定生长于云”的核心假设之上。依托该思想而设计的软件:首先,软件本身“生于云、长于云”;其次,这样的软件能够天然集成“云”环境,进而释放“云”的最大价值。云原生尚处高速发展变化之中,没有确切的概念界定。可借鉴的说法是:云原生定义了一条能够让应用最大程度利用云能力、发挥云价值的【1】云原生:云计算的下一站 04 纵观云原生技术发展历程,PaaS 概念的普及为IT 领域平台型业务模式建立了思想先导,Docker 的开源拉开了云原生的序幕,也重新定义了 PaaS 的全新容器化思路。随后,CNCF 的诞生宣告云原生技术演进的重心从容器转移到以 Kubernetes 为核心的容器编排,社区开始在 Kubernetes 的基础上构建上层的业务抽象,伴随微服务、Serverless、FaaS 等技术理念的实践,Kubernetes 逐渐成为云原生技术生态的操作系统,企业在此基础上搭建业务侧的上层建筑,最大程度利用云价值。图 云原生的前世今生(资料来源:InfoQ 研究院)【2】云原生的前世今生1. 平台化和 PaaS 概念的普及在 2014 年之前,企业上云的普遍做法是租赁AWS 或 OpenStack 虚拟机、并通过脚本或者手工方式部署应用,这一时期的开源 PaaS 项目因提供了应用托管能力而被广泛接纳。在 Cloud Foundry等项目度过了艰难的概念普及和用户教育之后,百度、华为、IBM 等众多厂商开启了以开源 PaaS 为核心构建平台层服务能力的变革,PaaS 概念得以真正普及。2. Docker 容器成为主流,PaaS 被重新定义Docker 的出现重新定义了 PaaS,Docker 通最佳路径。具体来说,参考云原生计算基金会(CNCF)的定义,云原生包括容器化封装、自动化管理、面向微服务、服务网格、声明式 API。符合云原生架构的应用程序应该是:采用开源堆栈(Kubernetes+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps 支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。 05从技术发展的价值链演进来看,云原生是云计算应用价值的延伸,解决更贴近企业业务、架构、组织层面的关键问题。伴随应用场景的不断深化,Kubernetes 已经成为整个云原生技术生态的底层技术标准与关键价值节点,实现功能的不断剥离下沉。而展望未来,中国规模化的应用场景将更好促进云原生技术的创新演进,成为云原生的最好生长土壤和试验田。过镜像功能解决了应用打包的根本性问题,避免了用户只能通过不断试错才能匹配不同运行环境差异的痛苦过程,伴随着 Docker 原生的容器集群管理项目 Swarm 的发布,原有的 PaaS 时代宣告结束,并被重新定义成一套以 Docker 容器为技术核心,以 Docker 镜像为打包标准的、全新的容器化思路。这也预示着一个以容器为中心的、全新的云计算市场呼之欲出。3. Kubernetes 成为云时代的底层操作系统,上层应用不断丰富当 Kubernetes 通过先进的设计理念、可扩展的插件机制以及开放的治理模式在整个社区推进民主化架构,基于 Kubernetes API 和可扩展接口先后涌现了 Istio、Operator、Rook 等优质项目。在成为分布式资源调度和自动化运维的事实标准的基础上,Kubernetes 逐渐体现出云原生时代底层操作系统的特征,向下封装资源、向上支撑应用,特别是伴随微服务、Serverless 等技术理念的落地,Kubernetes 支撑了更多的垂直解决方案,这些解决方案在用户侧形成了真正的商业价值。图 云原生的价值链生态(资料来源:InfoQ 研究院)【3】云原生的价值链生态 1. 云原生是云计算价值链的延伸与最大化云计算、云原生如同很多基础架构类产品一样,其价值的产生并非源于自身,而是来自于用户基于广泛场景的大量应用。云计算沿大数据价值释放的生命周期不断演化,通过不断吸纳先进技术赋能数据的获取、存储、处理分析和价值联结等环节,为企业提供了高效、低成本的基础设施资源。在云计算逐渐由资源中心演变为创新技术熔炉的过程中,云原生更进一步,帮助企业将应用和业务“云化”,解耦业务和基础设施,只关注业务逻辑和价值,将非业务逻辑的复杂性下沉到基础设施,使基础设施更高效、更高性能、更稳定可靠,从而更充分释放云的价值。2. 基于 Kubernetes 的“云原生架构技术平台”实现企业内各类业务的统一管理伴随云原生的宏大版图徐徐展开,Kubernetes 成为了企业建设云原生基础架构和部署新一代应用服务的事实标准。根据容器创业公司 Sysdig 发布的 2019 年容器使用报告,在容器编排平台的选择上,Kubernetes 占据了 77% 的份额。随着亚马逊、微软、谷歌、VMware 等 IT大厂自 2015 年先后基于 Kubernetes 进行自身业务的云原生改造,目前已有超过 90 个厂商提供了认证 Kubernetes 的云服务或发行版,并提供了丰富的周边软件、服务的配套支持。一方面,越来越多的第三方开源项目以云原生理念开发、部署和运维,最后演变成为一种云服务;另一方面,企业也可以依托 Kubernetes 灵活的架构能力实现基础设施资源的统一管理、业务架构的统一、以及构筑统一的 IT 应用管理平台,从而真正实现对企业内各类业务的统一管理。3. 中国规模化的技术沙盒成为云原生创新的最好土壤近年来,中国更具规模化的应用场景已经愈发成为云原生技术创新、试验的最好土壤。在这个拥有着 14 亿人口、动辄电商大促、全产业链升级的试验田里,峰值交易量超 50 万笔、数据总量近千 PB 的流量成为常态,中国健全的产业体系和庞大规模成为历练云原生技术的沙盒,用于创建和测试各种可能的解决方案。从中国走出去的开源项目如 Apache Kylin、CNCF 旗下的 Harbor、TiDB/TiKV,还有在中国得到进一步历练的Apache Pulsar,甚至包括 Apache Flink 乃至 Kubernetes本身,都在中国场景的极限压测下得到了进一步的升级。根据中国信通院《中国云原生用户调查报告2020》显示,我国云原生技术用户 60% 以上为互联网企业,其中千人以上规模的企业占比高达35.11%,中国应用的广泛场景和庞大规模对云原生技术的拉动已成事实。06 07二、主要云原生技术云原生的技术体系看似纷乱繁杂,但在不同视角都体现着“牵一发而动全身”的主线。从时间线来看,容器技术的发展催生了云原生思潮,在底层解决了资源供给问题,随后开源的 Kubernetes成为容器编排的标准规范,当基于 Kubernetes 可扩展能力的开放应用平台逐渐丰富,使其成为了云原生生态最重要的基石。随后 Service Mesh、Serverless 技术的核心思想更偏重在业务侧实现价值——将更多的能力下沉到基础设施,为应用的轻量化、上云提供可能。从技术需求的角度来看,微服务架构是解决单体复杂度问题的首选方式,却带来整个系统的整体复杂度大幅增加,容器技术和 Kubernetes 分别解决了微服务架构下大量应用的部署、以及容器的管理和调度问题,同时,Kubernetes 也为 Service Mesh 提供了更好的底层支撑,也带来了底层基础设施的 Serverless 云原生化和中间件能力的进一步下沉。图 业务需求驱动云原生技术发展(资料来源:InfoQ 研究院) 08 图:虚拟机(左)与 Docker 容器(右)工作原理(资料来源:网络)容器容器是将进程有效的划分一个独立空间,以便在独立的空间之间平衡资源使用冲突的技术。本质上,容器是一种特殊的进程,其核心功能是通过约束和修改进程的动态表现创造出一个“边界”,此外,其资源限制能力、以及基于镜像功能表现出的“强一致性”,都使得容器技术成为云原生最关键的底层技术之一。Docker 容器因具有和虚拟机相似的隔离效果,而常常被称为”轻量级“虚拟化技术,但这样的说法并不严谨。在虚拟机中,Hypervisor是最主要的部分,它通过硬件虚拟化功能,模拟出 CPU、内存、I/O设备等各类硬件,之后在这些虚拟的硬件上安装了一个新的操作系统,即 Guest OS,在虚拟的操作系统中运行的应用进程被相互隔离。Docker与虚拟机的差异体现在进程隔离方式的不同,Docker通过为应用附加额外设置的Namespace 参数实现进程的隔离,并没有一个真正的”Docker 容器“运行在宿主机中,这样的“障眼法”操作让进程仿佛运行在一个与世隔绝的“容器”里面,使得容器减少了额外的资源消耗和占用,在敏捷和高性能方面具有很大优势。此外,容器的核心功能还包括基于 Cgroups 的资源限制能力、以及镜像功能。Cgroups 的作用是