原标题:120分钟!我和深信服云计算CTO都聊了啥?

作者简介:刘超,网易云计算解决方案首席架构师。10年云计算领域研发及架构经验,Open
DC/OS贡献者。长期专注于kubernetes,
OpenStack、Hadoop、Docker、Lucene、Mesos等开源软件的企业级应用及产品化。曾出版《Lucene应用开发揭秘》。

编者按

蓉城成都,国家历史文化名城,古蜀文明发祥地,这几年俨然成为IT行业重镇。9月8日,2018深信服创新论坛在成都顺利举办,云技术社区北极熊受邀参加了本次论坛,并对深信服云计算CTO曹心驰做了长达120分钟的访谈,曹心驰深度分享了对当前云计算行业的看法,揭秘了深信服企业级云产品的一些研发思路和打法。

以下为正文:

“总编访谈”是InfoQ推出的一个高端访谈栏目,由总编辑崔康主持,致力于深入采访国外内顶尖技术力量,报道最前沿、最有深度的内容,分享干货和经验。

先来分享先早上参加创新论坛的一些精华分析,再分享下午和深信服云计算CTO曹心驰长达120分钟的访谈精华文字版的记录。

云计算概述

云计算主要解决了四个方面的内容:计算,网络,存储,应用。

计算就是CPU和内存,例如“1+1”这个最简单的算法就是把“1”放在内存里面,然后CPU做加法,返回的结果“2”又保存在内存里面。网络就是你插根网线能上网。存储就是你下个电影有地方放。本次讨论就是围绕这四个部分来讲的。其中,计算、网络、存储三个是IaaS层面,应用是PaaS层面。

本次受访嘉宾是UnitedStack创始人程辉,就云计算市场的现状、发展趋势,以及UnitedStack在业务方面的战略调整给出了自己的解读。

深信服企业级云–大道至简

云计算发展脉络

云计算整个发展过程,用一句话来形容,就是“分久必合,合久必分”。

InfoQ:为什么UOS1.0是做发行版,而从2.0开始做公有云和托管云了?

深信服企业级云用四个字总结就是大道至简,一切从用户需求出发,将复杂留给自己,将极简、稳定、高性能、低TCO、安全送给用户。

第一阶段:合,即物理设备

程辉:公司2013年成立,在当年10月份的时候发布UOS1.0,当时的想法很简单,很多厂商都推出高度产品化、定制化或者优化过的OpenStack发行版,然后通过外围的一些服务挣钱。我们也想解决OpenStack的一些痛点,比如自动化部署、运维等,并针对国内用户的使用习惯进行了改进,最终发布了UOS1.0。产品本身是比较酷的,把U盘做成了一个产品,交付给任何一家IT公司或者个人用户,在服务器上插上U盘,过一会就搭建出一个云环境。

图片 1

物理设备简介

在互联网发展初期,大家都爱用物理设备:

服务器用物理机,像戴尔、惠普、IBM、联想等物理服务器,随着硬件设备的进步,物理服务器越来越强大了,64核128G内存都算是普通配置;

网络用的是硬件交换机和路由器,例如思科的,华为的,从1GE到10GE,现在有40GE和100GE,带宽越来越牛;

存储方面有的用普通的磁盘,也有更快的SSD盘。容量从M,到G,连笔记本电脑都能配置到T,更何况磁盘阵列;

但我一直在反思。用户拿到了UOS1.0之后,整个安装过程非常快捷,但是用户拿UOS
1.0来提供7×24小时持续的云服务还是很遥远。我们只是解决了从无到有的问题,而这只是万里长征第一步,接下来还需要提供对外服务,保证产品不宕机可扩展,而当时我们并没有解决这个问题。


交付极简,特点是省时,基于场景模板化交付,用户只需要开箱并选择模板就可以。

物理设备的缺点

部署应用直接使用物理机,看起来很爽,有种土豪的感觉,却有大大的缺点:

