写点什么

话费系统、加油站、Qumranet 与红帽:一个 oVirt 开发者的编程人生

  • 2013-06-04
  • 本文字数:4197 字

    阅读完需:约 14 分钟

在 2013 年 5 月 8 日、9 日举办的 oVirt 研讨会上,InfoQ 对红帽工程师 Doron Fediuck 进行了一次采访。Doron 来自以色列,是前 Qumranet 员工,现在在红帽的一个虚拟化项目中任团队经理。在下面的采访中,Doron 会介绍他加入这个项目的过程,以及他对 oVirt 和其他虚拟化项目的一些看法。

InfoQ:Doron 你好!刚才我听了你针对 oVirt SLA 讲的课程,感觉很有意思。能否先简单的做一个自我介绍?

Doron:当然可以。我在 1998 年加入 IT 行业,一开始的工作是在一家名叫 Amdocs 的以色列公司。这家公司做手机的管理系统,比如手机运营商的计费系统和客户管理系统等。当时我还是个学生,跟着公司的项目也去拜访了不少大公司,了解到不少新鲜事物,包括人们是如何处理大数据的过程。1998 年到 1999 年前后,正是手机产业的革命性阶段,当时的一大挑战在于处理来自交换机的大量信息,包括为每个用户生成每个月的费用单等等。

InfoQ:你是从那时开始了解有关网络和硬件相关的知识的吗?

Doron:我对网络研究的不深,只是知道它是怎么回事而已。当时我主要的工作是在费用单系统这块。我当时是“费用单预备”系统的小组组长,这一块工作涉及很多数学计算,比如每个用户签的是哪个合约,他是在白天还是在晚上打电话,他在哪个国家,那个国家的税率是多少,等等。

后来,公司派我去悉尼建立一个支部。我在那里学到了一些安全相关的知识,因为澳大利亚在政策上要求进行欺诈侦测。在 SIM 卡出来之前,复制一个手机身份、盗取手机上的信息很容易,所以我们需要对安全方面进行加固。

这样做了一段时间之后,公司希望我往经理的方向发展,但是我当时还很年轻,想多深入行业业务,不想做经理,于是我加入了另一家以色列公司,接触到一些网络和嵌入式系统方面的项目。

我们的第一个项目是针对加油站做的。我的公司有一项专利,就是在汽车里面有一个内置的信用卡。大企业会购买这种设备放到公司的汽车里面去,当员工开着这辆车去加油站的时候,加油的油嘴上有一根天线,能够直接从设备上的信用卡读取数据,进行验证;验证通过之后,油嘴就开始加油,同时油钱会直接从信用卡上扣除,员工无需另外付费。大公司用这种方案的好处在于省钱,因为加油站对大公司是可以提供折扣的。当时做这个项目的时候,我对金融的交易过程、网络协议这方面都研究了很多。这套系统一开始的原型是采用 Linux Slackware 配合 SSD 做的。在 2001 年,SSD 还不多见,不过我们拿到的工业 PC 上配置的就是 SSD。原型做出来之后,我们提供给荷兰的一家加油站试用,结果用了两三个星期也没遇到什么问题。

这个项目之后,我进入了另一个完全不同的项目,跟安全相关:PKI、数字签名、加密等等。有一个项目是网络安全相关的,用于进行企业内网的权限管理。比如一个陌生人进入一家公司,拿着网线接入,尝试通过以太网连接,那么他需要获取一个 IP。当时的很多企业用的是很简单的 DHCP,这样陌生人就可以轻松获得一个 IP。即使有些企业关闭了 DHCP,这个陌生人仍然可以尝试手动给自己分配静态的 IP,最终成功连入企业网络。我们做的系统就是为了防止这种任意接入的问题。这个方案跟后来的 802.1x 标准要实现的目标是一样的,即 NAC。

