You need to enable JavaScript to run this app.

深入硬件层、内核态与用户态,一文看懂火山引擎云原生操作系统!

最近更新时间2021.02.28 17:15:10

首次发布时间2021.02.28 17:15:10

深入硬件层、内核态与用户态,一文看懂火山引擎云原生操作系统!

当下企业业务应用数量正呈现快速增长态势,海量的业务应用导致其调用关系错综复杂,这对企业业务和底层系统的稳定性和持续性都提出了极高挑战。如何解决这一难题,保持企业业务的持续快速增长?

近日,在2020全球分布式云大会上,火山引擎解决方案总监于鸿磊以“多云环境下的云原生操作系统”为主题,从云原生操作系统出发,分享了火山引擎敏捷高效的基础设施与技术,为企业追求业务持续增长的提供了一种创新技术思路。

image

激发创造,释放潜能

字节跳动具有长期沉淀、服务于数亿用户的大数据技术、人工智能等基础技术服务能力,拥有成熟的增长理念和方法论。火山引擎作为字节跳动旗下的数字科技与智能科技品牌,希望将字节跳动 经过验证 的技术能力和 成功实践 孵化成提升业务价值的技术红利,释放企业 持续增长 的潜能,为企业级客户提供稳定成熟的技术产品与解决方案。

image

助力企业“持续增长”是火山引擎最关注的重点,我们一系列产品背后都有“增长”二字,行业内成型的解决方案也都围绕着“增长”而建设。 火山引擎强大的内容制作能力、多触点的交互体验、敏捷高效的技术体系、首屈一指的智能算法、独有的增长方法论、高价值的数据洞察,都是助力企业“增长”的坚实基础。

今天我们先从火山引擎“ 敏捷高效的技术体系 ”在“增长”方面的重要表现聊一聊。

传统云架构挣面临三大挑战

提到当下技术体系的构建,离不开一个云字。关于“云”,其实现在传统云架构和IT正面临着三个挑战:

image

  • 基础设施平台化

现在企业使用的云越来越多,我们亟需将自身多样的基础设施、多种边缘模式,形成统一的平台进行管理。

  • 应用架构现代化

企业在运作过程中会产生很多的历史问题,不同应用、不同场景下应用架构之间要如何完美匹配?不同业务的不同应用架构,亟需在一个平台进行规模化、标准化的管理。

  • 开发流程敏捷化

开发流程最终落地要依托于开发人员、技术人员,我们的开发过程、开发流程亟需朝着更敏感、更高效、更安全的方向前进。

要如何解决当下技术架构面临的三个挑战,实现亟需的三个要求?火山引擎给出的解决方案是“容器”。自容器技术诞生以来发展到现在,已经变成了云原生的标准,它也是下一代云计算的核心。

来源于成功实践的火山引擎云原生操作系统

在长期的成功落地应用中,我们通过总结实践经验,提出并实现了一个概念——云原生操作系统,从硬件层、内核态和用户态三个层次,实现多云、异构、海量和极致体验的效果,以整体支撑产品服务。

其中,硬件层即底层极致高效的基础设施,包括计算和存储构成云原生硬件底层;内核态是容器化与大规模调度空间,可联动基础设施与应用场景,起到了承上启下的作用;用户态则是一条工具链,为开发者提供开发、测试、运维、服务治理的一套平台。这三层支撑着用户业务应用的高可用、高性能和高效能需求。

image

1)云原生OS之“硬件层”-极致高效的基础设施

关键词:性能极致、弹性裸金属

image

由于需要支撑丰富多元的业务形态和海量服务,火山引擎云原生操作系统的硬件层有着极致优化、超大规模、自主可控、云原生、高效管理五大特点,可为前线业务提供云算力、海存储保障。

深入云原生硬件层内核细节,云原生的弹性裸金属最核心的一个点是把计算和存储分离,可称为“ 虚拟机的外表,物理机的心脏 ”!

image

  • 虚拟机的外表 :云原生最核心是计算和存储分离,智能IO卡能将CPU、内存、存储资源和网络资源隔开。简单说,“虚拟机的外表”能实现 快速交付、弹性交付、弹性调度 ,是非常强大的性能。

  • 物理机的心脏 :支持强大“虚拟机外表”的,是弹性裸金属强悍的物理机心脏,在 计算角度 ,具有物理机一切的特征; 存储角度 ,云端的存储能通过RDMA、智能IO卡实现高性能加速,得到比本地磁盘更快的性能,又具有远端存储的高可靠、弹性分配等一系列特性; 运维角度 ,支持热升级和分钟级交付。