人工运维。如果你在一台服务器上安装软件,把系统安装坏了,怎么办?只有重装。当你想配置一下交换机的参数,需要串口连上去进行配置;当你想增加一块磁盘,要买一块插进服务器,这些都需要人工来,而且很大可能要求机房。你们公司在北五环,机房在南六环,这酸爽。

浪费资源。其实你只想部署一个小小的网站,却要用128G的内存。混着部署吧,就有隔离性的问题。

隔离性差。你把好多的应用部署在同一台物理机上,他们之间抢内存、抢cpu,一个写满了硬盘,另一个就没法用了,一个弄挂了内核,另一个也跟著挂了,如果部署两个相同的应用,端口还会冲突,动不动就会出错。

所以,公司做了重大的业务转型。把UOS
1.0中的的核心技术包括分布式存储、高性能网络、优化的主机调度等,应用到自己的公有云上,开放给公众使用。当时还没有考虑商业模式的事情,只是觉得我们应当把这些有价值的技术和产品开放出去,让别人受益,公司就自然就有价值了。说做就做,我们拿出了公司剩余的大部分钱在北京租了机房,买了一批设备,从核心技术到计费平台、说明文档、注册系统、自动化运维等,花了近半年的时候做公有云。


上云极简,特点是省事,可以完成一键迁移,一键CDP,一键容灾,融合安全。

第二阶段:分,即虚拟化

InfoQ:公有云发布之后遇到了哪些挑战?


运维极简,特点是省人,基于业务实际的智能运营中心,对整体的运行状态一目了然。

虚拟化简介

因为物理设备的以上缺点,就有了第一次“合久必分”的过程,叫做虚拟化。所谓虚拟化,就是把实的变成虚的:

物理机变为虚拟机。cpu是虚拟的,内存是虚拟的,内核是虚拟的,硬盘是虚拟的;

物理交换机变为虚拟交换机。网卡是虚拟的,交换机是虚拟的,带宽也是虚拟的;

物理存储变成虚拟存储。多块硬盘虚拟成一大块;

程辉:主要有三个挑战:


扩容极简,特点是省钱,基于超融合实现按需采购,性能和容量扩展简化到2步,数据智能平衡,用户无感知。

虚拟化解决的问题

虚拟化很好地解决了在物理设备阶段存在的三个问题:

人工运维。虚拟机的创建和删除都可以远程操作,虚拟机被玩坏了,删了再建一个分钟级别的。虚拟网络的配置也可以远程操作,创建网卡、分配带宽都是调用接口就能搞定的;

资源浪费。虚拟化了以后,资源可以分配地很小很小,比如1个cpu,1G内存,1M带宽,1G硬盘,都可以被虚拟出来;

隔离性差。每个虚拟机都有独立的cpu、
内存、硬盘、网卡,不同虚拟机之间的应用互不干扰;

第一,如何在坚持OpenStack开放标准的同时满足国内客户定制化的需求。UnitedStack云服务完全基于OpenStack开放API构建,但是OpenStack开放API并不能完全满足客户需求,因此这里需要与社区做足够的沟通工作,将这些差异化的需求提交给社区,同时我们还在保证100%兼容的目标的情况下对OpenStack
API进行扩展。这对于团队对于OpenStack开发能力有足够的自信才能做到。

天下武功,唯快不破,深信服企业级云产品快速迭代,追求的就是极致,基于超融合架构,死死抓住用户痛点,持续舍得在研发上大量投入,致力于打造极简、稳定、高性能的云计算解决方案。

虚拟化时代的生态

在虚拟化阶段,领跑者是Vmware,可以实现基本的计算、网络、存储的虚拟化。如同这个世界有闭源就有开源、有windows就有linux、有Apple就有Android一样,有Vmware,就有Xen和KVM。