2008 年,我的一个前同事给我打了一个电话,他当时刚加入一家创业公司,公司的名字是 Qumranet。他说他们在做虚拟化,需要我过去帮忙。我就跟我的经理打个招呼,请了一个月的假期,去他那里帮他解决一些 C++ 的问题。本来我跟 Qumranet 只是短期合同的关系,但在这段时间,我之前的公司出了一些问题,面临破产;而在同时,红帽宣布收购了 Qumranet。于是在 2008 年 12 月 1 日,我成了一个红帽的员工。

InfoQ:很有意思的经历。你加入红帽之后,做的仍然是虚拟化方面的项目吗?

Doron:是的。Qumranet 的人都非常有创造力,而他们在早期折腾的一些东西,后来都逐渐发展成为 Spice 和 oVirt 这样的项目和产品。KVM 和 oVirt 实际上是同根而生。从 KVM 诞生之日起,我们就决定要有一个管理它的系统,因为我们不可能靠脚本实现所有的操作。oVirt 就是这样诞生的——只不过一开始叫 Solid Ice 这个名字。

我在早期的项目之一是将 oVirt node 和 oVirt 进行集成。oVirt node 相当于虚拟机系统,是宿主机的子集:oVirt node 会包含所有相关的软件包,我们要做的是让虚拟机能够跟 oVirt node 进行交互。之前,我们已经在 RHEL 上实现了类似的功能,不过 oVirt node 的情况跟 RHEL 不太一样,我花了好几个月才把它搞定。

之后的项目是 VDSM,我们开始为 oVirt 存储撰写早期代码。当时我跟 Ayal Baron 一起做这一块,他现在是 oVirt 存储项目的经理。

InfoQ:之前在 Qumranet 的项目都是用.NET 编写的,后来全部用 Java 重写?

Doron:是的。由于 Qumranet 是初创企业,选择.NET 能够非常快速的写出东西来。早期的管理系统都是 C#写的。Web 部分完成了之后,整个集成没花费多长时间。虽然我是个搞 Linux 的,对.NET 不怎么喜欢,但那种快速开发、快速实现,的确很管用。事实上,当时的一些思路,比如热迁移的实现,如何从管理应用对整个系统进行监控等,后来的 OpenStack 项目中也有所借鉴。

总之,后来我们按照已经理顺的思路将整个项目用 Java 重写,操作系统也从 Windows 迁移到 Linux。在这个过程中,有些组件进行了改进,有些还是遗留代码。项目本身总是会有改进的空间。不过跟之前很不同的一点就是,迁移之后——尤其是去年这段时间,我们看到了大量来自社区的参与、贡献。Linux 社区的动力非常大。而且,oVirt 项目在 UI 这块,来自社区的贡献很多,因为 UI 这块只需要搞 JavaScript 就行,无需修改引擎本身。无论你使用 Nagios 还是其他什么系统,都可以很轻松的进行集成。最近两三个月,也有不少对 oVirt 的贡献进入了下游的 RHEV 产品,我觉得这非常好。

InfoQ:电信领域对 SLA 的要求是非常高的。你加入红帽之后,感觉这方面最大的区别是什么?

Doron:主要是情景的不同。打一个电话,和管理一台虚拟机,是完全不同的情景,不过有些概念是通用的。两个情景都需要 SLA。而且时代不同,同一个领域的情景也会不同。

比如在早期的电信时代,经常会发生一种情况:你打一个电话,打了 30 秒之后就掉线了;然后你重新拨打,通话了 30 秒,又掉线了。这是非常糟糕的 QoS(服务质量),不过在那时候的以色列,某运营商提供的服务就是这样的。

现在,大家用手机都要上移动网络,我们关注的是我在手机上能下载多少东西,是不是可以直接在线观看视频等等。大家谈论的是手机网络的 QoS。

虚拟化领域,虚拟机也有类似的需求。比如存储,现在的共享存储都是基于网络的,所以如果网络不稳定,你的存储也会不稳定甚至失效。另外,如果你的物理 CPU 过载,你的虚拟机也会很难受。

