
Cloud Foundry专栏
文章平均质量分 94
Cloud Foundry是业界第一个open source的PaaS云计算平台,笔者在该领域内研究并实践有接近三年的时候,希望与广大爱好者更多的交流与分享。
孙宏亮
DaoCloud
展开
-
Cloud Foundry中collector组件的源码分析
在Cloud Foundry中有一个叫collector的组件,该组件的功能是通过消息总线发现在Cloud Foundry中注册过的各个组件的信息,然后通过varz和healthz接口来查询它们的信息,最后再将各个组件收集过来的数据发送到指定的存储位置。本文从collector的功能出发,主要讲述以上三个功能的源码实现。原创 2013-11-04 12:03:55 · 3328 阅读 · 0 评论 -
Cloud Foundry中gorouter源码分析
在Cloud Foundry v1版本中,router作为路由节点,转发所有进入Cloud Foundry的请求。由于开发语言为ruby,故router接受并处理并发请求的能力受到语言层的限制。虽然在v1版本中,router曾经有过一定的优化,采用lua脚本代替原先的ruby脚本,由lua来分析请求,使得一部分请求不再经过ruby代码,而直接去DEA访问应用,但是,效果依旧不是很理想。为了提高Cloud Foundry router的可用性,Cloud Foundry开源社区不久前推出了gorouter。g原创 2013-10-11 15:39:38 · 7857 阅读 · 6 评论 -
Cloud Foundry中cloud_controller_ng架构简析
本文中cloud_controller_ng的架构出发,并进行了简单的解析。cloud_controller_ng是Cloud Foundry v2版本中的一个重要组件。其中cloud_controller_ng是cloud_controller的next generation(ng)的含义,而cloud_controller_ng的设计不兼容原先老版的cloud_controller。老版本的cloud_controller采用Rails的MVC框架来实现,而cloud_controller_ng则采用S原创 2014-02-02 00:32:30 · 6566 阅读 · 5 评论 -
Cloud Foundry中warden的架构与实现
在Cloud Foundry中,当应用开发者的应用由Cloud Foundry的组件DEA来运行时,应用的资源隔离与控制显得尤为重要,而warden的存在很好得解决了这个问题。Cloud Foundry中warden项目的首要目的是提供一套简易的接口来管理隔离的环境,这些隔离的环境可以被称为“容器”,他们可以在CPU使用,内存使用,磁盘使用以及设备访问权限方面做相应的限制。本文从warden架构入手,简要的介绍了warden client,warden server以及warden container的原创 2014-03-19 14:22:15 · 7270 阅读 · 5 评论 -
Cloud Foundry warden container 安全性探讨
本文从Cloud Foundry中warden container入手,探讨warden container的安全性。主要集中在多租户container之间,container与云平台之间可能存在的安全问题。原创 2014-06-26 11:05:17 · 3010 阅读 · 2 评论 -
Cloud Foundry中DEA与warden通信完成应用端口监听
在Cloud Foundry v2,DEA为一个用户应用运行的控制模块,而应用的真正运行都是依附于warden。更具体的来说,是DEA接收到Cloud Controller的请求;DEA发送请求给warden server;warden server创建warden container并将用户应用droplet等环境配置好;DEA发送应用启动请求至warden serve;最后warden container执行启动脚本启动应用。本文主要具体描述,DEA如何与warden交互,以保证最终用户的应用可以成功原创 2014-07-14 12:09:01 · 3826 阅读 · 3 评论 -
Cloud Foundry中gorouter对StickySession的支持
Cloud Foundry作为业界出众的PaaS平台,在应用的可扩展性方面做得非常优秀。 具体来讲,在一个应用需要横向伸展的时候,Cloud Foundry可以轻松地帮助用户做好伸展工作,也就是创建出一个应用的多个实例,多个实例地位相等,多个实例共同为用户服务,多个实例共同分担访问压力。 大致来说,可以认为是共同分担访问压力,但是也不是针对所有该应用的访问,都进行均衡,分发到不同的应用实例处。譬如:当Cloud Foundry的访问用户访问应用时,第一次的访问,goroute原创 2014-07-15 20:00:18 · 2002 阅读 · 0 评论 -
Cloud Foundry中DEA启动应用实例时环境变量的使用
在Cloud Foundry v2中,当应用用户需要启动应用的实例时,用户通过cf CLI向cloud controller发送请求,而cloud controller通过NATS向DEA转发启动请求。真正执行启动的事,是由DEA来完成,DEA主要做的工作为启动一个warden container, 并将droplet等内容拷贝进入container内部,最后配置完指定的环境变量,在这些环境变量下启动应用的启动脚本。 本文将从阐述Cloud Foundry中DEA如何为应用实例的启动配置环原创 2014-07-22 13:31:48 · 3368 阅读 · 0 评论 -
Cloud Foundry中warden的网络设计实现——iptable规则配置
在Cloud Foundry v2版本中,该平台使用warden技术来实现用户应用实例运行的资源控制与隔离。在网络方面,warden container技术创建出一块虚拟网卡,专门供warden container内部使用,另外为warden container内部的虚拟网卡在warden server所在的宿主机上也配对了一块虚拟网卡,充当container的外部网关。仅仅创建出两块虚拟网卡,原则上可以保证物理上的“连通”,但是却很难做到网络间通信的“联通”,故在物理资源以及虚拟物理资源完备的情况,wa原创 2014-08-20 13:37:07 · 3375 阅读 · 2 评论