云原生的概念与背景
1.1 背景 - 企业IT数字化转型的“三阶段两转变”

- 服务器阶段 : 其特点是以硬件设备为中心,业务应用随不同厂商设备、操作系统虚拟化软件的差异化进行定制;设备的安装、调试,应用的部署、运维基本靠人力完成,自动化程度低,缺乏统一的设备和应用管理能力。后期随着虚拟化软件的出现,资源的利用率、扩缩容器的灵活性方面得到一定的提升,但并未从根本上解决基础设施与软件割裂、运维复杂的难题。
- 云化阶段: 传统模式下分布离散的设备,被统一起来,实现了备类资源如计算、存储网络的池化,通过统一的虚拟化软件平台,为上层业务软件提供统一的资源管理接口实现资源管理能力的自动化,屏蔽一部分基础设施的差异,使得应用的通用性增强,但因为虚拟化软件平台差异化较大,尤其是各厂商的一些商业化增强,无法在厂商间进行能力共享,应用还是无法以完全标准化的模式构建,应用部署还是以资源为中心
- 云原生阶段:在这”阶段,企业的关注点从以资源为中心转移到以应用为中心,包括应用敏捷交付、快速弹性、平滑迁移、无损容灾等。因此,企业开始考虑如何将基础设施与业务平台融合,为业务应用提供标准的运行、监控、治理平台,并将业务的通用能力下沉到平台侧,更好的帮助企业实现应用的自动化。
1.2 什么是云原生

- 2015年云原生基金会CNCF成立,标志着云原生从技术理念转化为开源实现。CloudNative Computing Foundation,由Google、华为等多家企业联合创建于2015年7月21日。华为云是云原生基金会7CNCF)的亚洲唯一创始会员,国内唯一白金会员。
- 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
- CNCF 致力于通过培养和维持一个开源、供应商中立的项目生态系统来推动云原生技术的广泛采用,进而实现让云原生无处不在的愿景。CNCF对云原生的定义让云原生的概念进一步具体化,从而让云原生更容易被各行业理解,为云原生在全行业广泛应用奠定了基础。过去几年中,云原生关键技术正在被广泛采纳,CNCF调查报告显示超过8 成的用户已经或计划使用微服务架构进行业务开发部署等,这使得用户对云原生技术的认知和使用进入新的阶段技术生态也在快速的更迭。
1.3 云原生发展

- 云原生开源项目从基础的容器引擎出发,不断扩展应用领域,对边缘、异构等各类场景的适配能力不断深入。从早期开源的容器引擎项目Docker,到实现容器高效编排的Kubernetes、Swarm、Mesos,再到为了更好的解决微服务治理的难题,基于Service Mesh技术推出的Istio,以及针对边缘场景推出的KubeEdge、K3s (一个轻量级Kubernetes发行版)、面向高性能异构计算场景的Volcano等项目,无一不成为加速云原生与行业融合、推动各行业创新的助推器
- 2020年,中国信息通信研究院基于对云原生的深入分析和全面调研,结合国内云原生产业发展现状和趋势,编写了《2020年云原生发展白皮书》。2020年华为云第一次向业界提出云原生2.0的概念,并希望通过云原生2.0让每个企业都变成“新云原生企业”
1.4 云原生2.0

- 企业数字化转型初期,主要是将业务从线下搬迁上云,在这一阶段企业主要是的把业务简单部署和运行在云上,可以称之为ON CLOUD。这种形态下,通过资源池云化,解决了IDC 时代运维、部署、扩容的难题,但传统应用单体架构厚重、烟囱式架构等带来的一系列应用层面的问题并没有得到有效解决,云对业务的价值主要还停留在资源供给的阶段,无法充分发挥出云的价值。
- 云原生1.0时期,云原生技术集中在基础设施层,单体架构,以资源为中心,支持的应用生态比较单一,主要是在互联网行业得以应用。
- 随着企业数字化转型的深入,企业需要充分享受云计算带来的红利,需要让业务能力生于云、长于云,由现在的ON CLOUD 进阶到IN CLOUD,同时基于云构建的新生能力与既有能力有机协同、立而不破。生于云是指基于云原生的技术、架构和服务来构建企业应用,长于云是指充分利用云的优势来助力企业应用和业务发展,将企业的数字化建设、业务智能升级带入新阶段,我们称之为云原生2.0 时代
- 云原生2.0,企业云化从“ON Cloud”走向“IN Cloud”,生于云、长于云且立而不破企业新生能力基于云原生构建,使其生于云,应用、数据和AI的全生命周期云上完成使其长于云;同时,既有能力通过立而不破的方式继承下来,并与新生能力有机协同智能升级新阶段,赋能“新云原生企业”。云原生2.0是企业
- 智能升级的新阶段,企业云化从“ON Cloud”走向“IN Cloud”,成为”新云原生企业“。新生能力与既有能力立而不破、有机协同,实现资源高效、应用敏捷、业务智能,安全可信。
1.5 云原生2.0的优势

- 在云原生2.0时代:
- 云原生技术要从以资源为中心转向以应用为中心,云原生基础设施要能感知应用特征,而应用能更智能、更高效的使用云原生基础设施
- 基于云原生多云架构,支持云原生应用的分布式化趋势,可以支持端边云协同多云协同,支持政企的复杂全场景应用。
- 云原生2.0是-个开放系统,新生能力和既有能力有机协同、立而不破
- 云原生2.0是一个全栈能力,云原生能力扩展到应用、大数据、数据库、AI等全栈技术。
1.6 云原生2.0十大架构模式