无论是哪种场景,QoS 的本质无非是:我们愿意付出多大代价换取好的体验?所以,我以前在其他领域积累的经验,经常能够在另一个领域看到对应问题的解决思路。

InfoQ:你刚才的演讲中提到 oVirt 和 OpenStack 有很多合作和组件共用。红帽内部也有 OpenStack 的团队。你们是如何分工的?

Doron:oVirt 项目内部有不同的小组,每个组专注的方向不同。存储组专注于存储,这个组跟 OpenStack 的存储组有非常密切的合作,目前在一起做一些 Glance 方面的集成工作。

网络组也是一样。我的同事 Dan Kenigsberg 就在网络组,他们也在观察 OpenStack 的网络组件,寻找可以相互借力的点。第一个 oVirt 研讨会是由思科主办的,当时的一个分享有关 OpenStack 的 Quantum 组件。他们组就研究了 Quantum 的工作原理,并提出了集成两个项目的 PoC(Proof of Concept)。同时,社区中也有人在进行同样方向的工作,比如惠普的工程师就提交了一个蓝图,让 OpenStack 使用 oVirt 集群作为计算节点,以及为 oVirt 创建模板,让 Glance 可以使用 oVirt 的镜像模板组建 OpenStack 环境。

OpenStack 和 oVirt 的受众是不同的,不过双方合作对大家都有好处。我们可以借力 Quantum 在网络上的成果,Glance 可以使用我们的镜像和集群,这样大家都方便很多。我们最近在评估对 oVirt 任务计划进行重写,也研究了不少 Nova 任务计划的代码。Nova 的很多观点是很好的。如果重写后的实现方式足够贴近,用户很可能能够在两个项目之间复用代码。

InfoQ:oVirt 的配置过程很简单吗?要知道,很多人吐槽 OpenStack,就是因为它的配置太复杂。

Doron:当然。在 Qumranet 的时代,我们就在致力于简化这个过程。刚才我提到的 oVirt node 项目,就是为了让用户能够在两分钟内添加一台新的服务器进入到 oVirt 配置当中。这个过程非常简单。

从 OpenStack 本身的角度,它也没什么错,因为我们的受众不同。OpenStack 的目标是实现大规模的集群,同时,他们对单点高可用也没什么需求:如果一个 VM 死掉了,他们可以启动一个新的 VM,没什么关系。

oVirt 实现的是一个虚拟数据中心。如果我的邮件服务器挂掉了,我需要 1 分钟内把它搞回来,同时我也不想丢数据。所以我们需要简化操作:自动完成虚拟机系统的安装,保持用户操作方式的一致,改进稳定性,改进 UI 等。整个 UI 的 Web 应用是一个 GWT 应用,有用户界面和管理员界面。在新版的网络管理界面,你可以使用拖拽来将两个网络接口联合成一个绑定,这都是非常简单直观的操作。

社区里还有人呼吁开发 Android 和 iPad 的 oVirt 客户端。实际上一开始社区里有一个 Android 客户端,叫做 Nomad 项目,是一个非常轻量级的 App。不过,这个项目很久没更新了,估计是废弃了。但是不管怎么说,我们对这样的项目是非常欢迎的。

oVirt 还有 VDSM hooks 的机制,用户可以通过 VDSM hooks 扩展自己的 oVirt 系统。如果用户愿意将自己开发的 VDSM hook 反馈给社区,可以直接给 hooks 的 RPM 提交一个补丁。我们十分欢迎大家参与这方面的工作。

InfoQ:既然 oVirt 是项目,RHEV 是产品,这是否意味着 oVirt 更多面向工程师,而客户还是直接去购买 RHEV 的服务比较好?

Doron:这个倒是不一定,因为 oVirt 社区里有很多成员已经把 oVirt 作为提供给客户的解决方案。

项目和产品的最大区别就是在于你是否需要靠谱的服务。就算在大企业中,也不是所有的环境都需要服务支持,比如测试环境,你总是可以用 Fedora 和 oVirt 来进行测试的。

