OpenCloudOS 云原生演进之路
作为国产开源操作系统社区,OpenCloudOS 沉淀了腾讯及多家厂商在软件和开源生态的优势,在云原生、稳定性、性能、硬件支持等方面均有坚实支撑,可以平等全面地支持所有硬件平台。OpenCloudOS 稳定支撑了腾讯及其合作伙伴超过 1000 万节点的大规模场景,在政务、金融、互联网等行业经过长期使用验证,可以为企业提供稳定高可用的服务,满足业务严苛负载需求。
腾讯在操作系统领域已有超过 10 年的技术积累,特别是云原生的相关技术优化,如容器基础设施、CPU 调度、内存管理、IO、网络、可维护性、虚拟化等 7 大维度的特性贡献到社区中。
技术角度,OpenCloudOS 致力于成为 “云原生最佳底座” 和 “最绿色的操作系统”;本文聚焦于 OpenCloudOS 云原生演进,OpenCloudOS 为云原生提供最佳底座,并通过云原生内核结合腾讯全栈开源云原生技术,打造云原生最佳解决方案。
通用 OS 架构
传统 OS 的定义:
操作系统是控制应用程序执行的程序,是应用程序和计算机 (硬件) 间的接口。
操作系统有 3 个目标:
方便:让计算机更易于使用
有效:允许以更有效的方式使用计算机资源
扩展:允许在不影响服务的前提下,有效的开发、测试和引入新的系统功能
传统通用 OS (Linux) 的典型架构设计如上,操作系统中包含了为实现上述 3 个目标而提供的各种功能模块和接口,总体上,分为两大部分:
内核:提供底层硬件 (计算机) 的基本抽象,不同的内核模块提供不同的硬件管理或相关的辅助功能,通过系统调用向上层应用提供服务。
基础库和相关服务组件 (用户态):为真实业务运行提供基础运行环境
IAAS 场景中的 OS
IAAS 场景中,OS 主要用于为云主机 (虚拟机) 提供运行环境,在 IAAS 场景中,OS 中运行的任务类型和数量可控,场景相对通用场景简单很多。任务类型基本就只有如下几类:
VM 相关线程 (通常为 Qemu + Vcpu 线程)
各种控制面的管理 Agents
OS 自身必须的一些控制线程 (比如 Per-cpu Workers)
IAAS 场景中,为使虚拟机性能无限接近 (甚至超越) 物理机,通常会考虑做减法,通过无限减少虚拟化、OS 层面的开销来提升性能,常用的一些典型手段如:
CPU 层面的绑核
内存层面的预分配
IO 层面的各种 Bypass Kernel 技术
对于 OS 来说,最终的结果是:
OS 越来越薄,最终可能会消失
换个角度看 OS (云原生角度)
当云原生浪潮袭来,换个角度 (云原生角度) 再去审视 OS 时,看到的又是不一样的视图。云原生场景对 OS 提出了新的挑战,也为 OS 相关技术的进一步发展和演进注入了新的动力。
云原生场景中,OS 为不同类型的应用 (Apps,Containers,Functions,Sandboxes),提供底层支撑和服务。此时,相比 IAAS 场景,最明显的差别在于:
应用和系统的边界大幅上移,应用之下皆为 OS
对于 OS 来说,最终的结果是:
OS 越来越厚 (孕育无限可能),与 IAAS 场景形成鲜明对比
OpenCloudOS For 云原生
在云原生浪潮席卷的行业大背景下,伴随着各种业务架构的快速转身,业务的容器化、微服务化、Serverless 化,对底层的基础设施 (包括核心的 OS) 提出了新的挑战和要求,OpenCloudOS 也随之迅速转型,针对云原生场景和需求,进行了深度的重构和重新设计,全面拥抱云原生,向云原生 OS 的目标一步步迈进。
OpenCloudOS (当前) 主要实现 ( Kernel 层) 了如下云原生 Features
· 云原生调度器 - Tencent Could Native Scheduler (TCNS)
· 云原生资源 QoS - RUE
· Quality Monitor
· 云原生 SLI
· Cgroupfs
评论