说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

SAE的资源、安全隔离与Container

HTML文档下载 WORD文档下载 PDF文档下载
在新浪SAE首席架构师丛磊看来,Container并不是神秘的技术,而要把资源利用率做到最高就需要些创新,并将SDN功能也做到Container里。丛磊表示,SAE的技术比Cloud Foundry、OpenShift领先两年。

Container技术可以理解成LXC、JVM或浏览器的沙箱,但说到底,是对资源的隔离,和对各租户的计算、存储、I/O资源的QoS保证。无论物理机、虚机还是Container的目的都是如此。但如何在保证隔离度和QoS的前提下,服务更多租户,这就是云计算要解决的问题,也是技术难点所在。

一台物理机支持50个租户与支持500个租户的情况下,单个租户的成本相差10倍。可想而知,如果两家云服务商分别基于这两种技术提供服务,谁能够在市场中生存。

Container技术之所以受到云计算行业的关注,是因为它能提供更高密度的租户,将单租户的成本降到更低。Docker这样的平台,又能给用户更灵活和高效的组装,快速实现PaaS平台的搭建。

作为国内最成熟的PaaS平台,SAE的技术实现一直备受关注。时隔半年,CSDN再次对丛磊进行的专访,畅聊了Container在SAE的实现。以下为对丛磊采访的整理:

SAE的Container技术

Container的技术很简单,Cgroup捆绑在Linux内核里,不会有太大问题,拿来用就可以了。如果把成本降到极点,可以把虚机单位退化到轻量的虚拟机如LXC,甚至再轻量化到进程,租户A一个进程,租户B一个进程。我所知道的主流互联网公司,包括Google、Heroku,以及主流的PaaS平台,如OpenShift,他们目前只能做到进程(隔离)这个级别。

但成本能不能再低一点?共享性更高一点?服务对成本非常敏感的用户,比如创业公司想用SAE,我们能不能提供成本足够低的云计算共享技术,并保证一定的隔离性,于是SAE实现了数据库隔离,让两个应用同时跑在一个进程里。

目前大部分Java PaaS平台,两个租户需占用两个JVM,而有一家英国公司 Waratek(来自百度钱包及支付发展部的杨龙对Waratek进行了 研究。 )让两租户的两个应用跑在一个JVM里,这在业界非常罕见。但Waratek没有很好的解决I/O问题,我帮Waratek做了I/O优化,Waratek借鉴了SAE的(隔离)方式。

更高密度

SAE一台服务器(八核CPU、32GB内存)通过SQL过滤的技术,可以跑五万个应用的数据库。还有什么Container技术能跑五万个应用?

SAE的许多用户是个人开发者、创业公司,比如《嘀嘀打车》、《今晚看啥》,起初是跑在SAE公共平台上,没有买企业版。但他们在SAE公共平台上运行的非常好。其实这种SQL过滤的技术也是一种Container,与大家经常讨论的开源LXC技术并不相同。大家可以看到,那么多成功的应用,这种技术是经过实践检验的。

SAE的SDN

SAE的Container技术包含计算、存储、网络、I/O的一整套的隔离方案,尤其包含了对网络三层、四层的隔离,这里可能会涉及的SDN的概念。SDN应用到PaaS层与应用到IaaS层不太一样。IaaS主要适用网络的三层和二层。SDN应用到PaaS是在三层、四层,甚至七层。换句话说,你疯狂的发垃圾邮件,但不能影响我正常发送邮件,这就是SDN里要解决的东西,这也就是说我们Container范围里所延展到的网络隔离。

说白了SDN就是把流量和行为控制起来,如何转发,是否能连接,连接的频率,传输流量以及行为。

SAE的一下步

SAE还在为企业提供VPC环境,Virtual Public Cloud。同时,目前SAE不能让用户本地写。这是因为在分布式的环境下,同一个应用可能跨几台机器。如果支持本地写,就存在一致性问题。亚马逊是通过块存储或者文件存储解决写的问题,文件存储实际上是分布式共享文件存储,这样用户只要挂载上这个服务,就与读写网络硬盘没有区别,同时能很好的隔离。这样,当应用迁移到AWS后,不需要改一行代码。这是SAE下一步的目标。

