云原生从提出至今,经历了7-8年的发展壮大,目前已经能够投入实际生产活动中,进入了相对健康稳态的环节。
云原生系统由四个部分组成。最底层是云计算基础设施及服务,云原生代表长在云上的一套体系架构,因此其底层一定依托于云计算的基础设施以及服务。在此之上是云原生管控系统和云原生节点系统(龙蜥云原生OS)。管控系统更关注的是应用定义、各种服务框架以及业务编排,更关注集群级的行为,将很多机器或资源进行整合,关注系统整体如何对上服务于业务;而云原生节点系统的关注点在于,在一个具体的节点上,如何高效利用本地的资源、服务并最终服务于业务。
管控系统和节点系统一起服务云原生的典型应用场景,包括无状态应用、数据库、大数据智能应用、创新平台等。
我们想要通过龙蜥云原生构建云原生操作系统。
如何构建操作系统?最终希望构建成什么样的操作系统?这是半年以来我们一直在思考的问题。
我们曾考虑过两个模型。第一种思路是以 K8S 的发行版为核心立意点,为整个云原生提供开箱即用的发行版,再对发行版下需要的基础软件或操作系统的核心组件和能力进行整合。另外一种思路的核心是立足于操作系统,做云原生时代所需要的操作系统,支持云原生服务平台,比如可以有阿里的 ACK-D 也可以有OKD等不同的跨层平台方案。
经过综合考虑,我们认为后者更符合当前的定位和需求。龙蜥云原生发行版本质上是针对云原生的技术潮流和业务背景下新型的操作系统发行版,最直白的解读是龙蜥针对云原生场景的特定发行版。
容器最开始出现时,操作系统已经将 Docker 等组件包含进来,可以在操作系统里运行容器的组件或服务,也称为包含容器组件的经典 OS 。15年左右,业界提出了新的技术思路——在有容器的环境下,可以为容器形态定制专门优化的操作系统,称为congtainer或容器系统。
然而,我们认为仅仅支持容器还不够,因为云原生还需要更多服务、更多基础能力。在云原生下,应当构建支持云原生业务场景的云原生操作系统,这意味着从容器 OS 往前继续演进了一步,演进成为容器云原生 OS 。
最终,我们希望云原生 OS 里的核心技术能够反哺经典 OS ,比如包管理、任务资源分配、软件发布等也可以使用容器技术。
龙蜥云原生操作系统正在实现从容器OS到云原生OS的跨越。立足于龙蜥基础的OS发行版,针对云原生场景进行特殊的优化以及定制,再加上云原生所需要的组件,为用户打造出一套开箱即用的云原生发行版。理想状态下,用户购买几台物理机或在云上购买资源之后,即可快速部署一套系统,运行业务。
今年上半年,我们协同Intel、蚂蚁、阿里内部各团队共同探讨,设计出了龙蜥云原生OS的雏形。
最底层基于 LifseaOS容器操作系统,在此之上集成了Dragonfly和 SIG,解决的核心问题是系统如何快速部署、快速拉起。往上是运行时、存储、网络几个组件,最上层是容器管控系统。
运行时方面,在 Docker 基础之上,针对特殊的业务场景包括不同的任务之间的隔离能力等,构建了Kata 容器;再结合最新的硬件能力的发展,创新地协同整个国际社区,整体推进了机密容器的技术路线发展。云原生存储方面也构建了一套非常强大的系统,包括镜像管理、针对 AI 大数据场景下的数据加速、数据分发。
以上能力初步构成了ACNS系统,但系统安全、运维的构建尚未完善。
龙蜥云原生发行版基于各种各样的开源项目,且开源项目均有自己的上游开发社区,他们与龙蜥云原生社区之间达成互相配合的关系,而katacontainer就是他们之间合作非常好的范例。
我们实现了katacontainer 3.0的关键特性,将宿主机上的 runtime 从 go 版本改为rust 版本,内置 Dragonball 虚拟机的安全沙箱,简化整体的部署架构,也成为了开箱可用的方案。同时基于此架构增加了IntelTDX、AMD SEV机密容器的支持以及Cgroup v2和GPU的支持。整个开发流程是典型的社区开发迭代流程。
我们在去年年底的Kata VPG会议上通过社区公开讨论的形式,将 Kata3.0 的关键特性引入到上游社区。龙蜥云原生社区贡献关键特性到kata社区,kata社区通过发行 3.0 版本在龙蜥云原生发行版里打包 katacontainers ,形成了两个社区之间良好的互动流程,两个社区协同合作才能在未来有更好的发展。
我们希望龙蜥云原生社区能与其他开源社区一起,以相同的形式继续开展合作,实现从上游社区到龙蜥原生发行版之间的良好互动,推动整个社区的发展。
关于龙蜥峰会云原生专场课件获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放可前往龙蜥官网https://openanolis.cn/video 查看。