• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
为什么目前PaaS都没有成功?兼浅谈云计算的发展方向
发布日期:2016-4-8 20:4:33

  为什么目前PaaS都没有成功?兼浅谈云计算的发展方向

  本文通过对操作系统历史的回顾,思考PaaS是否能从Unix操作系统中汲取历史经验,成为新一代的人机交互的基础,总体来说,这是一篇讨论设计思路而非工程实践的文章。希望能引发多更多考虑底层架构的同学的思考。

  从操作系统发展的历史可以看出,操作系统的最大作用是提供合适的抽象。

  操作系统是帮我们操控硬件的软件,它就像是应用程序与硬件的中间者,在两者之间扮演一个协调、管理的角色。它们的关系如下图所示:

 

                       图1 

  操作系统提供了几个我们熟悉的概念来表示硬件设备,比如进程、虚拟存储器、文件。它们表示的硬件设备如图2所示:

 

                              图 2

  可以看出文件是对I/O设备的抽象描述,而虚拟存储器是对主存和I/O设备的统称,最后,一个进程在此基础上又加入了处理器。

  但在目前的大规模多机集群的情况下,这个抽象已经失效了。

  由于摩尔定律的失效,单核CPU的效率无法提升,同时单机IO的无法扩展。但是商业与科研的上的数据需求又不断的在扩大规模,导致了在服务端越来越依靠不断的扩大机器规模来解决问题。

  但是机器规模的扩张仅仅是粗放型的,解决机器、系统、数据之间的协调成为巨大的问题

 

               图3

  我们不会再像以前那样,通过shell或视窗来登陆系统了,我们在手机上登陆的系统,背后的数据来自于一个又一个的大集群

 

               图4

  那么,问题来了,目前的操作系统不足以抽象上面的机器。

  这就导致了很多问题,对于程序员而言,我们写的程序不再能简单的编写然后运行了,至少一个大规模的,需要被很多人访问的系统是这样的。

 

           图5

  对于民众而言,他们不能直接接触到这个集群,但是过年抢票的痛苦的背后其实来自于系统。

 

    图6

  新的抽象是云吗?

  如图7所示,这目前的云计算的抽象图,虽然看起来很酷,但实际上这个抽象还只是一个蓝图,并没有像第一幅图那样已经实现。

 

 图7

  正如微软的win9,win10试图用同一个操作系统UI解决手机与PC的问题那样不切实际,同样的故事也在云端发生,IaaS提供给用户的还是传统的操作系统交互,登陆系统后你还是看到一样的操作系统shell。

  PaaS稍微好一些,PaaS能让程序员把自己的程序分发部署、运行到集群上,但目前受限于安全性、性能、实现的考虑,用户能在PaaS系统中获得的自由非常小,并且又依赖于不同厂商的云实现。


       图8

  Docker提供了一种思路,就是集装箱方式来管理程序,或者说,这只是集群中的一项标准。

 

                           图9

  与这个图片所暗示的一样,Docker仅仅提供了集装箱的标准,但与之配套的码头、装卸机、中心控制等还没有建立,这仅仅是个开始。人的自由还非常的小。

  我们这个时代有无数的数据,但是这些数据却被禁锢在政府或者大商业公司的机房内,人类的大脑所能接受的数据量是有限的,可以想想目前我们的PC实质上已经性能过剩了,手机也快了。唯有在云上给出系统的合理抽象,大多人才有机会去操纵与利用这些数据,并进化出我们和这个世界的新的交流方式。