Docker进入主流,PaaS大有可为(转)

摘要:
本文简要描述了PaaS使用的传统容器的缺点。越来越多的PaaS平台使用Docker作为容器,尽管许多云计算供应商以前在生产环境中使用过它们;这意味着Docker技术将取代传统的PaaS容器技术,但没有人专门为PaaS开发应用程序。传统的容器技术存在安全问题,即在其他环境中开发的应用程序无法毫无痛苦地移植到这些PaaS平台,而传统的PaaS容器存在性能问题。

add by zhj: 文章简单的说了PaaS所使用的传统容器的缺点,而docker这个容器在一定程度上解决了这些问题,越来越多的PaaS平台使用docker作容器,实现应用的隔离。不过,由于docker只支持linux,所以只能用于linux(docker使用了LXC,可以简单的认为是对LXC的封装)。对于PaaS提供商,目前的实现方案貌似是对于服务器,先用重量级虚拟机(重量级虚拟机是指自带OS的虚拟机)虚拟出几个虚拟机,然后在每个虚拟机上跑多个容器(传统容器或者docker),每个容器对应一个用户的应用。可参考百度的BAE3.0

【2014年6月10日 51CTO专稿】今天云计算界有两件大事,都跟轻量级虚拟机Docker相关,一个是Docker经过漫长的更新和改进之后,终于发布了1.0版,虽然在 这之前已经有很多云计算厂商将它用到生产环境;另一个是谷歌宣布拥抱Docker,GAE与GCE早已就Docker秘密研发多时,很快就将有重大发布, 连线将其称为“云计算的下一件大事”。

笔者认为,这意味着Docker技术将取代传统的PaaS容器技术,正式进入主流,Docker也将大幅拓宽PaaS的应用范围,隐隐有取代IaaS之势。

事实上,在Docker的支持上, 国内的云计算厂商并不落于人后,早在Docker发展处于早期的时候,百度BAE团队就研究了Docker技术,并在BAE3.0正式采用并推出了商用版,UCloud等也对Docker进行了支持。

Docker进入主流,PaaS大有可为(转)第1张

为什么Docker如此受欢迎?

这要从PaaS说起。自从云计算被划分为IaaS、PaaS、SaaS开始,PaaS就陷入一个尴尬的境地,它既不如IaaS那样灵活而自由,又不 如SaaS那样可以直接推向消费者。有人说PaaS是未来的云计算,但是近几年IaaS和SaaS各自发展,反而是PaaS几乎裹足不前,虽然各种应用引 擎层出不穷,但是没有什么人专门为PaaS开发应用。这又是为什么呢?

这要归罪于传统的PaaS容器,传统的Container技术存在安全性问题,并不能对应用程序和系统、以及应用程序之间进行很好的隔离。一些应用 引擎为了解决这个问题,于是禁用了语言环境的很多功能,比如SAE就禁用了PHP中的exec等函数,而用SAE独自的函数来代替。

这样就带来了问题,即在其他环境中开发的应用无法无痛的移植到这些PaaS平台中,即使是为了PaaS重新开发一个应用,也无法利用别人开发好的类 库,这种自废武功的行为使得PaaS成为鸡肋。同时,传统PaaS容器还有性能问题,创建和销毁一个容器都需要很多的时间和资源。

为了解决这些问题,2013年3月PaaS厂商dotCloud发布了Docker.io,一个开源的全新linux轻量级虚拟机技术。它采用虚拟机技术来对资源进行隔离,显著提升了性能,并且大大改进了部署应用的便捷性。其中最重要的就是,它不再限制语言的功能了。

从BAE3.0的体验来看,Docker技术的确名不虚传,它采用了一种新的计价方式——执行单元,而非CPU时间、发起连接数等,这也是因为虚拟机技术带来的资源隔离,保证了自己的资源不被其他人所占用。

PaaS的未来

在传统的容器条件下,虽然PaaS受到种种掣肘,但也是有应用场景的。著名技术博主,曾主持淘宝聚石塔项目改版的陈皓对PaaS有自己的看法。他认 为,PaaS需与具体业务相结合,为打造行业应用服务。如聚石塔就是专为淘宝商家ERP服务的PaaS平台,商家可以在这个平台上开发和部署私有的ERP 系统。其他的一些开发工具和框架也纷纷研发PaaS平台服务,为使用该工具的应用提供托管,如国内的Hybrid App开发平台AppCan,以及跨平台开发框架Qt。