在开源虚拟化方面,Xen
的Citrix做的不错,后来Redhat在KVM发力不少;对于网络虚拟化,有Openvswitch,可以通过命令创建网桥、网卡、设置VLAN、设置带宽;对于存储虚拟化,本地盘有LVM,可以将多个硬盘变成一大块盘,然后在里面切出一小块给用户。

第二,平衡OpenStack社区开发与生产运营的差异。社区开发时,我们只需要完成功能开发和测试,但当我们要生产运营一个OpenStack云平台时,这时需要考虑平台运营过程中可能出现的各种事件,比如物理服务器宕机,存储扩容、缩容,磁盘故障,网络抖动和攻击等,需要为每一种异常或者失效准备预案,及自动化运维措施,并及时响应。

图片 2

虚拟化的缺点

但是虚拟化也有缺点。通过虚拟化软件创建虚拟机,需要人工指定放在哪台机器上、硬盘放在哪个存储设备上,网络的VLAN
ID、带宽的具体配置等,都需要人工指定。所以仅使用虚拟化的运维工程师往往有一个Excel表格,记录有多少台物理机,每台机器部署了哪些虚拟机。受此限制,一般虚拟化的集群数目都不是特别大。

第三,获得客户信任。作为一个新兴公有云平台,获得客户信任是一个漫长的过程,任何一次异常或者故障都会导致客户信心的丢失,客户几乎不能容忍一次故障,这是最大的挑战。平台每天都会有更新和升级,也不能中断客户业务。

在AI发展趋势的今天,深信服也正在预研基于AI技术的无运维超融合企业级云,必将又一次为用户带来巨大的收益。

第三阶段:合,即云计算

InfoQ:UnitedStack为什么提供托管云业务,出于什么考虑?

图片 3

云计算解决的问题

为了解决虚拟化阶段遗留的问题,于是有了分久必合的过程。这个过程我们可以形象地称为池化。虚拟化将资源分得很细,但是如此细分的资源靠Excel去管理,成本太高。池化就是将资源打成一个大的池,当需要资源的时候,帮助用户自动地选择,而非用户指定。这个阶段的关键点:调度器Scheduler。

程辉:有句话说“出来混总是要还的”,刚开始创业的时候,我们没想商业模式,从发行版到公有云,都没想好怎么赚钱。我们知道现在很多公有云都是巨头在做,几十亿的资本投进去才可以做好。作为一个小的创业公司做公有云,你确实有机会,但是相比资本的力量,这是上百倍的差距,你在市场上可能有竞争力,但是很难做的比他们更好。

深信服如何看待当前的云计算发展,产品研发方面如何取舍,云技术社区北极熊对深信服云计算CTO曹心驰进行了长达120分钟的访谈,以下为访谈精华文字版的整理。

私有云、公有云的两极分化

这样,Vmware有了自己的Vcloud;也有了基于Xen和KVM的私有云平台CloudStack(后来Citrix将其收购后开源)。

当这些私有云平台在用户的数据中心里卖得奇贵无比、赚得盆满钵盈的时候,有其他的公司开始了另外的选择。这就是AWS和Google,他们开始了公有云领域的探索。

AWS最初就是基于Xen技术进行虚拟化的,并且最终形成了公有云平台。也许AWS最初只是不想让自己的电商领域的利润全部交给私有云厂商吧,所以自己的云平台首先支撑起了自己的业务。在这个过程中,AWS严肃地使用了自己的云计算平台,使得公有云平台并不是对资源的配置更加友好,而是对应用的部署更加友好,最终大放异彩。

我开始思考如何进一步商品化整个公司的品牌和技术,在国内,有一批大客户,对云的需求量更大,而且没有哪一家公有云可以服务好他们。大到什么程度呢?大到用公有云已经很不划算了。比如对弹性计算要求极高的新兴的移动互联网公司、游戏公司,还有对云扩展性和安全性要求高的银行和互联网金融公司等,他们的业务量规模大且比较需求量比较固定,而且对于安全性、数据主权等要求极高,因此这些客户不太放心将这些业务放到公有云上。

