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

你可能感兴趣的:(OpenCloudOS云原生演进之路)