分享

CloudFoundry入门:相关术语解释

howtodown 发表于 2014-3-4 00:25:28 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 11953
当我们想学习一门技术的时候,我们首先知道它是什么?当我们知道它是什么的时候,为了交流方便,我们会使用一些术语,如果我们不懂这些术语,那么我们就是门外汉,所以先看看下面的术语解释吧。
问题:
1.哪个组件为cf、vmc、sts等客户端提供REST API接口?
2.哪个组件相当于部署App应用的容器,管理实例的整个生命周期?
3.哪个组件用来监控App应用的运行状态、版本及实例数,确保已经启动的应用保持正常的运行?
4.那个组件使用是是基于Go语言编写的?
5.CloudFoundry的各组件之间的通信依赖那个组件?
6.Droplet的作用是什么?







已有(2)人评论

跳转到指定楼层
howtodown 发表于 2014-3-4 00:25:36


1、CC

CC即Could Controller,CloudFoundry V2版本中叫CC_ng,是CloudFoundry的管理模块,主要负责为cf、vmc、sts等客户端提供REST API接口,管理App的整个生命周期的状态及运行环境、日志等,是基于Fog组件规范的接口。


2、DEA

DEA组件全称Droplet Execution Agent,相当于部署App应用的容器,用于管理应用实例的整个生命周期,能够与CC组件通讯进行应用实例的启动和停止,在应用实例的整个生命周期中,DEA都会对其保持跟踪监控,并周期性地通过NATS消息组件将应用实例的状态信息进行广播(主要是被Health manager组件接收);最新版本的DEA组件(DEA_next)与老版本的DEA组件相比,优势在于新版本更具模块化,并且测试的覆盖面更广,而且还有一个非常大的改进:依赖Warden组件进行应用实例隔离;DEA中的还有个组件叫Director server,基于Go语言编写,当有请求发起时,DEA响应请求并重定向到director server,在DEA对该URL请求作出处理之前由director server验证其有效性。



3、Health Manager

Health Manager组件主要用来监控App应用的运行状态、版本及实例数,确保已经启动的应用保持正常的运行,概括地说,Health Manager组件会监控App应用的当前状态,并实时与期望的正常状态进行对比,一旦发生差异,就会判定该App应用没有正常运行,Health Manager会通过下发启动或者停止命令初始化App应用状态,以保证App应用运行在正常状态之下;另外,Health Manager还会收集和分析一些特殊应用的运行信息,如各种框架、运行时环境等。



4、Buildpack

Buildpack通常是ruby工程,由若干ruby脚本和配置文件组成,包含了APP应用部署运行所需要的所有环境,包括语言框架和运行时环境,CloudFoundry原生支持Ruby、Java、Node.js及其主流框架,另外,Heroku等第三方的Buildpack也能部分支持,APP应用上传部署的过程中,CloudFoundry会检测APP配置以确定哪个buildpack能够适用,第三方的开源buildpack需要在部署的时候手动指定:cf push --buildpack URL。



5、Router

V2版本的Router组件改为Gorouter,是基于Go语言编写的,用于CF平台到各组件(如CC,DEA等)的网络路由。Router通过定制实现了对所有连接到Router的网络连接的控制,从而能够更好地支持websocket和其他一些网络协议如HTTP等,所有的路由逻辑都有其独占的进程,减少一些不必要的网络延迟。Gorouter在CF平台上运行时,需要随时通过NATS消息进行更新,默认情况狂下,2分钟未接收到NATS消息,则该route将会被废弃,以释放资源,所以如果需要保存route激活状态的话,最起码得2分钟内对其进行一次更新操作。
Gorouter提供了两个HTTP接口进行监控管理:/varz和/healthz。/routes接口的返回结果是JSON格式的路由表信息,每个Route都有一个对应的接口信息数组。这些接口都要求身份认证,认证信息通过gorouter.yml文件进行配置,其中有端口、用户名、密码等配置项。


6、UAA


UAA组件全称User Account and Authentication,是基于java语言进行开发,使用Maven进行包管理的一个子项目,主要用于CF平台的身份认证管理,事实上,它并不是CF平台的内部组件,而是一个基于OAuth2和OpenID通用身份认证规范的独立功能组件,可以用于CF平台的身份认证,也可以为其他项目提供SSO单点认证服务。


7、Warden

Warden是CloudFoundry的一个基础组件,用来在Unix系统环境中构建独立、完全隔离的资源环境,能够对CPU、内存、硬盘资源、网络资源进行控制。


8、NATS

NATS是一个分布式的消息发布和订阅系统,CloudFoundry的各组件之间的通信就是依赖NATS组件。


9、Droplet

Droplet---封装包(不好解释,暂且将其中文名称为封装包),是应用程序经过Staging(不好解释,暂且将其中文名称为封装)过程产生的一个可以执行运行的程序包,源于程序,封装后会留有一个端口用于监听HTTP请求,同时包含2个可执行动作:启动、停止,这个包里边会包含以下内容:
  • 应用程序包(APP)
  • 运行环境配置文件
  • 管理控制脚本




10、Staging

Staging---封装(不好解释,暂且将其中文名称为封装),是DEA对上传完成的应用程序执行的一系列动作,DEA会按照buildpack中描述的具体要求,获取相关脚本或者其他依赖包,将其组装成为一个可以运行的封装包Droplet。


11、Flapping

应用程序(APP)部署或者运行的一种异常状态,表示该APP已经宕机多次无法正常运行或者根本就无法启动。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条