同时,项目和产品之间也有点轮回的关系,做好事总是有好报。比如 RHEV,虽说是直接拿了 oVirt 项目的成果去运作,但是 RHEV 使用过程中反馈的 bug 和针对这些 bug 的 fix,也都会回馈到 oVirt 项目中。

2013-06-04 03:352109

评论

发布
暂无评论
发现更多内容

Python 下载的9种方法,Python开发技巧

程序媛可鸥

Python 程序员 面试

红黑树的原理以及实现

Linux服务器开发

数据结构 B+树 红黑树 Linux服务器开发 Linux后台开发

2022年最新iOS面试题(附答案)

iOSer

ios iOS面试 ios开发 iOS 知识体系 iOS涨薪

龙智荣誉 | 一封来自客户的感谢信

龙智—DevSecOps解决方案

感谢信

郑州等保测评公司有哪些?在哪里?

行云管家

网络安全 等保 等保测评 等保2.0 郑州

【网络安全】记一次网站站点渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

自从用了这个APP,我的身体状况....

IT蜗壳-Tango

极客时间 IT蜗壳

python 列表 remove()函数使用详解,最新手淘Python高级面试题及答案

程序媛可鸥

Python 程序员 面试

Python 实现七大排序算法,面试竟然被这31道Python基础题难倒了

程序媛可鸥

Python 程序员 面试

在线JSON转CSV格式文件工具

入门小站

工具

Nebula Graph 在企查查的应用

NebulaGraph

数据库 开源 图数据库 知识图谱

315权益日解读:“幸运”大牌和巨头,“挡枪”作坊和“小弟”?

易观分析

315晚会 央视315晚会 消费者权益

案例研究:亚马逊广告使用 PyTorch 和 Amazon Inferentia 扩展广告处理模型

亚马逊云科技 (Amazon Web Services)

模型 PyTorch

Python 实现 ZeroMQ 的三种基本工作模式,贼好用的Python学习路线集合

程序媛可鸥

Python 程序员 面试

Cloud RedTeam视角下元数据服务攻防实践

火线安全

云原生 云安全

golang并发控制设计中的“流式模型”

不登山的小鲁

golang

全球案例 | Hubspot 通过 Confluence 打造透明的协作文化,使之成为让无数人骄傲的企业

龙智—DevSecOps解决方案

Jira Atlassian Atlassian Confluence 协同办公软件 协同软件

一眼定位问题,函数计算发布日志关键词秒检索功能

阿里巴巴云原生

【模块五】设计微博系统中”微博评论“的高性能高可用计算架构

yhjhero

架构 #架构训练营

python sorted()函数及sort()方法,零基础Python开发

程序媛可鸥

Python 程序员 面试

什么牌子的云堡垒机好用?效果好?

行云管家

云计算 堡垒机 云堡垒机

企业CICD规模化落地浅析

阿里云云效

云计算 阿里云 云原生 CI/CD 持续交付

档案管理系统平台:助力实现档案管理现代化

小炮

python Excel数据表格转为HTML网页数据表格,阿里快手拼多多等7家大厂Python面试真题

程序媛可鸥

Python 程序员 面试

数据分析师如何正确地提意见?

博文视点Broadview

踏雪痕项目管理学习笔记

踏雪痕

项目管理 PMP Certification 3月程序媛福利 3月月更

攻击面管理(ASM)技术详解和实现

风向标

网络安全 asm 安全419 零零信安

阿里云 OSS对象存储攻防

火线安全

云安全 阿里云;

虚位以待 | 龙智有你更出彩

龙智—DevSecOps解决方案

求职 招聘

网站被DDOS攻击了怎么办?

源字节1号

开源 前端开发 后端开发

python pandas loc布尔索引(指定条件下的索引),你花了多久弄明白架构设计

程序媛可鸥

Python 程序员 面试

话费系统、加油站、Qumranet与红帽:一个oVirt开发者的编程人生_Java_sai_InfoQ精选文章