Cloud Foundry(CF)内部结构分为控制平面与数据平面,支撑从应用管理到运行的全流程,控制平面核心组件包括Cloud Controller(CC)负责应用生命周期(推送、扩展、删除)、UAA处理身份认证授权、BOSH管理基础设施部署运维,以及存储元数据的数据库,数据平面由Diego调度器分配资源、Garden容器运行时隔离并运行应用实例、Gorouter负责流量路由,底层逻辑上,应用推送后,CC转发请求至Diego,Diego调度Garden创建容器,Gorouter动态更新路由表引导流量,实现高效弹性的应用运行。
Cloud Foundry(CF)作为开源PaaS平台的标杆,以其快速部署、弹性扩展和多环境适配能力,成为企业云原生转型的核心工具,要理解CF为何能高效支撑应用全生命周期管理,需深入其分层化、模块化的内部结构——核心分为控制平面与数据平面两大模块,各组件协同工作,构成一个闭环的应用交付体系。
控制平面:平台的“大脑”,负责决策与管理
控制平面是CF的核心指挥系统,主导资源调度、权限管理和应用元数据维护,关键组件包括:
- Cloud Controller(CC)
CF的API***与核心管理节点,所有用户操作(如cf push推送应用、cf bind-service绑定服务)均通过CC处理,它维护应用、组织/空间、服务实例等元数据,同时协调Diego、UAA等组件完成资源分配。 - UAA(User Account and Authentication)
身份认证与授权中心,支持OAuth2、SAML等协议,管理用户账号、角色与权限(如组织管理员、空间开发者),确保平台资源的安全访问。 - Diego引擎
CF的容器调度核心,替代早期的DEA(Droplet Execution Agent),它分为两部分:- Diego Brain:接收CC的调度请求,基于资源(CPU、内存)和策略(如亲和性)选择更优运行节点;
- Diego Cell:运行应用容器的节点,负责启动Droplet(应用可执行包)、监控容器状态(如健康检查)、自动重启故障实例。
- BOSH
CF的基础设施编排工具,负责部署、升级和维护CF集群的虚拟机、 *** 、存储等底层资源,确保平台自身的高可用性与可扩展性。
数据平面:平台的“执行层”,负责请求处理与应用运行
数据平面是CF的交付层,直接对接用户请求和应用实例,关键组件包括:
- Gorouter
CF的入口路由,通过维护动态路由表(映射应用域名与实例IP),将外部HTTP/HTTPS请求转发到对应的应用容器,同时实现负载均衡和会话保持。 - Loggregator
日志聚合系统,收集应用实例、平台组件的日志数据,支持实时查看(cf logs)和导出到第三方工具(如ELK),助力开发者调试与问题定位。 - Metrics Collector
监控指标收集器,采集应用(CPU、内存、请求量)和平台组件的运行数据,通过Prometheus等工具提供可视化监控,帮助运维人员掌握系统健康状态。
典型工作流程:从应用推送至访问
以cf push为例,CF内部流程如下:
- 用户提交推送请求,CC验证身份(通过UAA),将应用代码打包为Droplet;
- CC向Diego Brain发送调度指令,Brain选择空闲的Diego Cell;
- Diego Cell拉取Droplet并启动容器,同时注册实例地址到Gorouter;
- Gorouter更新路由表,用户通过应用域名即可访问实例;
- Loggregator实时收集应用日志,Metrics Collector记录资源使用情况。
结构特点:模块化与高可用
CF的内部结构通过职责分离实现了灵活性:控制平面专注决策,数据平面专注执行;各组件可独立扩展(如增加Diego Cell提升容器容量,扩容Gorouter应对高并发),BOSH的编排能力确保组件故障时自动恢复,保障平台的高可用性。
理解CF的内部结构,不仅能帮助开发者更好地利用平台特性(如弹性伸缩、服务绑定),也为运维人员优化集群配置、排查问题提供了底层依据——这正是CF成为企业云原生首选平台的核心原因之一。








