云计算的发展可以分为三个阶段。
第一阶段:单机式的部署,以设备为中心。比如部署 Java 网站类的应用,通常只使用一台设备,在此台设备上安装 OS 系统,在 OS 系统上再部署 Java JDK、Tomcat等。
第二阶段:随着设备和硬件的发展,由原先的以设备为中心发展为以资源为中心,云化概念出现。一般会先部署公有云或私有云,在私有云/公有云上部署虚机的资源,在此之上再部署传统业务比如 Java 类的应用。
第三阶段:随着信息的发展,逐渐演变至以应用为中心。比如 Java 类的应用不会再使用传统的服务,而是用容器化或 DevOps 工作流的方式实现应用。云原生成为了当前主要的发展趋势。
云原生的发展趋势下,OS 会有哪些变化?
首先,传统的 OS 可能在部署过程中安装了sshd或Apache软件组件包。在云原生场景下,所有应用均以容器为前提,比如Python的应用更多的是使用Python 的容器镜像,对于底层的 sshd或Apache包不再有需求,可以将其裁掉,系统也会变得更薄。
其次,云原生环境下,在 K8s集群下可能会有上千台或上百台 OS 节点。运维十分麻烦,升级等操作需要每台依次进行。
另外,传统的Linux 的环境一切皆文件环境,可以任意更改关键路径或数据。而在云原生环境下,系统需要尽量固化,稳定性或安全性会变得更高。
传统的 OS 软件以 RPM 形式进行交付, 以 update 的方式进行升级。而containerOS 的应用是以容器化镜像的方式来使用。 OS 的升级不再提供单独的一台 update 的方式升级,而是将 OS 集群变为一个整体。一次 cve 升级只需推送一次仓库,系统会自动根据仓库里的包进行统一升级。
原有的 K8s部署是通过 K8s官方提供的部署脚本或部署工具实现,部署完 K8s集群之后,再将NGINX 或 Java 等应用部署于K8s上。而现在,可以通过Sealer技术,将应用打包成一体部署,这意味着部署完K8s后,交付的并不是一个纯K8s的集群,而是K8s+NGINX应用。
框架底层的ContainerOS 是基于龙蜥或统信的 OS 进行轻量化裁剪,将系统固化,变成不可变的 OS 。上层提供了容器runtime 相关的组件包,再上层默认继承了K8s集群组件。
如果想要将传统的 OS 变成 ContainerOS,只需三个步骤:将现有 POD 进行迁移,将现有 OS 替换成 ContainerOS ,将现有容器应用镜像的数据迁移到 ContainerOS 上的数据上同,即可实现业务的平滑过渡。
上图为迁移前后的架构对比。迁移后即可通过 K8s集群 push 原先的容器镜像,也可以用社区或统信提供的镜像提供服务。
ContainerOS在云原生下具有以下几大优势:
第一,更高效的资源。通过裁剪没有必要的组件包,让资源更合理地释放。
第二,更便捷的应用。应用不再以传统 RPM 包的形式提供,而是以容器镜像的方式交付,解决了依赖的问题。比如想用 Python 2,又想用 Python 3,传统的 OS 难以解决;而在 ContainerOS 下,只需要两个容器镜像,一个 Python 2和一个 Python 3 即可解决。
第三,更便捷的运维服务。我们提倡零运维,集群内所有的 OS 版本、软件包、组件、内核全部一致,没有额外的配置。每一次升级就都是一台新的系统,避免了雪花服务器或单独配置的产生,相当于新装了 OS ,变得更简单。
在云原生场景下, ContainerOS 有了更多的应用场景。
① 可以做迁移替换,将原有的比如部署在传统 OS或 K8s集群的环境,直接迁移成 ContainerOS +K8s场景。提供了私有化仓库的容器镜像,进行容器化镜像的制作时,可以进行 cve 的修复、安全检测,提升容器的安全性。
② 云底座的改造。云原生场景下更多的是基于 K8s进行开发,而在容器云的场景下,可以将 K8s做成容器云的组件,提供 API 接口,升级、系统 POD 的监控、K8s的监控等都可以通过提供的 API 接口对接到容器云平台上,提供更整体化的交付。
③ 私有化定制。可以使用ContainerOS 做自己的 PaaS平台的定制。比如OA 软件,可以直接通过容器云+OA 软件这样整体的PaaS平台对外提供。
上图为云原生下操作系统的性能测试结果。并发、延迟等均有明显提升。主要得益于对于系统、内核的裁剪,释放了更多资源。
云原生时代下的 ContainerOS 整体思想在于使运维变得更简单。
以动物管理员为例,如果动物园中有不同类型的动物,饲养员需要了解每一种动物的习性,管理难度较大;而如果动物园中如果只有一种动物,则管理员的工作会变得非常简单。操作系统也同理,如果将所有的OS 底层统一化,变成一种动物,则运维、升级会变得更轻松。
综上,ContainerOS 在云原生的场景重点着力于解放运维,让管理变得更轻松。
关于龙蜥峰会云原生专场课件获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
【视频回放】:视频回放可前往龙蜥官网https://openanolis.cn/video 查看。