智囊团丛磊:讲讲PaaS的过去现在和未来
“智囊团”分享人:丛磊,新浪云计算总负责人,06年毕业后加入新浪,08年开始带领技术团队进行云计算领域研发,09年合作开发了国内第一个公有云计算平台Sina App Engine,之后经历了SAE所有版本的研发过程,历任技术经理、首席架构师、总监。目前负责云计算相关业务的产品、技术、运营、商务,是国内PaaS领域的先行者
那咱们就开始吧,今天聊3个内容:
聊SAE的发展史,
聊PaaS的个人看法,包括为什么PaaS市场不如IaaS,
是最后发红包感谢大家
感谢@云头条,本人从08年开始涉及云计算,当时其实还不知道什么PaaS@IaaS啥的,当时的想法是:当时SNS很火,所以公司希望有这么一个平台可以承载App相关业务(这个App指原来开心网那种内嵌iframe那种),于是就开始这方面的研发
我们做云的时候,目前市面上这些词都没有,没有阿里云,没有openstack,没有 cloudfoundry,当时摆在我们面前的只有两个:1,AWS;2,GAE,当时呢有个team在公司内部做虚拟机,所以呢,我们就以GAE为方向去做App的承载平台,当然了,对于App托管这个业务,GAE也是非常适合的,用户使用起来比AWS上手会更快,当然因为GAE是闭源的,所以当时我们也只能摸着石头过河,利用之前的业务经验,一点一点来,当时跟我在一起做的还有目前希云的CEO @王利俊@ cSphere.cn 、JobDeer的创始人陈理捷,一共就3、4个人
文君补充:那时候张矩兄的joyent已经有中文版上线了
当时joyent在秦皇岛机房上线了中国最早的IaaS和PaaS
那时候heroku还没卖给saleforce
我今天不讲具体技术,微信里说不清楚,只说一点,SAE的最大特点是“虚拟比”非常大,因为在SAE上核心的对用户提供的MySQL、Memcache、分布式文件存储、队列等都是共享的,在共享的基础上实现用户隔离,这点跟今天的流行“微服务”设计非常不同,换句话说,SAE可以在一台物理机上实现10万个用户共享,并且做到隔离,我想这也是SAE的特点,当然这个特点是双刃剑,以MySQL为例,我们会预先计算用户的SQL是否是优质的,如果是才放行,如果不是则在中间层拦下返回修改建议
这样的做法好处是非常非常节省资源,当然不好也很明显,就是有些用户的垃圾SQL如果来不及优化,在SAE平台上就跑不了
SAE还有一个特点,也是PaaS的特点,就是免运维,我想这也是PaaS能和IaaS竞争的最大优势,我举个例子,像内推网、3空间装修、深鲜壹佰这样的创业企业,因为用我们平台,实际公司内部没有任何系统工程师,只有ios、android工程师,这在使用IaaS的企业是无法想象的
滴滴打车在初期2年的时间也是由sae服务支持的
王利俊补充:滴滴打车在初期2年的时间也是由sae服务支持的
那么问题就来了,为什么PaaS市场比IaaS小很多呢?这个问题仁者见仁,我个人有这么几个看法,虽然PaaS本身更加高级一些,看起来更省事一些,但确实有一些问题:
PaaS因为厂商少,没有进行很好的市场培育,换句话说,因为做的人少,导致风气形不成;
因为厂商少,用户担心lock in的问题,这个在IaaS上也有体现,我遇到一些用户用IaaS的时候不会使用s3,不会使用sdb,因为怕给iaas lock-in
而用户想使用PaaS,就需要使用贴近业务的Queue、no-sql、cron定时等等服务,但这些服务因为没有行业标准,客观上容易形成用户lock in
还有就是PaaS兼容性的问题,其实这个是个伪命题,因为用户如果想使用高可靠和高可扩展的结构运行业务,不改原来单机跑的代码,一行不改是不可能的,当然IaaS的兼容性还是比PaaS好一些,这个也不可否认
那么docker是不是解决PaaS这些问题呢?我觉得确实很好的解决了,但是呢,这个还需要一段时间,首先我接触的企业用户,对docker这种概念不是很care,另外对于developer来说,是否能够从面向code转为面向image,可能也需要时间,另外docker本身是devops工具,这点还不同于openstack,openstack本身有满足企业“硬”需求的东西,如nova、swift、ceph,这些都是跟企业业务相关的,且openstack目前的兴起有其政治原因,所以docker的普及还需要一段时间
回复刚才 @Mr_KID1018 的问题,目前SAE支持git,可以使用git部署
智锦:很好。我现在对PAAS倒是有一点不同的看法,在中国现在的环境下,传统的PAAS不如IAAS,这个是对的。但是我觉得PAAS比IAAS更贴近用户业务,按照我对中国企业级用户的了解,我是觉得PAAS本身优化和发展之后,应该是一个很有机会的事。有机会我当面和从总探讨。
目前PaaS/BaaS类的平台都面临一个问题,就是用户大了后就迁到IaaS了,之前我很为这个问题苦恼,现在想通了,因为PaaS没有找到真正属于自己的ka
文君:估计99%的所谓云大哥不知道jelastic,flexiant.就忽悠os了
胖子:iaas上的用户也会逐渐走向自建之路
智锦:这个问题我觉得PAAS 可以解决,因为 PAAS完全可以把IAAS包进来
在我们平台上,有发展大了要自己整机器的用户,也有有了一段时间从IaaS迁到PaaS的用户,比如新华社,他们买了一些云主机,结果发现自己搞不定,而自己的需求其实就是面向海外用户吐内容,后来干脆有迁回SAE了,所以PaaS/BaaS需要找到真正属于自己的ka
张贺:顺着容器的思路说一点自己的看法,paas的核心用户还是开发者,让开发者接受docker,可能首先还得让他们接受devops
目前看,轻应用H5是非常适合PaaS类的,这个方面有大量的传统领域用户,非互联网的,我们目前也是在这个领域入手
当然把PaaS结合IaaS,一体化提供解决方案,当然也是不错的选择,这是另一个玩法了
智锦:嗯,我现在是走PaaS结合IaaS,一体化提供解决方案的路子,尝试尝试
baas就是将云下放到客户端,这种概念我个人觉得,也面临流失ka的问题,只能做非常简单的业务,稍微大点就得迁走,当然这是个人观点,群里做baas的轻拍
目前SAE上有不到1万家企业,60万开发者,但目前还没有实现收支平衡,so。。。任重道远,也希望群里各位大牛多多支持指正,今天就分享这些内容,谢谢大家哈
问答环节:
Q:sae 分布式文件存储 怎么干的…
A:是直接分diectory给用户还是类似s3那样一类?
分布式文件存储,我们之前用mongodb,但有很多坑(当时是1.8版本),后来我们自己改了swift,加了cache、strip等功能。类S3
那部分没什么压力,因为都load到内存里了
Q:有没有机制确保用户起的worker在不同的node上?现在worker还是sanbox还是改进到docker了?
A:SAE在安全方面有很多经验,大家有兴趣,可以看我最新分享的文章,打造高性能CC防火墙
本来就是在不同的node上啊,谈不上改进把,sandbox和docker各有优点,目前是两者都用,在不同场合
在cgroup普及之前,SAE就实现了对进程的资源隔离,mem、io、cpu等,应用层实现,而且还做到了进程内隔离
Q:php还在sanbox上吧?
A:对,@胖子一枚,您说的对,我们目前正在新的kubernetes平台上PHP,上完了就属于两者都用了
Q:感知怎么做的?app资源伸缩的时候,如何感知worker的启动以及退出,并修改lb的路由或upstream?
A:scale这块,我们不同平台有同的做法,php和python都靠感知http请求队列,java是靠计算 activethread number/ total thread number来
多说一句,对于scale而言,感受队列长度要比单纯看cpu占比合理得多
Q:sae内测到公测一段时间看sae的php还在apachehandle模式运行,似乎没有跑到cgi(php-fpm)运行,当时为何这般做?
A:这个没什么考虑吧,apache fork用的多,经验足,仅此而已
Q:现在sae access log全上elk了么?vhost流量统计是算日志?
A:elk还没上,准备上,之前是rsyslog+solr,对,算日志
Q:sae早期用nfs做甚?现在的替代品是?
A:nfs是用来存放用户的代码,目前的替代品是自己开发的一套文件系统,专门保证代码分发
PaaS说难不难,说容易不容易,关键靠运维
胖子:把基础设应用环境 负载均衡 cdn 网络能力 安全能力 全部开放给用户
用户只要专注自己的业务。
这个观点我们要放开眼,如果就盯着互联网创业公司,确实是大了就走了,但世界上不是只有互联网公司,那么多传统企业呢,互联网才占多少比重,paas/baas要拓展自己的核心用户,不走的