CloudFoundry概述
来源:互联网 发布:淘宝欧莱雅官方网 编辑:程序博客网 时间:2024/05/23 02:04
0. 云平台的行业标准
- 开源项目
- 支持公有云(AWS, GCP)和私有云(vSpherer, Openstack)
- 社区支持
1. CF如何工作
1.1 如何处理负载
核心: 使用多台服务器, 共同处理任务.
BOSH:
在云平台上, 使用bosh创建和部署虚拟机. CF就运行在这些服务器之上. bosh通过manifest文件指定任务.
CF Cloud Controller
在云主机上, 运行apps以及其他进程, 调度平衡需求, 管理app的生命周期.
Router
接收来自用户的请求, 路由请求到运行app所在的宿主机. 通常在router之前有云平台的负载均衡器.
1.2 app是如何运行的
CF集群中的虚拟机分为两类:
1. 运行支持CF基础架构的组件, 为CF本身服务 2. app的宿主机
CF中Diego系统, 会将apps分布在整个宿主机集群中
CF会保证这些app的运行, 并且在访问量激增, 停电等意外情况发生时, 自行做balance操作. (通过auction算法实现)
多台宿主机上, 会运行app的多个副本. 这就要求app是无状态的.
CF分发app源代码到宿主机上, 而宿主机上已经准备好了运行app的一切条件, 比如包括:
- 操作系统: 通过stack提供
- 语言,lib, service: 通过buildpack提供
在将app发送给宿主机之前, Cloud Controller会有一个stages过程:
stages: 将stack, buildpack, source code 打包到droplet中,
之后, 宿主机只需要解包, 编译, 运行即可.
为了简化和提高效率, 一般会将app源代码, 语言和其他库, 编译成二进制文件后, 再打包到droplet中.
1.3 CF如何组织用户和工作空间
通过Orgs和Spaces的概念, 实现对多租户的支持.
每个用户可以分配admin, developer, auditor这样的角色.
UAA (User Authentication and Authorization),提供了CF中的OAuth2服务
1. 可以将用户信息保存在内部
2. 也可以集成外部认证, 包括: LDAP, SAML
1.4 CF资源的获取
源代码, buildpacks, doc:
github.com
CF中使用到的大文件, 比如droplet
内部存储或外部存储
共享临时信息
MySQL, Consul, etcd
1.5 CF组件中如何通信
通过消息机制, 中心组件是NATS, 支持http/https协议.
1.6 如何监控和分析CF部署
CF的metric和日志来源:
* Cloud Controller VM
* Router VM
* all VMs running apps
Loggregator系统:
收集这些日志, 转化为结构化的, 可重用的格式.
Firehose系统:
抽象为所有日志的输出
nozzle系统
可以从Firehose中, 将日志导向其他系统.进而对日志进行分析和处理
1.7 CF如何提供服务
依赖各种service.
为了集成service到app中, 需要开发人员便也service broker:
注册到Cloud Controller上的API, 可以提供以下功能:
1. 列出服务产品 2. 初始化服务实例 3. 支持app调用服务.
1.8 Pivotal 产品
- CloudFoundry概述
- 在cloudfoundry上构建分布式应用—-概述
- CloudFoundry入门
- cloudfoundry资料
- cloudfoundry.yml
- CloudFoundry Logging
- 揭破cloudfoundry(六)--安装cloudfoundry
- 简单测试CloudFoundry
- CloudFoundry源码分析:NATS
- CloudFoundry申请试用
- CloudFoundry源码分析:Router
- CloudFoundry源码分析:DEA
- cloudfoundry的部署 ubuntu
- CloudFoundry之warden安装
- cloudfoundry vmc常用命令
- Capistrano集群部署CloudFoundry
- CloudFoundry相关术语解释
- 解剖cloudfoundry(一)
- hrbust 2143
- 最新LAMP源码搭建网站平台PHP5.5.1 + Apache2.4.6 + mysql5.6.12
- Java中throw和throws的区别
- hessian 在spring中的使用 (bean 如 Dao无法注入的问题)
- Delphi获取汉字拼音以及拼音首字母
- CloudFoundry概述
- 《响应式Web设计-HTML5和CSS3实战》阅读笔记第二章
- app开发常用网络抓包工具
- 获取手机的设备型号
- 页面5秒钟刷新一次(html,php)均可用
- sql bind capture相关文档
- Linux(CentOS6.7) 安装MySql5.7数据库 图文教程
- 简单的数组元素交换 调试的重要性
- 通过代码看MAVLink协议 (二)