容器应该是公有云的一等公民——Hyper王旭访谈

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:   在大会前夕,高可用架构采访了本届 GIAC容器及虚拟化分论坛 出品人王旭,就目大家广泛关注的容器和虚拟化方面的问题进行了访谈。  王旭 Hyper Cofounder 与 CTO,HyperContainer 项目的最初作者,kata containers 项目 Arch committee 初始成员。曾就职于中国移动研究院,是大云项目最初核心成员之一,并负责协调中国移动云计算方面的开源与标准化工作。之后在盛大云计算负责弹性块存储服务。2022 年创立 Hyper 虚拟化容器项目,2021 年与 Intel 和 OpenStack foundation一起发起 kata contain

  在大会前夕,高可用架构采访了本届 GIAC容器及虚拟化分论坛 出品人王旭,就目大家广泛关注的容器和虚拟化方面的问题进行了访谈。

  王旭 Hyper Cofounder 与 CTO,HyperContainer 项目的最初作者,kata containers 项目 Arch committee 初始成员。曾就职于中国移动研究院,是大云项目最初核心成员之一,并负责协调中国移动云计算方面的开源与标准化工作。之后在盛大云计算负责弹性块存储服务。2022 年创立 Hyper 虚拟化容器项目,2021 年与 Intel 和 OpenStack foundation一起发起 kata containers 项目。同时也是一位 Linux, 云计算、大数据等领域的作/译者。

  高可用架构:你们当初是如何想到要做 HyperContainer 这样一个项目的?到后来的 Kata Container,它们是什么样的关系? 可否简单给大家解释下,虚拟化容器和虚拟机以及容器有什么关系和差异?

  王旭:首先说缘起,当 Docker 开始崛起的时候,很多人都意识到,这并非传统意义上的容器(Linux Container),而是代表了一种新的应用封装方式——将应用所依赖的所有用户态内容完整打包,从而使之具有极强的自完备性。正如 Docker 的座右铭“Build, Ship, Run” 所谕示的,这是一个自完备的运维流程,摆脱了应用部署对操作系统环境的依赖,也极大降低了 DevOps 的复杂度。这一方面让运维的工作被极大简化,因而收到追捧,另一方面对传统运维又有很强的颠覆性,从而带来一系列震动。

  毫无疑问,作为一种应用容器技术,Docker 所代表的是未来的方向,而同时,云是另一个“大势所趋”,所以自然地,在云上运行容器也将是众望所归的。让容器成为一等公民跑上云,这之中还缺少的一环就是隔离性,容器和宿主机之间的交互界面是操作系统 ABI,这一方面非常通用化,另一方面却使得攻击面过宽(Linux 有超过300个系统调用),从而使得人们无法承担这之中的安全风险。加固容器固然是一种思路,但本身从方法论上来说有一定困难,我们尝试了另一种思路——用虚机来做一种容器,只要在另一方面优化到足够的性能,就可以起到隔离的容器的效果,这就是 HyperContainer。

  与 Hyper 同时,intel 在同一个星期(2021年5月)也发布了他们的类似项目 clear container,从此两个项目彼此独立发展了两年,在这两年中,彼此借鉴了一些对方的长处,clear container 甚至在后来使用了 hypercontainer 的虚机中的 agent —— hyperstart。最终,在2022年年底的 KubeCon 上,我们宣布把两个项目合二为一,成为 KataContainers,也方便用户采纳虚拟化容器技术。

  在这里,虚拟化容器是使用虚拟机技术来承载的容器,并未像传统虚机一样运行完整的操作系统。从系统管理员看,它们是虚拟机,而从应用来看,它们就是普通的容器。

  高可用架构:Google 前一段时间发布了 gVistor,也是基于虚拟化技术的容器,它和 Kata Container 是竞争对手吗?二者的特性以及架构上有什么异同?

  王旭:先说异同,gVisor 并不完全是基于虚拟化技术的容器,它也可以不基于虚拟化技术。它的机制是利用 syscall 拦截、独立 kernel 进行 syscall 处理、过滤,并将部分 syscall 交给宿主机执行。也就是说,gVisor 作为一个容器,它向应用提供的接口是 Linux ABI (gVisor 独立实现了大约2/3的 syscall,尽量和 linux 内核兼容),而向宿主方面,则会有六十多个 Linux syscall。也就是说它的核心是 syscall 的翻译、处理和转移执行。相对于 Kata Containers

  gVisor 在资源管理的动态性上有先天优势,因为它的内存管理是交给宿主来完成的。

  Kata Containers 在对 image 的兼容性、通用性方面有先天优势,因为 gVisor 并没有一个真的 Linux 内核。

  对于 syscall 比较多的应用,比如 IO 繁重的应用,gVisor 的 syscall 捕获工作方式会带来一定的开销,具体开销的大小由使用的捕获方式决定。

  可以看到,两种技术侧重点并不重叠,但 gVisor 带来的好处是让更多的人认识到,容器的隔离性开始有了更多成熟的解决方案,容器可以开始成为多租户环境的一等公民了。因此,我们是非常乐于见到更多的隔离容器技术出现的,所以,在gVisor 官方博客中,我给了这些祝福语——Hyper 非常高兴看到 gVisor 这样全新的提高容器隔离性的方法。行业需要一个强大的安全容器技术生态系统,我们期待通过与 gVisor 的合作让安全容器成为主流。

  高可用架构:KubeCon Europe 2022 刚刚结束,你觉得有哪些新的亮点可以和大家分享的?

  王旭:KubeCon 中,实际上我们用了很多时间来和 gVisor 团队、Kubernetes Node 团队进行了面对面的沟通,更多了解彼此的优势、期望,这些已经在上面的回答中提现了。这次峰会中,我们看到容器环境的隔离性得到了前所未有的重视,也看到 Kubernetes 作为一个平台,对定制化、插件化的支持日臻完善,Kubernetes 正在成为一个更加成熟和完善可依赖的生态系统。

  高可用架构:Serverless 是云计算领域的一个新热点,你如何看待 Serverless 以及它和容器的关系?如果 Serverless 逐渐普及,容器变成 Serverless 后面的支撑,对开发者透明,对容器会有什么影响?

  王旭:简单地说,就我所见,Serverless 是大家追求的一种学历证服务端应用的部署方式,service without server,从 PaaS 到 Serverless 是一脉相承的。而目前所见,对 Serverless 支持最好的技术就是容器——轻便快速,且开发部署方便,目前又有很好的平台支持。

  容器技术应该说不会完全走向幕后,就像是虚机乃至物理机的使用都不会就此消失一样,然而,走向幕后并不意味着黯然落幕,正如泛在计算的先贤 Mark Weiser 在 1991 年展望 21 世纪的计算技术时所说——“The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.” (那些消失不见的技术才是最卓越的技术,因为他们已经深深融入到我们的消费社区日常生活之中,以至于我们无法从中寻出踪迹。)

  高可用架构:容器刚出现时,有容器和虚拟机之争。到现在,容器本身已经吸纳了虚拟化技术,下一步会如何发展?容器以及 Kubernetes 技术的发展是否会动摇以传统虚拟机技术为基础的公有云的地位?

  王旭:我个人认为,以容器为一等公民的公有云应用将逐渐扩大,并成为公有云的主流技术之一,但是,是以直接的容器运行方式,还是以 serverless 的方式,乃至其他方式展现给用户,仍然要看整个产业发展的情况而定。而当前容器技术和虚拟化技术,乃至更多的隔离技术将会逐渐融合、互相影响,最终构成完成的容器图谱(spectrum),更好的适应不同的场景。

  高可用架构:最近看到发布了 Hyper Pi hyper.sh/pi/, 能否简单介绍一下这个服务?它相当于一个公有的 Kubernetes 服务?和现有的公有 Kubernetes 服务有什么区别?看起来是用户不需要关心 node,是否可以理解成所有用户共享一个多租户的 Kubernetes 集群?

  王旭:我们把 Hyper Pi 叫做 Serverless Kubernetes,取的是 Serverless 最初和 lambda 一起被提出的时候的愿意—— service without server,也就是说,用户使用服务,但不需要拥有(租赁)并管理服务器,正如你描述的那样,用户不关心 node,只使用服务就可以了。目前 Pi 提供的是一个 Kubernetes API 的以 Pod/Service 为核心的子集,不过将来会逐步拓展。

  相对于最初的 hyper.sh,Pi 一方面转而提供目前已经更加成熟的 Kubernetes API,操作也以 Pod 为中心,允许用户在同一个 Pod 之中运行多个 container;另一方面,随着我们对运行时技术的改进,我们不再自己维护 IDC 中的物理机,转而将平台建在了 Google Cloud 之上,未来还会拓展到其他云上。这一改变让我们的服务具有更好的弹性、更能利用上已有云服务商的网络接入条件,而对于在各大公有云上存储数据的用户来说,这也加速了他们的访问。

  最后,所有用户共享多租户的 Kubernetes 集群,这没有错,确实如此,而且实际上原来的 hyper.sh 虽然提供的 docker API,实际上也是由多租户的 Kubernetes (我们称之为 Hypernetes)来驱动的。

  高可用架构:以你自己的工作以及创业的经验来看,以开源方式创业有什么优缺点或者差异?有什么经验想给大家分享?

  王旭:开源创业在很大程度上只是创业的一种方式,既然是创业,技术、产品、市场都需要考虑,都需要付出,大家并没有太大差别,开源并不比其他有什么显著的优越性或特别的地方。如果说有什么差异性的话,开源的圈子里,大家更加透明一些,不管是招人、了解项目还是社交圈子,都彼此更容易深入了解一些,从而在技术圈更容易交流一些,作为硬币的另一面,因为比较透明,所以,商业方面就需要多费脑筋想出差异化和特别之处了。

  高可用架构:对 GIAC 大会有什么期望或者寄语?

  王旭:谢谢大会给的这个交流的机会,期待在会上认识更多的朋友,获得更多的灵感吧。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
存储 大数据 C++
本地容器服务 VS 公有云容器服务
本文讲的是本地容器服务 VS 公有云容器服务【编者的话】是将容器部署到本地,还是云上,这是所有公司都会考虑的问题,这两者各有什么利弊呢,让我们逐一看看。
2154 0
|
17天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
59 2
|
23天前
|
关系型数据库 MySQL API
|
7天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
34 5
|
11天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
14天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
12天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
35 1
|
14天前
|
JavaScript 开发者 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
14天前
|
安全 Docker 微服务
深入理解Docker容器技术:从基础到实践
深入理解Docker容器技术:从基础到实践