图片 4

私有云厂商与公有云厂商的联系与区别

如果仔细观察就会发现,私有云和公有云虽然使用的是类似的技术,但在产品设计上却是完全不同的两种生物。

私有云厂商和公有云厂商也拥有类似的技术,但在产品运营上呈现出完全不同的基因。

私有云厂商是卖资源的,所以往往在卖私有云平台的时候伴随着卖计算、网络、存储设备。在产品设计上,私有云厂商往往会对客户强调其几乎不会使用的计算、网络、存储的技术参数,因为这些参数可以在和友商对标的过程中占尽优势。私有云的厂商几乎没有自己的大规模应用,所以私有云厂商的平台做出来是给别人用的,自己不会大规模使用,所以产品往往围绕资源展开,而不会对应用的部署友好。

公有云的厂商往往都是有自己大规模的应用需要部署,所以其产品的设计可以将常见的应用部署需要的模块作为组件提供出来,用户可以像拼积木一样,拼接一个适用于自己应用的架构。公有云厂商不必关心各种技术参数的PK,不必关心是否开源,是否兼容各种虚拟化平台,是否兼容各种服务器设备、网络设备、存储设备。你管我用什么,客户部署应用方便就好。

所以,我们推出了托管私有云(Managed Private
Cloud),可以理解成独享的公有云。我们的核心价值在哪里?我经常把云建设的投入分为三个部分,一是IDC资源,包括电力、带宽、机位等,这是一个高度市场化的领域,比较成熟,这块交给客户去解决,因为价格已经市场化了;二是服务器设备,更加市场化的领域,发展了几十年,我们没有必要做;三是独立的技术平台和运维,这才是我们应该做的事情,帮客户做好管理、维护以及后续的升级,甚至新功能的研发、监控等。

▲(深信服云计算CTO曹心驰和云技术社区北极熊合影)

公有云生态及老二的逆袭

公有云的第一名AWS活的自然很爽,作为第二名Rackspace就不那么舒坦了。

没错,互联网行业基本上就是一家独大,那第二名如何逆袭呢?开源是很好的办法,让整个行业一起为这个云平台出力。于是Rackspace与美国航空航天局(NASA)合作创始了开源云平台OpenStack。

OpenStack现在发展的和AWS有点像了,所以从OpenStack的模块组成可以看到云计算池化的方法。

事实上,如果把托管云三部分的投入成本和同样资源的公有云费用做比较,就会发现,托管云的整体成本只有公有云的1/3-1/5,看起来不可思议,但事实如此。目前,已经有10个托管云的大客户上线,机房12个,分布在北京、广东、上海和东北地区。

深信服云计算CTO曹心驰访谈整理

OpenStack的组件

计算池化模块Nova:OpenStack的计算虚拟化主要使用KVM,然而到底在哪个物理机上开虚拟机呢,这要靠nova-scheduler;

网络池化模块Neutron:OpenStack的网络虚拟化主要使用Openvswitch,然而对于每一个Openvswitch的虚拟网络、虚拟网卡、VLAN、带宽的配置,不需要登录到集群上配置,Neutron可以通过SDN的方式进行配置;

存储池化模块Cinder:
OpenStack的存储虚拟化,如果使用本地盘,则基于LVM,使用哪个LVM上分配的盘,也是通过scheduler来的。后来就有了将多台机器的硬盘打成一个池的方式Ceph,而调度的过程,则在Ceph层完成。

我可以随口算一下,做一个云计算环境,需要的人包括虚拟化工程师、存储工程师、网络工程师、监控工程师、UI设计师、运维工程师等等,每一个岗位都需要花很大价钱。托管云可以让客户节省大量的钱,关注自己的业务。在UnitedStack平台,托管云的系统平台和公有云是一样的,有什么更新,都会同步升级。

1

OpenStack带来私有云市场的红海

