Docker进入主流,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说起。自从云计算被划分为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将在云计算家族里占据更重要的地位。
Docker进入主流,PaaS大有可为(转)的更多相关文章
- 基于Docker&Kubernetes构建PaaS平台基础知识梳理
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 基于Docker&Kubernetes构建Paa ...
- Docker与k8s的恩怨情仇(一)—成为PaaS前浪的Cloud Foundry
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 大家在工作中或许或多或少都接触过Docker,那你知道Docker以及容器化背后的原理到底是什么吗? 容器化 ...
- 云计算下PAAS的解析一
云计算下PAAS的解析一 PaaS是Platform-as-a-Service的缩写,意思是平台即服务. 把服务器平台作为一种服务提供的商业模式.通过网络进行程序提供的服务称之为SaaS( ...
- 深入浅出Docker(一):Docker核心技术预览
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可 ...
- Pass云Docker介绍
1.Docker 简介 Docker是一个开源可以将任何应用包装在”LXC容器”中运行的工具.如果说VMware,KVM包装的虚拟机,Docker包装的是应用.是一个实至名归的PaaS. 当应用被打包 ...
- 基于PaaS和SaaS研发的商业云平台实战 转 (今后所有的IT行业会持续集成,往虚拟化方向更快更深的发展,商业化才是这些技术的最终目的)
背景介绍 SaaS.PaaS.IaaS等云服务模式已经被大家普遍认可,在研发过程中借力一些PaaS和SaaS平台,能够提升产品的研发速度和功能稳定程度.本文将通过真实的商业平台案例-MaxWon研发实 ...
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- 基于PaaS和SaaS研发平台体系
基于PaaS和SaaS研发的商业云平台实战 背景介绍 SaaS.PaaS.IaaS等云服务模式已经被大家普遍认可,在研发过程中借力一些PaaS和SaaS平台,能够提升产品的研发速度和功能稳定程度.本文 ...
- 认识Docker
以下是个人学习过程中所记,仅作为学习经历和备忘,有问题不负责,但可以交流和探讨. 1 什么是Docker? 在Docker的官网,Docker的设计师们对Docker的定义是: Docke ...
随机推荐
- Chrome 快捷键使用
窗口和标签页快捷方式 Ctrl+N 打开新窗口 按住 Ctrl 键,然后点击链接 在新标签页中打开链接 按住 Shift 键,然后点击链接 在新窗口中打开链接 Alt+F4 关闭当前窗口 Ctrl+ ...
- HDU 1698 (线段树 区间更新) Just a Hook
有m个操作,每个操作 X Y Z是将区间[X, Y]中的所有的数全部变为Z,最后询问整个区间所有数之和是多少. 区间更新有一个懒惰标记,set[o] = v,表示这个区间所有的数都是v,只有这个区间被 ...
- POJ 1837 Balance 【DP】
题意:给出一个天平,给出c个钩子,及c个钩子的位置pos[i],给出g个砝码,g个砝码的质量w[i],问当挂上所有的砝码的时候,使得天平平衡的方案数, 用dp[i][j]表示挂了前i个砝码时,平衡点为 ...
- 基于HtmlUnit的模板的网页数据抽取
既然方向定了,就开始做实验室吧,做舆情分析,首先就是要收集相关的语料 正好实验室有同学在做标化院的信息抽取抽取这块 于是把程序拿过来研究研究正好 完整程序在126邮箱共享: 可下载数:20 共享连接 ...
- 增加eclipse启动的Tomcat内存的
JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能. 如何设置Tomcat的JVM内存大小 Tomcat本身不能直接在计算机上运行 ...
- JBPM4入门——9.自动节点单线执行
JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...
- PHPMailer邮件类使用错误分析
PHPMailer配置清单如下: require_once ‘class.phpmailer.php‘; $receiver = ”; $mail = new PHPMailer ( ); $mai ...
- linux中ulimit作用
一.作用 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数. ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制, ...
- RedHat 5 配置CentOS yum 更新源
YUM是Redhat Linux在线安装更新及软件的工具,但是这是RHEL5的收费功能,如果没有购买Redhat的服务时不能使用RHEL5的更新源的,会提示注册. 由于CentOS是从Redhat演化 ...
- 【剑指offer 面试题34】丑数
只包含因子2.3.5的数称作丑数. #include <iostream> #include <vector> using namespace std; int GetUgly ...