本帖最后由 xioaxu790 于 2014-6-17 09:26 编辑
问题导读:
1、BOSH可以和OpenStack结合使用吗?
2、Cloud Foundry的Iaas平台有哪些?
谈到安装配置Cloud Foundry,写《深入Cloud Foundry》的时间比较早,那时候连dev_setup都没有,更不用说更为先进的、适合大规模部署Cloud Foundry使用的BOSH。当时文章介绍了如何通过理解Cloud Foundry各模块的关系,手工配置安装Cloud Foundry的,笔者认为那依然是让我们理解Cloud Foundry工作原理的最好方法,而且过程很有乐趣,就如我们在习惯了使用自动相机“咔嚓”一下的时候,如果有机会把玩一些老相机,躲进暗房尝试自己冲洗银盐底片,那种感受是难以言表的。
如果你有这种雅兴,笔者推荐你可以参考原文,找旧的代码从头走一遍,那可以让你对CloudFoundry的理解加深很多;如果你的目标是希望马上部署好一套私有PaaS,享受现代科技带来的便捷,笔者推荐CloudFoundry中国的官网文档,里面很详细介绍了用dev_setup,以及用BOSH在vSphere安装。
按照这套指南,估计大家可以在不到一个小时的时间内,用BOSH部署出一套多节点的,真实可用并可以提供服务的PaaS。
Cloud Foundry作为一个PaaS系统,其架构于IaaS之上的,虽然上面Cloud Foundry的部署指南是以vSphere作为IaaS,但无论是Cloud Foundry本身,还是部署工具BOSH的设计都是以IaaS不相关的。正如一年前那篇《深入Cloud Foundry》所说,我们可以用OpenStack作为Cloud Foundry的IaaS层。而Cloud Foundry后来出现的部署系统BOSH和我们当时想得不谋而合,它对IaaS层做了一层抽象,叫做CPI(Cloud Provider Interface)。
BOSH与OpenStack
而CPI里面就有专门为OpenStack准备的,叫做Piston,开源地址在:
https://github.com/piston/openstack-bosh-cpi
只要理解BOSH ,可以发现这里面的魔法很简单。我们需要部署Cloud Foundry,要做几件事情?
向IaaS要一台虚拟机,导入image文件;
向IaaS要存储空间,并attach到虚拟机上;
配置这台虚拟机的网络,使它可以和其他Cloud Foundry服务器相通;
在这台虚拟机里面下载安装CloudFoundry的代码;
配置Cloud Foundry组件间的消息机制。
这里与IaaS相关的,就是1, 2, 3三点,如果我们读过我之前的博客 什么是PaaS? ,我们知道IaaS主要为我们提供网络、存储、服务器,以及image中带有的OS。如果你同时也看过《深入Cloud Foundry》原文,应该记得我强调过CloudFoundry是完全模块化设计的,基于消息机制的分布式系统,所以安装配置CloudFoundry就是把每个模块单独跑起来,然后配置其消息机制,也就是上面的4, 5两点。而BOSH,CPI作为IaaS的facade,需要提供相对应的接口,为安装Cloud Foundry提供1,2,3,而4,5是通用逻辑与IaaS不相关。所以任何一个IaaS,只需要实现以下接口即可以支持BOSH,并用来部署Cloud Foundry:
create_stemcell
delete_stemcell
create_vm
delete_vm
reboot_vm
configure_network
create_disk
delete_disk
attach_disk
detach_disk
stemcell可以认为是我们常说的image,或者说是模板,从函数名,我们基本可以知道每个接口的作用了吧?我们可以看到是和我们上面说的a), b), c)相对应的。
不少公司,都已经搭了自己的虚拟化平台,如,国内某著名电子商务公司内部就用LXC构建了一套虚拟化平台。如果他们再写个接口,暴露出上面10个接口,同样可以用来部署CloudFoundry。
|