有了OpenStack,所有的私有云厂商都疯了,原来VMware在私有云市场赚的实在太多了,眼巴巴的看着,没有对应的平台可以和他抗衡。现在有了现成的框架,再加上自己的硬件设备,几乎所有的IT厂商巨头,全部都加入到社区里,将OpenStack开发为自己的产品,连同硬件设备一起,杀入私有云市场。

InfoQ:既然托管云商业模式比较好,为什么还要做公有云,据我所知国内的其他公有云市场盈利艰难。

北极 style=”font-size: 16px;”>熊: style=”font-size: 16px;”> style=”font-size: 16px;”> style=”font-size: 16px;”>

公有or私有?网易的选择

网易当然也没有错过这次风口,上线了自己的OpenStack集群,网易蜂巢基于OpenStack自主研发了IaaS服务,在计算虚拟化方面,通过裁剪KVM镜像,优化虚拟机启动流程等改进,实现了虚拟机的秒级别启动。在网络虚拟化方面,通过SDN和Openvswitch技术,实现了虚拟机之间的高性能互访。在存储虚拟化方面,通过优化Ceph存储,实现高性能云盘。

但是网易并没有杀进私有云市场,而是使用OpenStack支撑起了自己的应用,这是互联网的思维。而仅仅是资源层面弹性是不够的,还需要开发出对应用部署友好的组件。例如数据库,负载均衡,缓存等,这些都是应用部署必不可少的,也是网易在大规模应用实践中,千锤百炼过的。这些组件称为PaaS。

程辉:这是个好问题,很多人都不理解。在没有公有云之前,我们去向客户推销技术平台时,客户经常会觉得你说的这个好东西没有经过验证,没有看到实际的生产案例,没有看到实际的用户,后来,我们上线了公有云,让大家看到我们的高性能、用户体验、运维、持续更新等能力,通过这些方式,客户才开始接受我们的托管云。另外,不同企业,在不同的阶段,对云的需求是不一样的,比如,互联网创业公司,肯定初期倾向于公有云,待业务规模足够大而且稳定的时候,这时采用第三方服务的私有云可能是一个更好的解决方案,他们需要不同的云服务模式去支撑他们当前的业务。因此,总结一下,公有云一方面满足部分客户的需求,另一方面,方便客户构建其混合云体系。因此,这里公有云也是我们商业模式的一部分。

我们是云技术社区,专注云计算技术分享和交流,我们想了解下深信服企业云在技术上有什么特点可以分享给我们云技术社区用户。

第四阶段:分,即容器

现在来谈谈,应用层面,即PaaS层。

前面一直在讲IaaS层的故事,也即基础设施即服务,基本上在谈计算、网络、存储的事情。现在应该说说应用层,即PaaS层的事情了。

InfoQ:关于托管云服务,用户自己找机房和数据中心,那么在搭建和维护云服务过程中,是不是偶尔需要你们派工程师去现场?

曹心驰:

1. PaaS的定义与作用

IaaS的定义比较清楚,PaaS的定义就没那么清楚了。有人把数据库、负载均衡、缓存作为PaaS服务;有人把大数据Hadoop,、Spark平台作为PaaS服务;还有人将应用的安装与管理,例如Puppet、
Chef,、Ansible作为PaaS服务。

其实PaaS主要用于管理应用层。我总结为两部分:一部分是你自己的应用应当自动部署,比如Puppet、Chef、Ansible、
Cloud
Foundry等,可以通过脚本帮你部署;另一部分是你觉得复杂的通用应用不用部署,比如数据库、缓存、大数据平台,可以在云平台上一点即得。

要么就是自动部署,要么就是不用部署,总的来说就是应用层你也少操心,就是PaaS的作用。当然最好还是都不用去部署,一键可得,所以公有云平台将通用的服务都做成了PaaS平台。另一些你自己开发的应用,除了你自己其他人不会知道,所以你可以用工具变成自动部署。