1.7 华为云云原生2.0架构全景

- 云原生硬件层: 以追求云算力极致性价比为目标,通过引入云基础设施服务感知的硬件PCI板卡(SDI/擎天卸载)、自研通用CPU (鹏)、异构NPU (异腾),经一系列面向同构及异构计算的硬件卸载及深度软硬协同,打造与容器、虚拟机运行时配合的最极致性价比的算力平台。
- 云原生OS: 除标准操作系统功能外,云上下文内这一层的职责在于“资源大分小”将物理服务器资源切分为多个虚机、多个容器,通过Euler OS,从而为上层的智能资源调度及柔性计算提供支撑,并通过硬件直通最小化存储及网络虚拟化性能开销.
- 云原生弹性资源层: 云上下文内这一层的职责是小聚大的过程,比如面向云原生计算特别是K8S容器集群及其扩展任务,以及瑶光智能调度系统,拉通云边、跨Reqion的全域调度,云原生的网络虚拟化功能及,云原生的分布式存储及其高级存储如容灾高可靠等。
- 云原生应用与数据使能层: 涵盖了云原生分布式中间件、区块链、云原生边缘,云安全使能,云原生数据库,以及云原生大数据,AI ModelArts普惠AI开发平台,云原生视频,以及云原生IOT物联网。
- 云原生应用生命周期: 包括DevSecOPS流水线,云原生的服务治理与编排,、面向租户自己部署业务的CMDB,监控与运维服务等。
- 云原生多租框架:面向云服务多租认证与权限管理(云服务及云资源能力接入的身份认证,以及对云服务对象实例的访问权限管理),云原生的运营与计费,云服务API能力开放(云服务消费界面入口),以及云原生Console(云服务消费界面入口)等
开源容器技术介绍
2.1 什么是容器技术

- Docker是第一个使容器能在不同机器之间移植的系统。它不仅简化了打包应用的流程也简化了打包应用的库和依赖,甚至整个操作系统的文件系统能被打包成一个简单的可移植的包,这个包可以被用来在任何其他运行Docker的机器上使用容器技术在业界的定义是以Docker为代表的容器引擎技术和以K8S为标准的容器编排技术,很多其他容器技术都遵循或者兼容OCI标准,如Kata安全容器。
- 相比于使用虚拟机,容器有如下优点:
- 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等开销,容器对系统资源的利用率更高。包括应用执行速度、内存损耗等。
- 更快速的启动时间:传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级:甚至毫秒级的启动时间
- 一致的运行环境:开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些问题并未在开发过程中被发现。而Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性
- 更轻松的迁移:由于Doker确保了执行环境的一致性,使得应用的迁移更加容易。并可以在很多平台上运行,无论是物理机、虚拟机,其运行结果是一致的
- 更轻松的维护和扩展:Docker使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单。此外,Docker团队同各个开源项目团队一起维护了大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。
2.2 关键技术介绍

- Docker所应用的几个关键技术都不是docker发明的,而是Linux早就成熟的技术Docker将这几个技术整合,形成了革命性的成果。
- 其中Namespace负责运行环境的隔离,即每个容器都是一个独立进程,通过namespace技术进行隔离
- Cqroup是负责运行资源的隔离或者说独占,可以为每个容器指定资源数量,互相不侵占。每个容器互相不可见,包括进程隔离、网络隔离、文件隔离。
- Union filesystem是解决应用运行的小型化统一标准,容器镜像提供了容器运行的基础,但容器镜像并不等于容器。容器镜像是通过存储驱动技术管理的。系列分层的只读文件,而当容器镜像运行为容器时,就会在镜像的最上层添加一个可写的层,也就是容器层,所有对于运行时容器的修改其实都是对这个容器读写层的修改,所有对容器的变化,比如写新的文件,修改已有文件,都只会作用在这个容器层之中。
- 因为容器是操作系统内核自带的能力,所以不需要再在这基础上运行虚拟化和新的内核,本质上是进程级别的隔离,因此更加轻量级,部署运维和性能的损耗也更小。同时也因为容器是应用和运行环境一起打包的,所以可移植性好,标准化程度也高,为应用的大规模灵活扩展和管理提供了良好的基础。
- Dockerd是docker架构中一个常驻在后台的系统进程,称为docker daemon
- Containerd是dockerd和runc之间的一个中间交流组件,docker对容器的管理和操作基本都是通过containerd完成的。
- Containerd-shim是一个真实运行容器的载体,每启动一个容器都会起一个新的containerd-shim的一个进程。
- RunC是一个命令行工具,用来运行OCI标准格式的应用
2.3 Kata Containers介绍

- Kata容器是Intel、华为、红帽等公司发起的开源容器项目,提供直接在裸机上运行容器管理工具并实现工作负载强安全隔离的能力,将虚拟机的安全优势与容器的速度和可管理性完美统

文章详细介绍了云原生的概念,包括其背景、发展阶段和核心组成部分,如Kubernetes的架构、容器技术(Docker)的运作原理、Kubernetes的网络和服务管理、持久化存储等。此外,文章还提到了云原生2.0的演进,强调以应用为中心的管理,并介绍了华为云的云容器引擎CCE、云容器实例CCI以及Serverless服务FunctionGraph等产品,阐述了它们在企业数字化转型中的应用和优势。
最低0.47元/天 解锁文章
982

被折叠的 条评论
为什么被折叠?