而现在有了Docker的加持,PaaS将有更大的发挥空间,其中一个就是在云计算的基础领域取代IaaS。目前的IaaS只是取代了传统的服务 器,其环境和应用的部署与传统相比差异很小,只是在运维上有很大的改变。PaaS这种开关式的环境搭建显然比IaaS要方便很多,符合技术发展的趋势。如 果只是为部署一般应用,PaaS足矣,但是IaaS大行其道的原因就是,每个公司都有不同的需求,而有些独特的需求在模板化的运行环境中无法支撑。比如目 前的BAE3.0的单个执行单元无法支撑混合语言环境,单个执行单元的资源有上限等等。

不过这些问题并不是不能解决的,用PaaS+Web API/IaaS的架构,将超出模板外的需求用Web API来实现,如果对资源有需求则用单独的IaaS来实现,可以覆盖多数需求。

因此,IaaS并不会消失,只是它的一部分使用场景被PaaS所占据而已。

曾有人将云计算比作水和电,我们不需要知道它们是从哪儿来的,只要一拧开关,水和电就有了。显然,PaaS符合这样的设想。虽然在以前可能不能实现,但是我们相信,在有了Docker之后,PaaS将在云计算家族里占据更重要的地位。

【责任编辑:徐川 TEL:(010)68476606】

免责声明:文章转载自《Docker进入主流,PaaS大有可为(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇禁止crontab -r清空定时任务列表误操作swift 画虚线下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何查看手机电量消耗是否正常?

【查看方法】 1、手机自带有电量使用信息查询,进入方式:设置——电池,见下图: 这个界面可以查看各应用耗电信息,还可以查看各应用耗电排行。 2、点击“电量使用详情”,进入如下界面: 该界面显示该手机电量使用情况的图形 3、点击右上角感叹号图标,可以打开时间标尺,可以查看到具体时间各应用消耗的情况,见如下图所示,抖音、作业盒子等在后台消耗电。 4、那么...

gcc for Windows 开发环境介绍

在Windows操作系统下的gcc   第一节 GCC家族概览   GCC是一个原本用于Unix-like系统下编程的编译器。   不过,现在GCC也有了许多Win32下的移植版本。所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东西。所以,我希望通过这章的叙述,让你——一个Windows开发者对GCC这一个优秀的编译器有一个大概的了解...

漫谈游戏中的阴影技术(阴影技术比较)

http://blog.sina.com.cn/s/blog_55288aa20100e2fk.html 随着硬件的越来越高端化,各种以前可望而不可及的效果越来越多的应用到网络游戏里。本篇文章是介绍目前游戏中影子的实现方式,它们的优缺点以及应用的场合。 一般来说,在游戏中,应用比较多的影子技术有三种,Projective shadow, Shadow m...

Linux环境下搭建go开发环境

一、环境介绍 Linux环境:阿里云,Linux镜像是centos8.2 64位 本机电脑:是win10操作系统 二、Linux下golang环境搭建 首先通过Xshell6连接上阿里云Linux操作系统    下载go语言开发环境,地址是https://golang.google.cn/dl/,可以根据自己的情况选择相应的版本,我选择的是go1.15....

ubuntu下apache2-php-mysql的环境配置

基本的支持环境。暂时还不应用zend优化,因此这里就不涉及到zend optimizer的安装了。其实在ubuntu系统中中安装远比在windows系统中设置更为容易,而且在终端下设置更省事。 1、安装Apache服务 sudo apt-get install apache2 然后按照提示即完成apahce的安装了。这里 可以打开 http://127...

JAVA中使用动态链接库须知

好不容易 使用cygwin+windows打了个包,放到JAVA中使用。但是还是会报各种错。   JAVA中使用.so文件 static{ System.loadLibrary("test"); //加载libtest.so } 以上是网上的经典用法,很简单的一句。但是用的时候还是出错了。。。 主要还是.so路径找不到。找了大半天,终于,问题解决了...