程辉:我们现在落地了10个大规模的托管云,几乎没有上门服务过!前期,我们会和客户商量好,需要采购哪些设备,如果配置,发给他们一个表单,购买之后,我们的工程师会告诉他们如何关联这些设备,还是一个清单搞定。最后是打通VPN隧道,一旦完成,我们就可以通过远程方式部署第一台种子机器,剩下的其他机器就会逐渐配置完毕。我们最快的客户案例是从确定合同到托管云正式上线用了不到一个月的时间。我认为,以云计算为中心的上下产业链配合的很好,IDC提供电力、机柜和带宽服务,硬件厂商提供基础设施,我们提供云平台技术,上面的PaaS或者SaaS厂商提供相应服务,云生态和谐共存。

这一块有技术特色的东西比较多,我谈几个重点的,第一个存储,因为在计算方面KVM已经非常成熟了,目前我们的KVM层面仅仅在QEMU方面做了一些优化,更多的是围绕存储的可靠性方面做了大量的工作,这方面我们内部有大量数据,可以公开给合作伙伴和用户。

2. PaaS的优点

PaaS最大的优点,就是可以实现应用层的弹性伸缩。比如在双十一期间,10个节点要变成100个节点,如果使用物理设备,再买90台机器肯定来不及,仅仅有IaaS实现资源的弹性是不够的,再创建90台虚拟机,也是空的,还是需要运维人员一台一台地部署。所以有了PaaS就好了,一台虚拟机启动后,马上运行自动部署脚本,进行应用的安装,90台机器自动安装好了应用,才是真正的弹性伸缩。

InfoQ:如果部署在客户那里的托管云平台系统需要升级,对客户的服务是透明的吗?

这里还要特别说明下,因为很多能力都是基于我们自研的超融合架构,所以很多关键技术都是我们自己研发的,我们做任何设计都可以端到端,比如数据读写,从KVM到最底层的数据落盘,所有核心代码都在我们手里,都可以我们做到全栈自主可控,可以按照最理想最优化的路径来设计和实现从数据计算和存储路径,这样做可以大大提高基础架构的整体性能。没必要像OpenStack一样在各个组建中间调用很多接口来实现,造成性能损失。

3. PaaS部署的问题

当然这种部署方式也有一个问题,就是无论Puppet、
Chef、Ansible把安装脚本抽象的再好,说到底也是基于脚本的,然而应用所在的环境千差万别。文件路径的差别,文件权限的差别,依赖包的差别,应用环境的差别,Tomcat、
PHP、
Apache等软件版本的差别,JDK、Python等版本的差别,是否安装了一些系统软件,是否占用了哪些端口,都可能造成脚本执行的不成功。所以看起来是一旦脚本写好,就能够快速复制了,但是环境稍有改变,就需要把脚本进行新一轮的修改、测试、联调。例如在数据中心写好的脚本移到AWS上就不一定直接能用,在AWS上联调好了,迁移到Google
Cloud上也可能会再出问题。

程辉:保证部署在客户数据中心的托管私有云无中断地平滑升级是我们的核心能力之一。面向大规模业务的互联网分布式IT基础架构一个最重要的特点是不允许中断。以微信为例,用户基数很大,几乎每分每秒都有人用,微信从上线到现在,几乎每天都有很多变更,但不能中断服务。云计算也是这个道理,客户把服务交给我来管理,我需要既保持稳定又要不断的改进、变更和升级。为了保障无中断升级,我们推出了很多举措,比如,我们在升级的时候,会给客户的业务做热迁移,保障业务连续性,用户几乎感觉不到服务中断。通过这些手段,每次OpenStack推出新版本时,我们都能及时跟进,现在我们公有云和所有的托管云客户都是运行在最新的OpenStack
Juno版本上的,我们为客户提供托管的OpenStack有一年多了,都是从早期的G版本一路升级过来的。既然我们做托管云,也需要按照最严格的公有云标准来要求自己。

相关文章