深度剖析cloudfoundry的架构设计

深度剖析cloudfoundry的架构设计

ID:44640244

大小:266.80 KB

页数:10页

时间:2019-10-24

深度剖析cloudfoundry的架构设计_第1页
深度剖析cloudfoundry的架构设计_第2页
深度剖析cloudfoundry的架构设计_第3页
深度剖析cloudfoundry的架构设计_第4页
深度剖析cloudfoundry的架构设计_第5页
资源描述:

《深度剖析cloudfoundry的架构设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、深度剖析CloudFoundry的架构设计2011-10-2713:23來源:博客VMware在今年4月份突然发布了业内第一个开源的PaaSCloudFoundryo发布至今的这几个刀里,笔者一直关注它的演进,并从它的架构设计中获益良多,觉得冇必要写出來与大家分享一下。木文会分为两个部份:第一部份主要介绍CloudFoundry的架构设计,从它所包含的模块介绍起,到各部份的消息流向,各模块如何协调合作;第二部份会在第一部份的棊础上,以如何在你的数据中心里面用CloudFoundry部署一个私有PaaS为目标,

2、把第一部分介绍到的架构知识使用起來。笫一部份讲的很多内容,会引用Pat在10刀12口的VMwareCloudForum上面关于CloudFoundry架构的演讲。Pat是CloudFoundryCore的负责人,他的那次演讲很值得■听。如果你当时在场,并且理解他所说的内容,本部份可以选择直接跳过。我除了会把说的内容讲具体点外,不太可能可以讲得比他好。一、架构及模块从总体地看,CloudFoundry的架构如下:oauth▼

3、~jauth/!i―iauthzrouteri,一apPapplifecycle—*n

4、atsexecutionmanagement(加克)databaseserviceappsi♦lifecycleredisIJmanagementMl.11▼service♦—blobstore;WcmOBMBMl«■»・1instances这个架构图以及下文所用到的各模块架构图均来自Pat的PPT。从上图能够看到CloudFoundry主要冇以下几大组件组成:1、Router:顾名思义,Router组件在CloudFoundry中是对所有进来的Request进彳亍路由。进入Router的request主要

5、有两类:首先是来口VMCClient或者STS的,由CloudFoundry使用者发岀的,管理型指令。例如:歹ij出你所有apps的vmcapps,提交一个apps等等。这类request会被路由到AppLifeManagement组件,又叫CloudController组件公;第二类是外界对你所部署的apps访问的requesto这部份requests会被路由到Appexecution,又或者叫做DEAs的纟R件去。所有进入CloudFoundry系统的requests都会经过Router纟II.件,看到这

6、里町能会有朋友会担心Router成为单点,从而成为整个云的瓶颈。但是CloudFoundry作为云系统,其设计的核心就是去单点依赖,组件平行扩充,且可替代的以保证扩展性,这是CloudFoundry,羡至所有云计算系统的设计原则,后文会讨论CloudFoundry如何做到这点,目前只要知道,系统可以部署多个Routers共同处理进来的requests,但是Router上层的LoadBalance不在CloudFoundry的实现范围,CloudFoundry只保证所有的request是无状态的,这样就使上层均

7、衡附载选择而非常非常大了,例如町以通过DNS做,也可以部署硬件的LoadBalancer,或者简单点,弄台ngnix作负载均衡器,都是可行的。Router组件,H前版本是对nginx的一个简单封装。熟悉ngnix的朋友应该知道,它可以一个套接字文件(.sock文件)作为输入输岀。所有安装CloudFoundry的Router纽.件服务器都会安装一个nginx,-Kngnix.conf文件有以下配置:upstreamvcaprouter{serverunix:/tmp/router.sock:从整体的來看,Ro

8、uter组件的结构如下:routerhttprequestrequest外界httprequest进入CloudEoundry服务器,nginx会首先接到request,nginx通过sock与router,rb进行交互,于是真正处理请求的是Router组件。Foutor.rb里面根据传入的url,用八名密码等,进彳了逻辑判断,到CloudController组件或者DEA组件取数据并且返通过与niginx连接的.sock文件返冋。router,rb是对nginx进彳亍了逻辑封装。熟悉CloudEoundry

9、的刖友肯定知道,CloudEoundry给每一个app分配了一个url访问,如果直接使用VMware所托管的CloudEoundry.com的话,那你的app的url可能就是xxx.cloudfoundry,com,无论通过命令给你的app扩展了多少个instances,都是从这个url访问的,这里而的url转换路由就是由router,rb实现的。2、DEA(DropletExecutionAgen

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。