按服务计费、按需使用一直是云计算标榜的特点所在。在这种情况下,云计算是该走服务化路径还是产品化路径?业界一直在争论。ZStack 创始人兼CEO 张鑫一直坚持的是产品化主张。为什么?11月30日,在接受《中国信息化周报》记者独家专访时,张鑫向记者娓娓道来。
私有云应该产品化
张鑫认为,“云计算是一种服务”是因公有云兴起而带来的概念,公有云的确是一种服务,它在建好基础设施之后为用户按需提供租赁使用等服务,按量计费,但“我所说的云计算应是一种产品,指的是私有云。”
什么叫私有云的产品化?
ZStack云产品可以从官网直接下载,30分钟完成从裸机到私有云的部署,并且可以无缝在线升级,保证业务不中断,可以大量售卖,这是基本的产品化特性。
ZStack主张,私有云要做的就是将一套产品出售给客户,在客户的数据中心去搭建一套云平台来供其使用。虽然从搭建到使用和运维管理可能不是用户自己完成的,但厂商所做的也就是一些技术支持和产品相关的服务。这其实就是传统的软件产品化售卖模式。在张鑫看来,如果在私有云范畴内走服务化路径,可能更适合的是托管云或者是项目形式的合作。
而私有云到底应将什么东西产品化?张鑫介绍,ZStack做的主要集中在IaaS层面,核心功能主要涵盖计算(管理虚拟化、服务器)、网络(SDN软件网络定义)、存储(传统存储、软件定义存储)以及围绕这三方面的账号体系、审批流程、计费管理、运维体系等功能。IaaS私有云产品可以帮助用户屏蔽底层硬件的复杂性,接管异构的底层硬件,以统一的资源层抽象出来。
有这样的见解,跟张鑫的个人经历是分不开的。张鑫于2006年加入Intel从事XEN内核开发的工作,做了很多技术上很前沿、很精尖的开发工作,但问题是离用户生产场景太远。2010年,张鑫赴美加入Cloud.com(后被Citrix收购), 成为CloudStack的核心工程师。作为创业型的公司,Cloud.com更关心的是产品怎么卖出去,怎么帮助客户。于是张鑫本人也从科研型的开发人员转型成为直接跟客户打交道的业务型、产品型的人员。
硅谷有两个理念给了张鑫很大的触动:一是能用机器干的就不用人干,也就是要高度的自动化;二是美国创业公司不喜欢围绕少数客户做服务,而要做一款产品可以服务众多的客户。这些产品化的理念深深地影响着张鑫,包括他后来加入的Citrix(Cloud.com后被Citrix收购)也是典型的产品型公司。在这些理念的影响下,张鑫认为做企业级的公司,还是得走产品化的路径,做出来的东西的价值才能较大化。
混合云应从场景化切入
ZStack'创始人兼CEO 张鑫
混合云是大势所趋,也是明年ZStack的发力重点。在张鑫看来,混合云可以是传统IT能力向公有云的一种延伸,部署混合云可以通过场景化的方式逐步实现,不一定非得要投入大量预算重做一套系统。
在张鑫看来,目前混合云在中国还处在早中期的发展阶段,在这个阶段的一个特点是产业里面会有很多的“杂音”或者“噪音”,让客户看不清到底什么是混合云。很多不具备混合云能力的厂商为了要跟风,于是把“管理异构的私有云”、“异地机房私有云的打通”等不是混合云的东西也包装成混合云,混淆概念。
什么叫混合云?必须是既使用了私有云又使用了公有云,才能称得上是混合云。
而在发展初期,张鑫认为,通过场景化可以有效屏蔽掉类似的市场“噪音”。因为场景化可以明确告诉客户混合云到底是什么、能做什么、与业务的结合点是什么、有什么样的价值。
产品化与场景化并不冲突。产品化是场景化的基础,有了产品才能支撑实现一定的业务场景,而产品的功能价值则是通过场景化来展现的。
张鑫介绍,现在很多厂商给客户做混合云的时候不是一体的,也就是私有云是私有云,混合云是混合云,做混合云时完全要的是另一套,客户需要改造IT架构,需要再投资、再升级,这些动作有时候甚至会影响业务生产系统。
但ZStack的产品不一样,张鑫介绍,它既包含私有云产品功能,也包含混合云产品功能,而且是一体的。当客户需要使用混合云时,只需要在UI界面点击按钮,更换许可证,从企业版私有云的license更换为混合云版license即可,所有混合云功能都被瞬间激活,几秒钟即可完成,不会影响业务生产系统。“这对客户来说还有一大好处,就是IT投资的保值性。客户今天只是要用私有云,采购安装了ZStack;明天需要用混合云的时候,现有的IT架构都可以继续使用,只需要更换license就好。在自带混合云功能这方面,目前除了微软的Azure Stack外其他云厂商的产品还都不具备。”张鑫说道。
ZStack目前的1.0版本是与阿里云合作的,未来也会和AWS、微软Azure等主流公有云厂商都实现合作。目前实现的混合云场景有四个:互联、灾备、服务、一键迁云。
互联场景是基础的,指的是私有云与公有云的连接,一是网络链路连接,二是数据连接。在网络连接方面,目前主流方法有两种方式,一是VPN,二是拉专线。专线的模式主要靠人工实现,做手动配置,都是既耗人力,又容易出错,且不利于长期维护。ZStack采取的方式是全自动化的连接。VPN连接方式下,客户只要在UI界面上,一端选择自己的私有云网络,一端选择阿里云等公有云网络,一点确定,即可完成链路全部打通;专线连接方式稍微复杂。但ZStack跟目前主流做专线接入的运营商都有合作,对ZStack而言,只需要用户在产品UI填入一个专线CPE设备的IP,同样一端选本地网络、一端选阿里云网络,点击确定,链路上配置全部自动化完成。
数据连接是目前比较困难的部分,指的是私有云和公有云之间的数据打通。ZStack的方式是以私有云中的数据中心为母版,在阿里云等公有云里创建镜像,用户只需要在私有云中选定一定范围的数据为模板,在UI中点击选择,即可在公有云中建立虚拟机心。这对客户来说较大的价值,就是数据的所有维护管理只需要做私有云中的一套即可,不需要额外对公有云中数据再进行维护。这点对于电商类互联网企业客户在促销期间的弹性扩展来说价值巨大。
ZStack实现的第二个混合云的场景是灾备。一般而言,中型企业要在异地建设灾备中心终实现数据灾备,可能需要投资几百上千万,企业负担很重。使用ZStack的混合云灾备功能,可以将数据分片加密备份到公有云上。因为公有云存储是按量计算、可扩容和可用多点备份等多种手段保护数据安全的。在公有云上做数据灾备,这对用户而言,省去了自建灾备中心、扩容、管理等烦恼。
在IaaS层面上,数据安全具体如何保障?张鑫强调,灾备的数据不是应用的数据或者业务的数据,而是整个虚拟机的磁盘、镜像。应用数据在虚拟机里本身就可以加密,备份的硬盘虚拟机属于二进制的非结构化数据,别人看到也无法解析。而且ZStack对混合云灾备传输采用的是切片传输的方法,就像一纸合同被切成一片片,除了ZStack的产品别人无法知道是怎么切的片,而且有去重功能,即便是有人窃取到了数据也是无法还原出来原本的数据信息的。
此外,一键迁云也是ZStack混合云非常大的亮点,能够帮助用户自由选择哪些业务和数据放在私有云、哪些业务和数据放在混合云,并随时切换。而服务场景则可以兼容,例如阿里云盾等公有云自带的一些服务产品。
产品化的底气是过硬的质量 过硬的质量靠测试
云计算要能够走产品化路径的基础在于有过硬的云计算产品,而要打磨出过硬的云计算产品,研发和测试是非常关键的。ZStack作为一家注重产品化的创新开源云计算服务商,非常重视测试。
张鑫介绍,首先,从人员比例上看,ZStack基本上一直保持着1:1甚至1:1.5的开发测试比,这在创业型公司里面还是非常高的。其次,从测试团队构成来看,ZStack成立之初就邀请了Intel的开源技术中心核心团队加入,时至今日ZStack的测试团队绝大部分成员都来自Intel,有着至少5年以上的测试相关经验。测试团队的大部分成员在加入ZStack之前都深耕于虚拟化、存储、网络等构成云计算重要技术基础的相关领域。
ZStack测试人员投入多,人员素质高,而且测试团队在公司的话语权特别高。“如果产品版本出来测试团队不说ok的话是通不过的。”张鑫以最近的一个例子向记者展开介绍,“最近有个产品功能是客户急需的,客户已经催了好几次,但就因为测试团队认为该功能还没达到他们的要求,已经延期三次交付。我们为此在客户那边做了大量的工作,请客户给我们一点时间和耐心让我们把产品功能做得更好、更稳定。”张鑫强调ZStack要保障的是产品质量,而不能因为要成一单而放弃或者降低产品质量的要求。“挖的坑填不了,砸牌子的事儿ZStack不干。”张鑫风趣地说。
ZStack测试的三个理念和三个故事
传承于硅谷能让机器干的就不让人干的理念,张鑫主张ZStack的测试能自动化的要全自动化。能够非常快速的高质量的产品迭代发布,得益于ZStack的测试团队开发了一整套自动化测试系统,完全涵盖了后端以及UI。这些自动化测试完全涵盖了各个功能在各种部署场景的复杂组合测试,完整的测试自动化覆盖为产品质量提供了最有力的保障。张鑫介绍,目前除了UI测试的一小部分(因为UI的更新速率高于测试速率)还没有完全实现自动化之外,其余测试都已实现自动化。
除了全自动化,张鑫还概括了ZStack测试的几个理念。
一是不止测试人员做测试,开发人员也要做测试。与很多外企一样,ZStack要求所有开发人员提交的代码里面都要有测试用例。包含测试用例的代码提交之后会被自动化测试系统测试,只有所有测试都通过之后,代码才能被合并到主线。
二是专业海量测试。代码提交之后的第二套关口就是ZStack的QA团队的测试。目前ZStack也用自己的产品搭建了云平台,云平台里有两个群供测试专用。QA团队在这两个集群上搭建自动化测试系统,使用嵌套虚拟化技术(虚拟机亦可当成物理机使用),让测试主机达到500台,在这之上可以部署非常复杂的测试环境。其测试框架每天晚上都在运行,白天也会运行其他的测试任务。ZStack基本两个月发布一个版本,每个版本的测试平均达10万次以上。
三是搭建机器人测试框架。张鑫自豪地介绍,ZStack的机器人测试框架可以预定算法和条件,自动生产新的测试用例。这与人做测试较大的区别是什么呢?如果人做测试写测试用例的时候是沿着人的思维写的,很多时候会出现很多盲区,很多情况测试不到,机器人测试的好处是根据算法生成测试用例,完全预料不到它的行为,可以测到大量人想不到的地方。
张鑫用三个故事细节来向记者描述ZStack测试的吸引人之程度。
一是当ZStack测试团队出去与公有云厂商做技术交流的时候,有两家厂商都跑过来问ZStack机器人测试框架能不能拆出来单独卖给他们。二是ZStack售前人员到客户那里去讲产品的时候讲到了公司的测试理念和测试框架,结果当场客户测试团队就有人问ZStack测试还招不招人。第三个故事是ZStack于今年八月份加入戴尔的未来就绪企业云联盟(FRECO),戴尔的许良谋先生直接跟张鑫提出要去ZStack的测试工作区看看,来访进门之后直奔测试区,站在那里一个多小时现场看和听讲解,了解ZStack是怎么做测试的。因为戴尔也是产品公司,对于产品化理念也非常坚持,对测试也非常重视。三个小故事虽然是细节,但却以小见大,体现出了ZStack测试理念和测试工作的先进程度。
同时,ZStack也在尝试推动整个行业测试理念的前进。据悉,全国信标委云计算标准工作组在筹备制定行业测试标准,ZStack核心测试人员已经前后两次参加其预研标准讨论会,其实参加研讨会的都是华为、浪潮等大厂商, ZStack作为初创型企业能参与其中,是很少见的。并且,ZStack的测试人员主导起草撰写了标准的两个章节,与很多大企业其实合起来写一个章节相比,更是罕见。当然,张鑫也表示,这方面也要感谢Intel多年的培养,才让现在的ZStack拥有这么高素质的测试人员。
不论是在招聘还是在工作环节,ZStack对测试人员所坚持和灌输的理念是,公司要的是测试开发人员,不仅要关注测试,更要关注软件质量,要搭建一套质量保障体系。到ZStack来做测试,职业理念和职业生涯可以得到很好的提升,张鑫风趣地打了一个广告。
DevOps实现持续发布与持续集成
对于ZStack测试工作的难点,张鑫总结说主要是资源的不足。一是硬件资源限制,虽然ZStack用嵌套虚拟化的方式实现了用500台物理机跑测试,但硬件资源还是不够,不断调度排优先级,导致测试周期会很长 ;二是测试人员的不足,1:1甚至1:1.5的开发测试比虽然在创业型公司里算高的,但实际上与成熟公司1:2甚至更高的相比,测试人员数量还是不足,ZStack对测试人员要求很高,做产品测试的人在国内本来就较少;三是产品功能迭代太快造成的测试压力,研发人员是线性思维,测试人员是扇形思维,研发做了1分的工作,测试人员要付出10分的努力。
除了高度自动化的测试,ZStack的测试团队开发的另一个重头戏是DevOps,较大地提高了测试和开发效率,保证了产品质量。一方面开发团队可以直接方便地测试新代码,使每个代码改动在进入主线之前都经过充分测试,提高测试反馈速度;另一方面ZStack坚持持续集成和持续发布,利用Jenkins把开发流程、测试流程和发布流程集成到一起,在自己的云平台上,每天都会进行几十次的发布。自动化的持续集成和持续发布流程可以让ZStack快速部署到内部生产环境,经过充分自动化测试的开发版本能在一时间得到真实的生产环境的考验。
目前,ZStack正在尝试把文档工作也做到持续集成的环境里去。这意味着什么,意味着比如当UI里面的图标或者文字发生了改变,那么所有的文档中都要相应变化,因为变化频繁过去用手工方式做起来非常痛苦,现在把这项工作与UI自动化测试结合起来,通过自动录屏、截图发送至图库,进行更新,可以大大减少文档工程师的压力。通过DevOps,ZStack把持续集成、持续发布贯通至整个研发体系。坚持产品化的ZStack正在用较强测试打造稳定好用的IaaS产品。
对于未来测试团队和产品的开发周期方面愿景,张鑫表示,ZStack现在已经建立了一套成熟的产品开发测试体系,从目前公司的产品发布周期就可以看出来,目前公司大概两个月发布一个版本,频率还是很高的。日后会做人员扩充,招募更多的研发和测试人员,填充到整个体系中,从而支撑产品的前进。产品方面,混合云是明年ZStack的发力重点,也会竭力实现UI的全自动化,以及对测试资源实现更有效的使用,未来会形成3个月发布大版本,其间有小版本迭代的发布周期,以更灵活满足客户需求。
坚持产品化的ZStack正在用“强测试天团”打造稳定好用的IaaS产品,为广大用户持续降低云计算的使用门槛,实现用户价值的较大化,这无疑是云计算用户市场的较大福音。
标杆案例之农信互联的痛点
北京农信互联科技有限公司是家农业互联网高科技企业,已建成“数据+电商+金融”三大核心业务平台,并以“农信网”为互联网总入口,“智农通”APP为移动端总入口, 构成了从PC到手机端的快乐生态圈,实现对农业全链条的平台服务。
农信互联使用混合云之前,业务已经运行在部署于IDC的私有云中。IDC偶尔出现的状况,会导致农信互联的数据无法及时访问,造成客户的流失和平台价值的降低,需要通过混合云提供一整套灾备和双活方案。
通过与ZStack合作,农信互联通过一个UI完成ZStack和阿里云业务的管理。ZStack混合云在管理架构上整合了公有云和私有云的各种操作,保证了用户体验的一致性。农信互联在使用ZStack混合云产品的过程中,不仅仅是控制面的打通,更是数据面的打通。
农信互联通过ZStack进行容灾备份的过程中,仅仅需要点击几个按钮,ZStack甚至提供了全套容灾备份的API,帮助其自动化运维团队定制各种个性化的容灾备份方式,让整个容灾备份和灾难恢复的体验都非常流畅和自然。通过混合云的灾备,农信互联实现了数据的异地容灾和灾难恢复,保证了在自有机房出现意外的情况下业务的连续性。