最后,SAE有一个产品叫云商店,它允许本地写,包括配置文件和代码。云商店隔离曾经使用Cgroup,但发现I/O非常不稳定。后来自己开发了一套平台进行隔离,目前在生产环境运行了半年。

对比Cloud Foundry和OpenShift

SAE研究的技术,已经不是开源圈研究的重点了。因为CloudFoundry、OpenShift还是在走我们两年前的路,如RunTime隔离,应用的隔离。我们现在主要研究网络虚假化和存储虚拟化。

不过,Cloud Foundry的代码、框架都很优雅,毕竟是大师做出来的,十分方便做扩展,方便你去做改进。

对话丛磊

CSDN:SAE实现的Container技术难度很高吗?

丛磊:需要一些创新性。因为业界大家玩儿的都是开源,为什么说都觉得Linux Container好,CloudFoundry是通过Warden实现(隔离),都是开源的。大家觉得开源怎么做,我也应该怎么做。

CSDN:SAE在网络隔离方面有自己的一套方案?

丛磊:SAE有一套自己的SDN,从2010开始做,分为两部分:IaaS上的大二层隔离,和PaaS层的三层、四层网络隔离。

CSDN:SAE的SDN,对交换机有特殊要求吗?有没有供应商和你们合作?

丛磊:你所说的是IaaS层的SDN。SAE主要做的是PaaS层的SDN。我们的IaaS层SDN也有几个方案,不依赖于特殊的交换机。

CSDN:SAE是自己写的?

丛磊:完全自己写的,据我所知目前PaaS平台用C和C++写的几乎没有,我们完全是用C和C++写的。CloudFoundry、OpenShift是如Ruby写的。

CSDN:这有什么不同?

丛磊:各有利弊。整体性能SAE高。第二,CloudFoundry和OpenShift的灵活性更好,更容易修改,出现问题更容易排查,而SAE出问题排查的难得更高,灵活度差。第三,CloudFoundry和OpenShift的代码更容易阅读,只要懂Ruby,可以在很短的时间内对整体有大概的了解。但SAE的代码后端基本上是C,在短时间内是很难有整体的了解。

CSDN:SAE目前支撑了哪些业务?

丛磊:新浪内部SAE以外,微博平台也在使用SAE的技术做资源隔离。微博分为三部分,微博主站没有用SAE的平台,微博游戏全部在SAE上,微博应用约有70%跑SAE上。

CSDN:距离上次聊天已经过去半年,SAE的收入情况如何?

丛磊:无论是用户数量还是收入都有增长。这半年主要看中的是品质用户,有一定成长力的用户。像《今晚看啥》、《滴滴打车》、《掌上贵金属》。尤其《掌上贵金属》现在收入非常客观,他们完全是在SAE上成长起来的,包括《乌云》也做得很不错。同时,还有好几个应用是在SAE上直接创业的,现在有天使投资人专门盯上SAE。

CSDN:SAE使用了OpenStack?

丛磊:SAE上不是这样,PaaS是PaaS,IaaS是IaaS,PaaS没有基于IaaS。因为我们有自己的Container技术。换句话说,OpenStack是基于物理机的,SAE也是基于物理机,大家都向用户提供服务。

CSDN:确实没有必要再增加IaaS一层,那样又消耗耗一部分资源。

丛磊:对。

(文/ 包研  审校/仲浩)

丛磊,SAE首席架构师,高级技术经理,同时也是SAE最早的工程师之一。

本文是PaaS/Container系列采访的第二篇(第一篇:《PaaS乱局:Container的新机遇》),接下来还将发布对用友PaaS负责人、GerardBraad等采访。希望通过对PaaS各方玩家的沟通,勾勒出PaaS的现状和未来。如果你是一名PaaS玩家,可以通过邮件告诉我你的观点。

欢迎关注 @CSDN云计算微博,了解更多云信息。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