UCloud 技术副总裁杨镭首谈 UCloudStack、保护客户隐私、回馈开源社区背后的故事和挑战。
日前,Linux 中国社区的老王参加了 UCloud 用户大会,并有幸和 UCloud 技术副总裁杨镭进行了面谈。以下将我们谈话中一些内容分享给大家。
杨镭,UCloud 技术副总裁。全面负责 UCloud 产品研发和产品运营工作,有超过十年 IT & 互联网行业从业经验,在网络领域拥有丰富的经验和深刻的理解。
为什么专门开发了 UCloudStack?
今天的大会上面您提出一个针对私有云的 UCloudStack,是否可以给我们详细介绍一下为什么在有了生态很成熟的 OpenStack 的情况下,UCloud 还投入了巨大的资源去研发UCloudStack?
杨镭:
我们在 OpenStack 上做的还比较早的,当时我们的认知就是公有云是公有云,而私有云 OpenStack 做的比较好。但实际上,通过不断的时间验证,我们发现 OpenStack 有一个比较大的问题,就是过于复杂。
回到用户对私有云需求来讲,用户实际上关注的还是能不能解决他的需求,而不是说要不要用 OpenStack。所以,我们考虑到,既然已经有了多年的云计算的开发和运维经验,如果从头开始做一个自己的私有云产品,是不是会做的更好?
我们做了 16 个月就做出来了这个产品,在完成核心产品之后,整体的代码量还是很少的。代码量是相对来讲是衡量一个项目复杂性的很好的指标。我们根据自己这么多年来的经验做下来,我们发现这个事情并没有那么的难,而且,现在这个时候,在做这个产品的时候认知就和几年前不太一样,我们会比以前想的成熟很多。我们相信做出来的东西会比 OpenStack 更轻量、更好用,这是我们做这个产品的一个主要的想法。
其实现在真正能自己独立用 OpenStack 产品的公司一般都有一个一定规模研发的团队,至少十个人。但是云计算这个市场的人才竞争还是蛮厉害的,一个公司很难有这样一群比较好的人去做这个事情,所以它的门槛会很高。如果说公司的目标只是为了有一个私有云,那么这样研发投入的必要性是打问号的。这些企业的目标和我们云服务商的目标不一样,它的云只是一个工具,不像我们的云是我们本身的一个产品。所以这时实际上企业往往会考虑说怎么能把这个私有云更好的建起来,很快、很稳定的用起来,在成本上比较合理。所以在我们的这个产品上,我们最重要的一个点确实就是在轻量上。
假如你对 OpenStack 需要做一些改动,是牵一发而动全身的,为了做某个功能可能要改造底层的东西,这个时候整个过程在研发上来讲就太“重”了,所以我们如果从零开始做,其实我们的底层就是可控的。我们在第一次推出的时候,我们总的代码量才八九万行,而 OpenStack 所有项目代码量加起来有几千万行,这之间的复杂性灵活性是完全不能比拟的,这是它的一个轻的主要原因。
另外一个,因为我们做这个产品的目的性会比做一个开源的社区项目更明确一点,比如说我们做产品的路线很不一样。当我们的核心产品完成以后,我们做的一个比较大的改变是和传统的网络打通,我们 UCloudStack 部署完了以后和传统的网络做很大的打通,这点和开源社区项目的目标不一样,它要让这个东西更加通用。这在产品的改变选择的路径差别特别大。这个时候看用户要什么,往往用户要的东西更贴近它想要的,这里面也是一个很大差异点。
今天本来想放一段视频,那段视频是当时在富士康的办公园区里面拍的,当时是下午四点钟进入机房到晚上十点种整个私有云的交付就完成了。而且当中大概有 2-3 个小时是因为机房的一些问题影响了整个的进度,如果看到那个视频就会真正感觉到它很轻,但一般而言 OpenStack 部署起来时间会更长,比如说好几天的时间,它的底层太复杂了。
我们一直认同的一点是说,开源软件比较适合做一个组件,比如说一个数据库、一个操作系统、一个很垂直的部分。但是云实际上不是一个垂直的组件,而是很多组件组成在一起的一个体系。如果你去用开源软件做组件的方式去做云,这其实不是特别的理想。
为什么将客户隐私保护拔高到这样的高度?
今天上午大会上您提到一个隐私的产品,禁止一些 API 采集用户数据,来保护用户的隐私,这方面能够详细谈谈吗?
杨镭:
这个我需要澄清一下,我们说的是禁止我们的云平台收集我们客户的信息,而不是说我们禁止了客户收集他的用户信息。因为我们是给企业提供服务的,企业本身给他的终端用户提供服务,我们控制的是我们和企业之间数据的隐私问题。比如说它的使用习惯是什么,或者它业务的模型是什么,我们在控制这个。
因为我们自己是做云服务的,我们的技术工程师在管理我们云业务的时候,实际上是有可能看到用户的数据。比如说你是一个电商公司,假设你的数据库如果没有进行加密,技术人员是可以看到这个数据的。目前来讲绝大多数的厂商,靠的还是流程和制度,靠的不是技术手段保护。什么叫技术手段,就是说我想看却看不到,因为是加密的。你只有拿到相应的解密密钥才能去看。我们说的数据保护更多的是这方面。
再比如说我们的云主机最终跑在 SSD 硬盘上,如果你去机房里把硬盘直接拔插走,而没有加密的话,一定是能读到里面的数据。从长远来看,这是不能出任何问题的,哪怕是一两次。像某互联网公司出了几次乘客的安全事件以后,事情影响就非常恶劣。回到做云服务,我们的责任一样重大。我们如果只是一家公司,也许我有的只是很特定的一些数据,但是作为做云服务的公司,我们上面的客户不是我们能决定的,要看客户自己做什么业务,所以我们上面有几十万,甚至几百万的数据,这是一个非常长远、需要很认真对待的事情。所以我们把这一点放到了一个很高的、甚至于到我们企业文化和价值观的角度。
作为一个工程师来讲,首先我们要有价值观,这是第一点,但是也要从技术上保证,所以我们未来会在这方面投入很多的技术研发工作,来实现比如说我们自己的技术工程师没有任何可能能看到我们客户数据。这里面实际上是有很多的技术工作要做的。
在我们刚刚做云的前两年,那时候如果去对数据做加密,就会严重影响到性能。这个时候你很难两者兼得,但是随着这几年的技术的演进,很多的加密算法被逐渐的优化以后,基本能做到做了加密也不怎么会影响性能。所以现在这个时代,是一个非常好的时机,是一个你应该要去做这件事的时机。
整个这个事情大概我们是这样看的。除了数据的加密,包括用户有时候会输入给我们很多数据,他在做一些操作需要提供身份信息,比如说现在网络安全法要求用户使用要做实名认证,也就是说他的身份证会上传到我们这儿,这些数据其实是一个很隐私的数据。这件信息的泄露是一次都不能发生的,所以我们如果回到最根本的来说,我们怎么样尊重我们的用户?这个事情其实比一些产品功能更重要。
我们不希望出了事故以后我们再做一些补救的工作,那时候即使你是真的去做,你的用户也已经受到了很大的伤害。
另外一个层面,我今天没有提到,因为云计算的公司,我们特别需要最顶尖的技术人才,我们这么多年来在吸引最顶尖的人才上我们逐渐意识到靠的不是钱、待遇,或者是一些职位。最优秀的顶尖技术人才,看的是你公司的理念和价值观,比如说谷歌、苹果他们有非常多的几十年的行业人才在里面,为什么?他们做的工作就是数据安全性、隐私就这方面的工作。所以我们也是在商业的进化过程中,我们发现要做一家几十年的公司,不是靠一两年的财报,而是靠这些背后的东西,这是我们很真实的一个自己成长的过程。
对开源社区的回馈
我们非常关注 UCloud 在采用开源软件方面的情况,云服务商的很多基础设施都是基于开源软件的。目前UCloud在开源方面对上游社区的贡献情况怎么样?
杨镭:
我们目前在开源方面目前做的工作还不多。但是为什么不多?不是我们不想做,而是因为我们处在一个技术竞争特别激烈的行业里面,你的产品实际上卖的都是技术。我们的技术人员这么多年来其实一直不太够用,所以我们绝大多数的精力是在做我们自己不得不做的事情,比如说今天说的网络架构的透明升级,这个事情实际上把我们的核心人员的精力全部消耗掉了。为了这些升级,我们要跟客户沟通好这个事情让客户放心我们才能做,这也是为什么我们会做 29 个月的原因,其中有 9 个月是跟客户沟通的过程中。我们的人并不是很多,我们对自己产品的要求还是蛮高的,在这两个因素影响下,我们也很难拆出精力来更多的主动回馈社区。
但是这一点上我们想法是很明确的,只要我们现在有精力就会回馈社区。比如说这次做的 25G 的网卡,这个解决了一个核心障碍,我们把这个东西交给上游,但是从整个公司来讲这块投的人员和精力还不是很多。像我们开源的命令行工具,我们和 Hashicorp 做的整合,这些我们全部开源了,但是这些还远远不够。其实开源,也是想让用户知道你的代码到底怎么写的,只是说这里面是一个精力问题,不是意愿问题。
我们在 2013 年做了一个内核模块,是可以把 SSD 盘加速 100 多倍,由于一些原因,我们的代码是针对某些特定场景的。同时在代码的规范上也做了一点牺牲,如果要开源,相当于要额外增加 30% 的工作量。但是我们现在一直在想,就像今天举的例子,把很多东西开源,尽量的变成工具化,而不是放在 UCloud 的内部一个产品,只是我们精力不太够。
最近 Redis、Kafka、ES 这样的软件都在许可件上改了自己原来的开源许可证,针对云服务商提出了特别的条款。比如说云服务商用 Redis给客户提供服务,但是很少对 Redis 进行社区回馈,所以云服务商需要额外采购商业许可证,您怎么看这个事情,UCloud 怎么面对这个情况?
杨镭:
目前来看,我觉得确实云服务商对社区的回馈是偏少的,所以说我觉得 Kafka 和 Redis 在这个事情上他们是有一定的道理。但这个事情也不能单方面的看待,因为实际上云厂商在推出 Kafka、Redis、ES 产品时,其实也帮这些开源软件做了很多的推广。Redis 比较简单,Kafka 或者是 ES,其实还是一个蛮复杂的软件。云厂商将这些组件加入平台后,把最复杂的地方把简化了,用户甚至连性能维护都不用考虑,另一个维度来看相当于推广了 Kafka。我认为云厂商或者是以此谋利的厂商,他应该做足够的回馈,不管你是以钱的方式,还是以研发的方式,我觉得是应该回馈的。
和杨镭的沟通当中,我们还谈到了许多其他问题,这里限于篇幅就不展开叙述了。从上面的谈话当中,我们能感受到 UCloud 做为一家新兴发展起来的初创公司,无论是在技术还是企业价值观方面,逐渐形成了自己独有的优势。其实作为 UCloud 多年的老朋友,这次参加这个大会,让我意外的是,原来我对他们的了解还所知甚少;也为他们在隐私保护、技术研发等方面默默做的工作而吃惊。希望这些技术人可以秉持初心,真正做出一个好用、值得用的产品来。
“穿山甲专访”栏目是 Linux 中国社区推出的面向开源界、互联网技术圈的重要领军人物的系列采访,将为大家介绍中国开源领域中一些积极推动开源,谙熟开源思想的技术人,并辨析其思考、挖掘其动因,揭示其背后所发生的事情,为关注开源、有志于开源的企业和技术人标出一条路径。
取名为“穿山甲”寓意有二:取穿山甲挖掘、深入之意来象征技术进步和表征技术领袖的作用;穿山甲是珍稀保护动物,宣传公益。