2)云原生OS之“内核态”-基于容器的大规模智能调度

关键词:容器集群、多云异构、应用支撑、在/离线混部。

image

基于火山引擎丰富的客户服务实践经验,云原生操作系统的内核态基于容器大规模智能调度能力,拥有着强大的服务化支撑能力。

从容器内核态角度出发,管理多区域集群,优化容器操作系统主要围绕三个场景:

  • 第一步,海量服务支撑

容器部署后,我们需要在线做很多RPC服务;需要做服务间的隔离、配置、版本升级;需要紧密结合服务化体系,例如全局化服务发现、全局配置中心。

  • 第二步:大规模调度

容器运行后要面临大规模调度问题。大规模调度可以帮助集群进行大规模优化,通过集群管理能力,能根据异构底层基础设施的特点,针对特征做计算层、网络层、储存层的优化,并集成DevOps平台;通过集群组件优化,可以提升集群中各控制器的性能以及集群调度能力,通过集群功能增长,采用联邦集群、镜像预热等技术,以强化集群功能。

image

  • 第三步:在线、离线混部

当下互联网应用以天内为单位,都有着明显的潮汐特征,例如白天抖音活跃用户很多,但半夜就非常少,这就会出现资源空闲浪费的情况。在内部,我们还有很多离线的计算,比如离线数据处理、机器学习训练、视频编解码等。

那要如何应对在线和离线状态下的高低峰流量,做到在线服务和离线计算合理平衡,保障业务的高稳定性,同时提升资源的利用率?火山引擎有三个手段:

超售策略 :申请资源时通过超卖,回收业务申请的冗余资源。

弹性伸缩 :通过额外监控、精细化运营,回收波谷时段分散的业务资源,归到规整的资源中。

混部控制 :实现在线、离线时资源的灵活拆解,让机器知晓什么时候该进行什么任务。

最终我们实现全局资源利用率为63%,这在业界属于最高水平。

image

3)云原生OS之“用户态”-架构与治理

关键词:服务网格、DevOps、海量运营

云原生操作系统用户态的架构与治理则主要体现在Service Mesh、服务治理和DevOps上。

关于Service Mesh ,简单说,就是实现了一个高性能多协议的代理和一个灵活可扩展的控制服务,将它们与云平台原生集成,最终通过轻量级RPC框架来输出能力,实现“无感知切换”。

image

关于服务治理 ,随着服务量数量爆炸,快速增长,稳定性因素越来越多,服务间单元关系错综复杂,要如何治理?火山引擎的答案是“全局工程、多点联动”,需要通过DevOps、ITOM、配置中心、Gateway、Quota、Tracing、流量调度等多个工具共同支持。

image

至于DevOps,虽然是老生常谈,但真正想做好却没有那么容易,优秀的 DevOps 体系具 有两个核心 :灵活强大的流程引擎 丰富可配置原则服务 我们能在流程引擎挂上可配置的原子服务,原子服务可以分类组合成无数个场景,例如灰度发布、CI/CD、需求联动、分层自动化测试、多环境串联等。

image

脱胎于字节跳动的企业级云原生产品

火山引擎云原生操作系统,内部脱胎于字节跳动内部的技术能力、增长理念与工具,集成了内部核心能力,面向外部又有不同的特色,例如多云集成管理、稳定的大规模的资源调度、多租户管理、面向应用的角色和权限体系以及丰富的开发者功能特性,从而能在整体上帮助企业技术体系转向云原生化,应对底层基础架构革新难题,推进企业实现数字化增长。

image

火山引擎企业级云原生产品 底层坚固 ,可深度优化资管管理调度、异构基础设施管理以及弹性应对大流量、大数据等; 场景丰富 ,提供大流量自动化管理、高业务连续性以及弹性微服务治理等;具备 产品功能与方法论 ,可以组合出不同的工具链,应用不同的场景、不同的企业。

image

除了产品技术的创新,火山引擎在开源领域也是云原生社区积极参与者。2020 年 11 月 18 日,火山引擎在北美举办的 KubeCon + CloudNativeCon 上宣布正式加入 CNCF,正式成为CNCF白金会员,将携数十万级容器集群规模应用实践,全面融入全球云原生技术生态,为云原生的落地应用以及开源生态建设做出持续贡献。

image

当前企业业务应用的数量正呈现快速增长态势,复杂的调用关系对业务稳定性和底层系统的容灾、单元化、容量规划提出了挑战。火山引擎云原生的落地应用和最佳实践在服务于类互联网企业的同时,也是为了赋能数字化转型进程中的传统企业实现持续增长!