2013年云计算从业者们:paas的时代就要来临了,如果不是docker出现的话, dotCloud公司开源了自己的项目Docker
paas项目被接纳的主要原因:
提供了一种名叫"应用托管的能力"
就是租一批AWS或者openstack的虚拟机,然后像以前管理物理服务器那样,用脚本或者手工的方式在这些机器上部署应用
缺点:
在部署过程中难免会碰到云端虚拟机和本地环境不一致的问题,所以当时的云计算服务,比的就是谁能够更好地模拟本地服务器环境,能带来更好的上云体验
而paas开源项目的出现,就是当时解决这个问题的一个最佳方案
paas项目的核心组件
一套应用的打包和分发机制
为每种主流编程语音都定义了一种打包格式,把应用的可执行文件和启动脚本打进一个压缩包内,上传到云端的存储中
通过调度器选择一个可以运行这个应用的虚拟机,然后通知这个机器上的Agent把应用压缩包下载下来启动
由于需要在一个虚拟机上启动很多个来自不同用户的应用,Paas会调用操作系统的Cgroups和Namespace机制为每一个应用单独创建一个称作"沙盒"的隔离环境
然后在"沙盒"中启动这些应用程序
而这个沙盒,就是容器
docker和其他容器的根本区别:
docker提出了镜像的概念
pass的打包功能
一旦用上了paas,用户就必须为每种语言每种框架,甚至每隔版本的应用维护一个打好的包
本地运行好的应用,需要做很多修改和配置工作才能在paas里运行起来
docker镜像解决了paas打包难题
大多数docker镜像是直接由一个完整的操作系统的所有文件和目录构成的
所以这个压缩包里的内容跟你本地开发和测试环境用的操作系统是完全一样的