有幸获得了 HACKx 赠送的 LinuxCon 2017 门票,于是便动身参加了 LinuxCon 2017,这也是 LinuxCon 首次在国内举行,顺便也在大会上见到了 Linus Torvalds。
这次的 LinuxCon 实际上是三个会议,其一不用说,就是 LinuxCon 了,然后是 ContainerCon 和 CloudOpen,官方合称为 LC3。此次 LC3 的 Keynote 和各展商的 Presentation 覆盖了以下 10 个方面
- Programming Frameworks 编程框架
- Application Platforms 应用平台
- VM / VIM Managers 虚机管理
- Containers 容器
- Operating System 操作系统
- Virtual Machines 虚拟机
- Network Management & Orchestration
- Carrier Networking 运营商网络
- Network Controller 网络控制
- Data Plane Services 数据平面服务
在这 10 个方面上,作为支撑的则是
- Security 安全性
- Governance, Operations & Ecosystem 运维
- Licensing & IPR 许可和知识产权
- Training & Certification 培训和认证
除了 Keynote Session 之外,各展商的 Presentation 都是同时在不同会议室展开的,我只去听了其中几场
- Much Ado About Blocking: Wait/Wake in the Linux Kernel - Davidlohr Bueso, SUSE Labs
- Rethinking the OS: A Travel Journal - Simora Arsene, SUSE
- MD RAID1 and NVMe: High Performance Data Duplication - Coly (Yong) Li, SUSE Linux
- Kubernetes Bootcamp 101 - Caicloud
- LinuxCon K8S + TensorFlow Bootcamp 101 - Caicloud
要说什么的话,这次的 LC3 给我的感觉是(大部分)围绕 Container 来进行的,包括但不限于 SUSE、Intel、VMWare、Caicloud 在内的公司都在致力于为 Containter 提供更好、更易用、更安全的体验。
这里我挑选几个印象最深的来说说吧。
首先是 SUSE 正式发布了 SUSE MicroOS(Micro stands for Microservice),官方是这样描述的,
A purpose built Operating System designed for microservice & containers and optimized for large deployments.
一个专为微服务与容器打造的,且为大规模部署优化过的操作系统。
主要特点则是
- An always up-to-date Operating System
- An easy to manage/upgrade OS
- Easily setup/manage a cluster of nodes
- scalable - up to 1000s of nodes
An always up-to-date Operating System(一个总是最新的操作系统)。关于更新这一点,可能有人遇到过更新之后出现问题的情况,SUSE 在这边使用了 Atomic Upgrade(原子更新),保证了在更新期间,即使出现了问题,也能回滚到更新前的状态。接下来,SUSE 做到 always up-to-date 的方案则是,一直在后台拉取更新,然后在系统负载低时进行更新。
SUSE MicroOS 则是作为 SUSE CaaS Platform 的组成之一,剩下则是 Kubernetes 和 Container Engines。
关于 SUSE CaaS Platform 的更多信息,可以参考 SUSE 官方的博客
- Introducing SUSE Containers as a Service Platform
- What is SUSE CaaS Platform? What’s all the buzz about?
接下来则是 Intel 的 Clear Linux 和 Clear Container 技术。需要注意的是,虽然这两个项目命名方式类似,但是实际上是两个不相干的项目。
Clear Container 技术是为了给现有的 Container 提供一个虚拟机级别(例如 VMWare)的隔离。在现有的 Container Engine 技术中,由于不同的 Container 共享的是一个 Linux Kernel,如果其中一个感染了可以取得 Kernel 代码执行权限的病毒,那么这个病毒就可以绕过 Container Engine 的隔离,感染所有正在运行的 Container。
在 Clear Container 中,Intel 目前实现了与 Docker 无缝对接,利用 Intel VT-x 实现了 Kernel 级别的隔离,因此不同的 Container 也可以运行在不同版本的 Kernel 之上。当然,虽说是无缝对接,但是实际上还是多了一层,即 Intel VT-x 那层,据 Intel 的说明,目前在内部测试出来的开销并不大,启动一个 Container 只多 20ms 的样子,但是对文件读取的开销还没有非常明确,目前是将文件映射到内存以尽可能降低这方面的开销。
Clear Linux 则是另一个项目,这个项目的目标是构造一个尽可能小的 Linux 用于 Container,并且内核模块全部使用静态链接的方式换取速度与安全,如果你有特别的需求的话,可以自己在 Clear Linux 的基础上编译内核(当然也都是静态方式)。目前 Clear Linux 的 Container 镜像仅仅 5 MB。