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 产品

这里写图片描述

0 0
原创粉丝点击