pivotal cloud foundry 2.0 简介...outline 1. cf和pcf的起源和发展 2. pcf...
TRANSCRIPT
-
© Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
林林⽂文 Pivotal北北京研发
Pivotal Cloud Foundry 2.0 简介
-
Outline 1. CF和PCF的起源和发展 2. PCF 2.0架构和新特性 PAS:Pivotal Application Service PKS:Pivotal Container Service PFS:Pivotal Function Service
-
© Copyright 2017 Pivotal Software, Inc. All rights Reserved.
Transforming How The World Builds Software
-
Cloud Foundry是什什么
• Cloud Foundry是业界第⼀一个开源PaaS云平台,VMware于2011年年开源。
• 它⽀支持多种框架、语⾔言、运⾏行行时环境、云平台及应⽤用服务,使开发⼈人员能够在⼏几秒钟内进⾏行行应⽤用程序的部署和扩展,⽆无需担⼼心任何基础架构的问题。
• 它本身是⼀一个由多个相对独⽴立的⼦子系统通过消息机制组成的分布式系统,使平台在各层级都可⽔水平扩展,作为新⼀一代云应⽤用平台,Cloud Foundry专为私有云计算环境、企业级数据中⼼心和公有云服务提供商所打造。
• Cloud Foundry云平台可以简化现代应⽤用程序的开发、交付和运⾏行行过程,在⾯面对多种公有云和私有云选择、符合业界标准的⾼高效开发框架以及应⽤用基础设施服务时,可以显著提⾼高开发者在云环境中部署和运⾏行行应⽤用程序的能⼒力力
-
Cloud Foundry的发展历程
• 2008年年:Chris Richardson设计开发Java PaaS平台,命名为Cloud Foundry
• 2009年年:CF被SpringSource收购,SpringSource被VMware收购 • 2010年年:VMware CEO Paul Maritz选择CF全⼒力力打造PaaS解决⽅方案
• 2010~2012:VMware开源并投⼊入⼤大量量资源发展CF v1版,社区快速发展壮⼤大
• 2013年年:Pivotal成⽴立,年年底推出商业版本CF,也就是PCF 1.0(Openstack/
vSphere/AWS)
• 2013年年下半年年到2014年年上半年年:PCF公有云进⼊入企业级市场
• 2014年年:CF基⾦金金会成⽴立,赞助商:EMC/IBM/HP/Pivotal/SAP
• 2014年年下半年年到2015年年:越来越多的企业采⽤用PCF建设PaaS私有云,收获许多重要客户,⽀支持三⼤大公有云平台
• 2016年年,CF基⾦金金会成员企业达到20多家, CF基⾦金金会启动认证⼯工作,Pivotal、HP、SAP多家企业成为CF供应商。
• 2017年年~2018年年Pivotal推出全新的PCF 2.0(PAS/PKS/PFS/MarketPlace)
-
Outline 1. CF和PCF的起源和发展 2. PCF 2.0架构和新特性 PAS:Pivotal Application Service PKS:Pivotal Container Service PFS:Pivotal Function Service
-
不不同的平台处理理不不同的云计算⼯工作负载
CONTAINERS EVENT-DRIVEN
FUNCTIONS
DATA SERVICES MICROSERVICES
Batches
MONOLITHIC APPLICATIONS
IaaS
Container Orchestrator (CaaS)
Application Platform (PaaS)
Serverless Functions (FaaS)
-
vSphere Openstack AWS Google Cloud Azure和
Azure Stack
共享服务
共享安全性
共享⽹网络
⽇日志和指标/服务代理理/API管理理
Credhub/UAA/单点登录
VMWare NSX
应⽤用代码和框架 Buildpack/Spring Boot/Spring Cloud/Steeltoe
PAS
Pivotal Application Service
PKS
Pivotal Container Service
PFS
Pivotal Function Service
Pivotal Services Marketplace
Pivotal和 合作伙伴产品
Any App Every Cloud One Platform
Con
cour
se
PCF 2.0 — for everything that matters
Embedded Operating System (Windows / Linux)
-
容器器编排(CaaS)
容器器调度
⽹网络、路路由、⽇日志、监控
CONTAINER (Kubernetes)
PCF V2.0的逻辑架构
开发者交付
平台功能
应⽤用平台(PaaS)
APPLICATION
容器器编排
⽆无服务器器计算(Serverless)
FUNCTION Spring Cloud Function
Application Platform
PCF V2
容器器镜像和构建\服务⽬目录
L7的⽹网络分发和路路由
⽇日志、监控、监控指标采集
租户管理理、容量量管理理、⽤用量量
函数(Function)调度
函数(Function)执⾏行行服务
PKS (Pivotal Container Service)
PAS (Pivotal Application Service)
PFS (Pivotal Function Service)
共享的服务
共享的安全性机制
共享的⽹网络环境和策略略
PCF的三⼤大应⽤用平台
PCF的共享服务
-
Outline 1. CF和PCF的起源和发展 2. PCF 2.0架构和新特性 PAS:Pivotal Application Service PKS:Pivotal Container Service PFS:Pivotal Function Service
-
持续交付
每六个⽉月发布⼀一次 产品中有⾮非常多的缺陷
⾃自动化测试, 尽早,多次发布,快速获得反馈 ⾼高质量量的代码
DevOps
“这不不是我的问题” 不不同的管理理⼯工具, 不不同的利利益关注点,
不不透明的流程
责任⻛风险共担 共同的利利益关注,⼯工具, 流程 和⽂文化
微服务构架
各组件紧耦合在⼀一起 各组件的相互依赖导致经常推迟的集
成测试,⻛风险累积在晚期
各组件⾼高内聚,松散耦合 独⽴立测试和部署,⽆无需等待其他组件
云原⽣生时代来临
到
从
⼿手动测试和发布 部⻔门间缺少协作 巨⽯石应⽤用构架
-
云原⽣生(Cloud Native)应⽤用
• Matt Stine于2013年年⾸首次提出并沿⽤用⾄至今 • 云原⽣生应⽤用的特征: o 符合Heroku提出的12要素 o 微服务 o 敏敏捷基础设施 o DevOps o 持续交付
-
构建云原⽣生应⽤用的基本原则 – 12要素 ‣ I. 基准代码
‣ ⼀一份基准代码,多份部署
‣ II. 依赖
‣ 显式声明依赖关系
‣ III. 配置
‣ 在环境中存储配置
‣ IV. 后端服务
‣ 把后端服务当作附加资源
‣ V. 构建,发布,运⾏行行
‣ 严格分离构建和运⾏行行
‣ VI. 进程
‣ 以⼀一个或多个⽆无状态进程运⾏行行应⽤用
13
‣ VII. 端⼝口绑定
‣ 通过端⼝口绑定提供服务
‣ VIII. 并发
‣ 通过进程模型进⾏行行扩展
‣ IX. 易易处理理
‣ 快速启动和优雅终⽌止可最⼤大化健壮性
‣ X. 开发环境与线上环境等价
‣ 尽可能的保持开发,预发布,线上环境相同
‣ XI. ⽇日志
‣ 把⽇日志当作事件流
‣ XII. 管理理进程
‣ 后台管理理任务当作⼀一次性进程运⾏行行
⽹网址:12factor.net
-
云原⽣生/微服务架构的复杂性
弹性伸缩
⾃自服务 应⽤用服务故障⾃自愈 ⽇日志集中管理理
应⽤用性能管理理
负载均衡 集中配置管理理 服务注册发现
安全
流量量控制
优雅降级
全链路路跟踪
API⽹网关
-
Spring Boot 构建⼀一切
Spring Cloud 协调⼀一切
Spring Cloud Data Flow 连接⼀一切
Pivotal的Spring:云原⽣生Java的标准
代码清晰 | 降低复杂性 | 减少技术负债 | 专注于业务逻辑 | 测试覆盖⾯面更更⼴广 | 代码完成速度更更快
-
‣ I. 基准代码
‣ ⼀一份基准代码,多份部署
‣ II. 依赖
‣ 显式声明依赖关系
‣ III. 配置
‣ 在环境中存储配置
‣ IV. 后端服务
‣ 把后端服务当作附加资源
‣ V. 构建,发布,运⾏行行
‣ 严格分离构建和运⾏行行
‣ VI. 进程
‣ 以⼀一个或多个⽆无状态进程运⾏行行应⽤用
16
12要素:PAS+Spring Boot+Spring Cloud ‣ VII. 端⼝口绑定
‣ 通过端⼝口绑定提供服务
‣ VIII. 并发
‣ 通过进程模型进⾏行行扩展
‣ IX. 易易处理理
‣ 快速启动和优雅终⽌止可最⼤大化健壮性
‣ X. 开发环境与线上环境等价
‣ 尽可能的保持开发,预发布,线上环境相同
‣ XI. ⽇日志
‣ 把⽇日志当作事件流
‣ XII. 管理理进程
‣ 后台管理理任务当作⼀一次性进程运⾏行行
:Spring Boot
:Spring Cloud
-
对微软.Net平台的全软件栈⽀支持 Pivotal SteelToe框架驱动基于.net平台的微服务开发
CPI Microsoft Azure
Elastic Runtime/运⾏行行时 Windows Server 2016操作系统
Elastic Runtime/运⾏行行时 Windows原⽣生容器器⽀支持
.net构建包 包含.Net Core
微服务框架 SteelToe (.Net)
-
集成开发环境⽀支持:Spring Tool Suite
Spring Boot项⽬目快速向导 PAS应⽤用状态仪表板
-
应⽤用管理理:应⽤用仪表板
应⽤用基本信息: - 构建包; - 操作系统; - 路路由
事件记录: - 启动; - 升级; - 弹性伸缩; - 崩溃;
⼿手动伸缩: - 增加/减少实例例; - 增加/减少内存; - 增加/减少存储;
应⽤用实例例状态: - 是否正常; - 资源使⽤用情况; - 运⾏行行时间;
路路由: - 增加路路由; - 修改路路由; - 灰度发布;
绑定的服务
-
应⽤用管理理:⾃自动弹性伸缩
⾃自动弹性伸缩
-
应⽤用管理理 – 应⽤用性能管理理⼯工具
深⼊入跟踪
相关数据
相关⽇日志 Application & Platform Insights
给应⽤用开发者提供实时可⻅见的数据。 ⽹网络数据: HTTP请求, HTTP请求错误, 以及平均时延 容器器数据: CPU, 存储空间, 以及内存 (每30秒) 应⽤用事件: 创建, 更更新, 启动, 停⽌止, 崩溃等 保留留24⼩小时以内数据⽤用于事后分析
-
平台运维 - HealthWatch
Primary Ops Dashboard
CLI Smoke Test Results
-
平台运维 – ⽇日志集中管理理
应⽤用⽇日志
容器器/虚机⽇日志
路路由⽇日志
API⽇日志
⽹网关⽇日志
通过命令⾏行行查看
通过管理理 控制台查看
导出到第三⽅方 ⽇日志⼯工具
导出到Pivotal ⽇日志分析⼯工具
-
如果⼀一个应⽤用故障,PCF会在⼀一个新的容器器中重启应⽤用
3. Resurrector restarts failed VMs
应⽤用故障 进程故障 虚机故障 机器器组故障
PCF A B C
B
1. 2.
如果进程故障了了,PCF会在新的虚机中重启这个进程
PCF A B C
Process
PCF A B C
VM1 VM2
OS, Mware
如果是虚机的操作系统、⽹网络等故障,PCF会关闭虚机,通过虚机模板重启⼀一个克隆隆的虚机
3.
VM3
OS, Mware
OS, Mware
如果⼀一组物理理机器器故障,PCF还可以通过⾼高可⽤用性区确保PCF和应⽤用继续运⾏行行
4.
Zone 2
A B C B
A B C B
A B C B
A B C B
Zone 1
A B C B
A B C B
A B C B
A B C B VM1 VM2
平台运维 - 4重⾼高可⽤用性
-
⽣生态系统 分析 APM
批处理理
BPM
缓存/LB
CI/CD
DB
商业 CRM
IAAS ETL IAM IDE/代码
ITIL
消息传递
移动
搜索
安全性
SIEM/⽇日志/审核
API/SOA/uS/IOT
测试 其他
❓
⽹网络连接
-
“给我运⾏行行应⽤用, 我不不⽤用关⼼心如何打包、如何配置系统”
平台构建容器器 平台实现容器器的创建和管理理,以及应⽤用如何打包到容器器. 开箱即⽤用的⽇日志、监控、跟踪、监控指标采集. 对这些功能不不需要再做额外的配置. 按需创建服务 按需服务代理理会动态的创建和绑定服务依赖,查询服务⽬目录. 全⾃自动化的运维. 提供全⾃自动化的、⼀一致的、可靠的运维,基于管道的部署、弹性伸缩、补丁和在线升级,通过BOSH管理理IaaS
适合符合12要素的云原⽣生应⽤用
PaaS平台
-
Outline 1. CF和PCF的起源和发展 2. PCF 架构和2.0新特性 PAS:Pivotal Application Service PKS:Pivotal Container Service PFS:Pivotal Function Service
-
Docker和容器器编排
✔ ✗
传统软件开发的难题:开发,测试,⽣生产环境不不⼀一致
Docker的出现很好地 解决了了开发和测试环境 不不⼀一致的问题
但是⽣生产环境需要更更多的功能: - 应⽤用之间的协作 - 资源的获取 - 负载均衡 - ⾼高可⽤用 - 弹性伸缩 ……
-
容器器编排⼯工具 – Kubernetes遥遥领先
2017年年9⽉月,Mesosphere宣布⽀支持
Kubernetes
2017年年10⽉月,Docker宣布⽀支持Kubernetes
2015-2017:容器器编排⼯工具之争
-
Kubernetes特点
开源容器器编排⼯工具演化成CaaS
● 源⾃自Google集群管理理平台Borg,经过多年年的实战验证
● 在集群主机间进⾏行行⾃自动化部署、扩展和容器器操作的提供以容器器为中⼼心基础设施的开源平台
● 容器器的弹性伸缩、容错
● 容器器的负载均衡
● 社区快速增⻓长、壮⼤大,很多企业参与,健康的⽣生态圈
Large-scale cluster management at Google with Borg, EuroSys’15, April 21–24, 2015, Bordeaux, France.
-
开源Kubernetes的痛点
运维:复杂性⾼高,创建⼀一个K8S集群或者为⼀一个集群增加节点 弹性伸缩: Kubernetes⽀支持容器器、Pod和服务的弹性伸缩,但是不不⽀支持虚机的弹性伸缩 健康检查和⾃自愈: Kubernetes缺乏对虚机的健康检查和⾃自愈 升级: 在⼀一个⽐比较⼤大的集群中滚动升级是⽐比较困难的
-
PIVOTAL CLOUD FOUNDRY OPS
运维⾃自动化⼯工具---BOSH
BOSH 是⼀一个开源⼯工具⽤用于分布式系统部署、构建、⽣生命周期管理理和监控 BORG++ à BOSH
BOSH 内置OS的系统打包
在任何IaaS上都可以部署虚机
跨可⽤用区(物理理集群)的部署软件
健康监控(虚机/服务器器和进程)
⾃自愈机制(重构)
存储管理理
通过⾦金金丝雀的⽅方式滚动升级
集群的弹性伸缩
-
BOSH的原理理
虚机模板
部署包
软件包
Bosh客户端: - 监控 - ⾃自愈 - 滚动升级 - …
Manifest
-
CFCR项⽬目—开源项⽬目—部分解决K8S的运维问题
在任何云环境下,⼀一致的安装、部署、管理理⾼高可⽤用性的K8s集群. 由Pivotal和Google在2017年年初启动的⼀一个开源项⽬目,并捐献给CF基⾦金金会(原名KUBO:KUbernetes on BOsh)。
“Day 1” 安装构建 ● 通过BOSH部署K8s集群 ● 按需的部署K8s集群
“Day 2” 运维 ● 虚机/部件⾃自愈,监控 ● 集群的弹性伸缩 ● 基于虚机的滚动升级到最新的K8s版本
● 系统级的⾼高可⽤用性和多可⽤用区⽀支持
-
基于开源的K8s构建. 和当前稳定的开源K8s版本兼容, 由BOSH管理理. 不不对K8s做任何扩展. ⽣生产就绪. 从应⽤用到IaaS层的⾼高可⽤用性,⽆无单点故障,内置的健康检查、弹性伸缩、⾃自愈和滚动升级. 多云⽀支持. 对于任何IaaS云或公有云,BOSH提供了了⼀一致的可靠的运维体验 ⽹网络管理理和安全性 开箱即⽤用的 VMware NSX-T,也⽀支持多云和多种虚拟化. 访问GCP APIs 通过GCP Service Broker使得应⽤用可以透明的访问 Google Cloud APIs ⼯工作负荷在公有云私有云之间⾃自由流动 可以把PKS的⼯工作负荷和GKE的⼯工作负荷⾃自由流动. 全⾃自动化运维. 全⾃自动的部署、伸缩、在线打补丁、在线升级,没有业务停顿时间。通过CD持续集成管道来部署平台
BOSH
GCP Service Broker K8s Cluster K8s Cluster K8s Cluster
Kubernetes
NS
X-T
Harbor
Pivotal、VMWare和Google三家联合开发 企业级K8S平台
-
可⽤用区B
可⽤用区A
健康管理理和⾼高可⽤用性
- Kubelet监视和重启容器器 - BOSH Director监视和重启节点 - BOSH agent 监视和重启进程 - BOSH跨可⽤用区进⾏行行部署
Kubelet
Kube-proxy 单元 单元
K8s节点
pod
API服务器器
Kube调度器器
K8s Master
控制器器管理理器器
BOSH agent
BOSH agent BOSH Health
Manager
监视和重启虚拟机
可⽤用区A
可⽤用区B
-
“给我运⾏行行容器器,我会提供和管理理容器器镜像、配置端⼝口绑定、路路由和依赖性”
开发者构建容器器. 开发者负责打包构建容器器,并且以容器器为交付物, 更更⾼高的灵活性. 对于预先打包好的基于镜像的任务更更易易于部署 更更多的定制性 K8S提供了了更更多的扩展点,⽤用于各种定制的可能. 更更多的控制. K8S提供了了显式的端⼝口绑定和容器器共置(Pods).
适合需要对底层精细控制的应⽤用、已经打包为docker镜像的应⽤用、以及集群⼯工作负载⽐比如Spark、ElasticSearch
CaaS(容器器编排)
-
PAS+PKS的集成架构
BOSH
Other Broker
Services
Platform Services
Logging Metrics Monitoring
VMware GCP Azure Openstack AWS
Spring Boot App
PK
S C
ontro
ller GCP
Service Broker
Harbor
NS
X-T
Kubernetes
K8s Cluster K8s Cluster
Spring Boot App
Elastic Search
Pivotal Application Service (PAS)
为什什么Google、VMware、Pivotal联合开发PKS?
-
Outline 1. CF和PCF的起源和发展 2. PCF 2.0架构和新特性 PAS:Pivotal Application Service PKS:Pivotal Container Service PFS:Pivotal Function Service
-
Pivotal Function Service
特性: • ⽀支持多种语⾔言 (Node.js、Spring/Java或
Shell) • 开源项⽬目riff • ⼯工作负荷动态的装⼊入容器器 • 接收处理理事件流,并提供窗⼝口机制访问部分
• ⽀支持多个云平台 • 原⽣生⽀支持Kubernetes
FaaS服务 针对某⼀一事件作出响应,执⾏行行⽤用户定义的函数
-
App Platforms + Functions
与云原⽣生应⽤用开发相⽐比较
应⽤用平台 FaaS
运⾏行行应⽤用apps 运⾏行行函数
把应⽤用部署到容器器或是运⾏行行服务器器 注册函数、并绑定到触发器器上
容器器/服务器器运⾏行行,等待请求进⼊入 Function不不会运⾏行行,直到被触发
容器器/服务器器要监听⽹网络 平台负责部署、调⽤用函数
容器器/服务器器处理理海海量量请求 Function只处理理事件
⼿手动弹性伸缩,或是根据策略略弹性伸缩 基于并发的事件请求量量⾃自动弹性伸缩
根据实例例收费 基于使⽤用付费 – 时间和内存
-
© Copyright 2017 Pivotal Software, Inc. All rights Reserved.
© Copyright 2018 Pivotal Software, Inc. All rights Reserved.
加⼊入技术微信讨论群组 欢迎⼤大家加⼊入技术微信讨论群组!
• Greenplum官⽅方技术群 • Cloud Foundry 官⽅方技术讨论群
微信扫⼀一扫⼆二维码加为好友,我们将把您邀请进群组