版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、O,Pivotal PaaS平台云CloudFoundry产品功能和架构,陈威 Pivotal Senior Solution Architect ,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例情况,Cloud Foundry解决了什么问题?,4,IaaS: 硬件的自动化管理,人与机器的解耦合 获得效率/提高资源利用率 PaaS:
2、应用的自动化管理,应用与OS的解耦合获得弹性/简化运维,PaaS云计算的价值分析,PaaS的业务价值 - decouple from the underlying infrastructure - provide data as a service - decompose applications - automate everything,5,系统安装和应用部署,PaaS云计算的业务价值分析,目前的IT模式,劳动力成本 (运维),硬件成本,新的应用开发,软件成本,电力成本,Current IT Spend,100%,劳动力成本 (降低xx%),硬件成本 (降低xx%),新的开发,基于虚机的部
3、署,软件成本 (降低xx%),电力成本 (降低xx%),基于IaaS的云计算,劳动力成本 (降低xx%),硬件成本 (降低xx%),新的开发,自动化部署,软件成本 (降低xx%),电力成本 (降低xx%),提升业务能力,降低每年的运作成本到,基于PaaS的云计算,PaaS的业务价值 在IaaS基础上共享虚机计算资源,进一步挖掘IaaS虚机的计算能力,再一步提高硬件资源利用率,从而降低硬件成本。 在IaaS基础上直接提供应用运行平台,降低应用平台的运维需求,系统自动化的打补丁、应用升级等,降低运维的劳动力成本。 在IaaS基础上动态的精确计算业务资源,在业务空闲时自动释放并回收平台资源以及与之相
4、关的硬件资源,降低电力成本。 通过PaaS自动化的供应系统平台和应用平台,对业务应用自动化的部署,降低应用系统上线的部署工作量,加快业务上线时间。,6,今天的应用趋势,应用框架应用越来越广泛 提高开发效率,创新 降低开发工作量,减少开发时间 支持新的应用类型 Mobile, Social, SaaS 应用要尽早发布,并且经常升级 数据密集型应用 新的要求: 弹性伸缩、支持多种云 面向Web带来了数据指数级的增长 要部署在虚拟化或是IaaS云环境下 Virtualization, Cloud, PaaS,Cloud Foundry是一个开放的PaaS平台,The PaaS of choice f
5、or the Cloud era 简单 开发者专注于他们的代码,不锁定于特定中间件 开放 避免锁定在特定的云、框架和服务上 从第一天起就是完全开放的 灵活性和可伸缩性 应用自服务、自动部署、自动伸缩S 可扩展的架构,可以吸收未来云创新的发展,Cloud Foundry开放PaaS平台 支持各种框架,9,Application Service Interface,Data Services,Other Services,Msg Services,Cloud Foundry开放PaaS平台 提供多种应用服务,10,通过Services Broker与现有企业服务的集成,service gatewa
6、y,创建,绑定,system service,使用,绑定,使用,service broker,企业服务,11,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例情况,CF的设计目标,13,CF的目标之一 弹性伸缩架构,14,CF的目标之一 弹性伸缩架构原理,15,CF的目标之一 弹性伸缩架构机制,16,dea实现了资源切分(应用层),17
7、,虚拟网络接口切分网络,aufs 切分存储,Warden切分cpu、内存,router实现了资源聚合(应用层),18,Nginx (+lua extension),upstream locator service,dea ,dea ,nats,http request,dea ip?,,NATS,首次访问,二次访问,cookie: ,cookie: ,Cloud Foundry逻辑视图,PC 浏览器访问,Mobile App访问,Router 路由 (Nginx + Locator Service),19,PaaS
8、设计目标之二 - 运维智能化,20,PaaS设计目标之二 运维智能化 分析1/2,21,PaaS设计目标之二 运维智能化 分析2/2,22,PaaS设计目标之二 运维智能化 解决1/2,23,PaaS设计目标之二 运维智能化 解决2/2,24,Cloud Foundry基于消息的内部神经系统,uaa,ccdb,nats,health manager,25,nats解决了什么问题?,高可用的 模块自发现 模块之间的松耦合 高性能的 非阻塞的 编程简化 基于事件和消息的模块通讯,26,发布者,主题,订阅者,订阅者,订阅者,hello,hello,hello,hello,带线程池的多路Reactor
9、模式(nats背后的原理),27,耗时IO操作不会阻塞线程 避免了多线程切换 降低了线程占用的内存,Cloud Foundry逻辑视图,PC 浏览器访问,health manager,VMC client,Mobile App访问,STS Plugin,Router 路由 (Nginx + Locator Service),NATS 消息总线,service pool,MySQL,MongoDB,Radis,RabbitMQ,cc - db,package cache,blobstore,Caldecott,Oracle,Legacy App,28,PaaS设计目标之三 支持按需服务/付费,2
10、9,PaaS设计目标之三 支持按需服务/付费 分析,30,PaaS设计目标之三 支持按需服务/付费 解决,31,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例情况,开发平台设计目标之一 平台开放性,33,平台开放性 分析,34,平台开放性的实现-1/3,35,平台开放性的实现- 2/3,36,平台开放性的实现- 3/3,37,平台开放
11、性的实现之四-通过Services Broker与现有企业服务的集成,service gateway,创建,绑定,system service,使用,绑定,使用,service broker,企业服务,38,开发平台设计目标之二 开发人员友好性,39,开发人员友好性 分析,40,开发人员友好性的实现,41,Spring Tool Suite plugin,42,Cloud Foundry逻辑视图 回顾,PC 浏览器访问,health manager,VMC client,Mobile App访问,STS Plugin,Router 路由 (Nginx + Locator Service),NA
12、TS 消息总线,service pool,MySQL,MongoDB,Radis,RabbitMQ,cc - db,uaa - db,uaa - AuthN,package cache,blobstore,Caldecott,Oracle,Legacy App,43,NATS,other,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例
13、情况,大企业私有PaaS云,45,现状描述,46,PaaS解决的问题和带来的价值,47,PaaS解决的问题和带来的价值,48,PaaS解决的问题和带来的价值,49,PaaS解决的问题和带来的价值,50,大企业私有云 产品分析,51,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例情况,应用如何访问CF中的应用,App Instance,
14、Service,Request,Load Balancing and Routing,Response,“vmc push MyApp”,Web Interface,CF中的应用如何自动升级更新,Service,Service,前一 版本,停止运行,代码更新,新版本运行,“vmc update MyApp”,Java Grails Java_web Lift Scale web framework Spring Ruby Rack Rails3 Sinatra,Python Django Wsgi Python的CGI Other Platform Static page node.js Er
15、lang php Standalone,支持的运行时框架,开源支持 .Net Haskell PHP,Mainstream Mongodb Mysql Neo4j Postgresql Redis,Storage FileSystem Remote NFS VblobAmazon S3 memcache Message RabbitMQ Big Data Hadoop,支持的服务,Cloud Foundry PaaS Cloud Foundry主要是服务注册和运行时的管理层,各个组件是可以动态发现和松耦合的,通过HTTP终点探测健康状态,Agent可以控制状态并配置动作,一个元素的故障不影响其
16、他元素,Cloud Foundry的部件模块,Cloud Foundry BOSH 部署和管理大规模的分布式系统,以最少的停机时间持续的、可预测的更新系统. 包括各种IaaS的接口: vSphere, vCloud, AWS,OpenStack. 这是个开放平台,提供API支持其他IaaS,Running Cloud Foundry,Cloud Foundry BOSH,Cloud Provider Interface,User Authentication and Authorization,Dynamic Router,DEA Pool,Service Gateway,Apps,Servi
17、ce Connector,Health Manager,Messaging,Cloud Controller,Build Packs,Cloud Foundry BOSH,Service Nodes,Cloud Foundry Components,动态路由器 此动态路由器 s路由所有外部系统的请求 (HTTP/API),以及应用请求.维持一个动态的路由表 对每个负荷均衡的应用实例维护一个对外的IP地址、端口路由表,动态路由器,主要功能: 负荷均衡 维护路由表 访问日志,协议支持: HTTP连接字串 支持非HTTP协议 应用相关的指标收集 吞吐量 反应时间 带宽 HTTP返回码,Cloud F
18、oundry Components,DEA(液滴执行代理) 一个DEA (Droplet Execution Agent)就是一个安全的完全隔离的容器 比如一个虚机(VM),可以运行多个应用. DEAs负责应用的生命周期管理:构建、启动和停止应用,跟踪所有的实力,周期性的广播状态信息. Buildpacks 在DEA中创建应用体,DEA,主要功能: 管理Linux容器 (Warden) 进程 文件系统 网络 内存 管理应用生命周期 应用日志和文件流 DEA心跳 (nats to cc, hm),其他功能: 放置空间 共享的运行时,Droplet 指把提交的源代码及Cloud Foundry 配
19、置好的运行环境(如Java Web 就是一个Tomcat),再加一些控制脚本,如start/stop 等,全部打包在一起的tar 文件。 Staging App 是指制作Droplet,然后把它存储起来的过程。Cloud Foundry 会保存这个Droplet,直到启动(start)一个App 时,一台部署了DEA 模块的服务器会来拿这个Droplet的副本去运行。因此,如果将App 扩展到10 个实例(instance),那么这个Droplet 就会被复制10 份,供10 台DEA 服务器运行。,DEA的隔离机制,一、通过Warden来实现Droplet的隔离, Warden是一个程序运行
20、容器。这个容器提供了一个孤立的环境,Droplet只可以获得受限的CPU,内存,磁盘访问权限,网络权限。 二、通过Warden避免 避免应用可以随意访问文件系统,也可以在内网畅通无阻,跑满CPU,占尽内存,写满磁盘。 三、Warden在Linux上的实现是将Linux 内核的资源分成若干个namespace加以区分,底层的机制是CGROUP。这样的设计比虚拟机性能好,启动快,也能够获得足够的安全性。在网络方面,每一个Warden实例有一个虚拟网络接口,每个接口有一个IP,而DEA内有一个子网,这些网络接口就连在这个子网上。安全可以通过iptables来保证。在磁盘方面,每个warden实例有一
21、个自己的filesystem。这些filesystem使用aufs实现的。Aufs可以共享warden之间的只读内容,区分只写的内容,提高了磁盘空间的利用率。因为aufs只能在固定大小的文件上读写,所以磁盘也没有出现写满的可能性。 四、为何不用LXC LXC是另一个Linux Container。那为什么不使用它,而开发了Warden呢。因为LXC的实现是和Linux绑死的,CloudFoundry希望warden能运转在各个不同的平台,而不只是Linux。另外Warden提供了一个Daemon和若干Api来操作,LXC提供的是系统工具。还有最重要的一点是LXC过于庞大,Warden只需要其中
22、的一点点功能就可以了,更少的代码便于调试。,构建包(Buildpacks ),其他功能: vFabric Import tool Buildpack manager Enhanced caching Version policy,主要功能是: Staging /bin/detect /bin/compile 配置droplet Runtime (Ruby/Java/Node/Python) Container (Tomcat/Websphere/Karaf) Application (.WAR, .rb, .py),Cloud Foundry Components,消息机制 一个非常快速的内部
23、消息总线 (NATS)管理所有的系统通讯,通过发布订阅模式,Message Bus (NATS),主要功能: 非持久化的消息传输 发布/订阅 队列 (应用事件) 直接的消息 (INBOX),其他功能: 支持鲁壮的消息总线接口 水平扩展,Cloud Foundry Components,云控制器(Cloud Controller) Cloud Foundry 的管理模块。简单来说,就是与VMC 和STS 交互的服务器端,它收到指令后发消息到各模快,管理整个云的运行,相当于Cloud Foundry 的大脑。 云控制器 提供了和客户端的接口 (cf, STS, Eclipse) ,支持应用供应控制
24、,对域对象提供了RESTful的API接口 (apps, services, organizations, spaces, service instances, user roles, and more).,CLI,Cloud Controller,主要功能: 期望的应用状态 安全论证/许可 组织架构/Spaces/用户 服务管理 应用放置 应用期望的状态汇聚 审计/日志帐务事件 块存储,其他功能: 可用区感知的放置 可配置的网络策略 论证范围和角色映射 支持查询的增强的审计,Cloud Foundry Components,健康管理器 健康管理器 监控应用的正常运行时间/健康度,查找不匹配的
25、应用状态(期望的/实际的). 云控制器提供了期望的状态,DEA提供实际的状态,如果健康管理器发现当前状态和预期的不一致,就会提示云控制器,Health Manager,主要功能: 维护应用的实际状态 和预期状态对比 发送建议,确保和预期和实际状态相符,其他功能: 支持短生命周期的应用 可配置的重启策略 水平扩展,Cloud Foundry Components,服务网关 服务网关对本地服务或是第三方服务提供了接口,对服务的处理运行于Service Nodes或是外部第三方的SaaS服务 (e.g., email, messaging, database, storage, etc.).,Ser
26、vice Gateways,主要功能: 服务目录 对服务节点的服务进行创建、删除、绑定、解绑 查询现有的实例数,接受云控制器来的绑定要求 SaaS的服务网关,其他功能: 支持多节点 支持单一服务 松耦合,Cloud Foundry Components,服务连接器 服务连接器提供了一个外部服务的接口 (e.g. Oracle DB). 外部服务是不受CF的控制 (也即,没有使用服务节点,提供一个连接字符串 (e.g. JDBC) 给CF,对开发者而言,和其他CF服务是一样的,Service Connector,主要功能: 元数据管理,其他功能: 服务类型模板 创建服务类似实例的各种模板(Ora
27、cle and SQLServer) 提供选择,使得服务实例可以跨空间共享,Cloud Foundry Components,UAA The User Authorization and Authentication system provides user identity, security and authorization services. It manages third party Oauth 2.0 access credentials. It can also provide application access and identity-as-a-service for a
28、pps running on Cloud Foundry.,UAA and Login Servers,Responsibility for: Token Server ID Server (User management) OAuth Scopes (Groups) Login UI Access auditing,Roadmap: LDAP Login Server Active Directory Login Server Horizontally scalable Login Server App User Management Service,敏捷开发,代码开发,App1程序员Joh
29、n的工作环境,Other dev apps,代码开发,App1程序员Mary的开发环境,Other dev apps,QA,QA,App1QA版本,Other QA apps,Production,PRODUCTION,App1生产上线版本,Other Prod apps,无需修改代码和配置!,“从有想法到生产上线-一天内”,CF对多云的支持机制,Cloud Foundry 允许您编写应用程序一次,即可部署到任何 Cloud Foundry 实例,不论是公有云还是私有云,甚至是微云,从而帮助您将应用程序变为多云。,CF对多云的支持机制,DEA 动态执行代理作为独立实体运行,执行云控制器(Clo
30、ud Controller)发出的请求。由于 DEA 是独立的,它可以为应用程序提供一个运行位置,应用程序不必知道自己在哪里执行(就像在传统的操作系统中一样)。服务网关 提供一种通用/统一的方式,向 DEA 上运行的应用程序公开服务(数据库、消息队列、存储等)。通过通用一致的方式向运行的应用程序公开服务,它的可移植性提高了。环境变量 实现应用程序可移植的最后一步是,以标准方式向所有应用程序运行时提供服务凭据。在所有 Cloud Foundry 实施中,这是通过注入 JSON 文档作为环境变量完成的,这些变量将列出绑定到应用程序的所有服务及其凭据。当开发人员编写代码以利用此功能时(通过解析 JS
31、ON 本身或利用诸如 Spring 3.1 配置文件这样的框架功能),应用程序可以在 Cloud Foundry 的任何实例上运行,无须对代码进行修改。,CF开发IDE环境Cloud Foundry Integration for Eclipse,安全模型,目录,Paas和IaaS的区别和PaaS价值 CloudFoundry的设计目标、原理 CloudFoundry支持的敏捷开发 企业私有云解决的问题和建设价值 CloudFoundry的功能架构 CloudFoundry的应用部署和大规模部署 CloudFoundry的弹性计算 CloudFoundry的案例情况,500 5,000 VMs
32、 40+ unique node types 75+ unique software packages 75+ unique environments Small team,CloudF生产系统部署的实例,dev_setup 手工部署 直接在操作系统(ubuntu 10.04)中用脚本部署 可部署单结点或多结点 适合小规模的环境 支持虚拟机和物理机 每台机器需要手工安装和修改配置文件 系统扩容能力和弹性计算较差,Cloud Foundry两种部署方法(1),Application Deployment Flow,Application Deployment Flow (cont.),BOSH
33、自动部署 自动化大规模部署多结点系统 集中式的配置文件 支持自动化系统扩容 仅支持虚拟机 对各类IaaS平台集成 (CPI) 在C生产系统中使用,Cloud Foundry两种部署方法(2),BOSH Logical View,BOSH Deploys and manages large scale distributed systems. BOSH provides the means to go from deployment (i.e., Chef/Puppet) to VM creation and management (i.e., cloud CPI). It includes i
34、nterfaces for vSphere, vCloud, AWS and OpenStack. Additional CPI can be written for alternative IaaS providers.,部署系统 更新配置 版本管理 监控运行,BOSH在Cloud Foundry中的作用,BOSH的内部结构,BOSH部署原理(1),BOSH CLI,Operation Staff,BOSH,BOSH是部署系统的总指挥 管理员通过BOSH CLI工具发送指令给BOSH,BOSH部署原理(2),BOSH CLI,IaaS,Operation Staff,创建虚拟机,BOSH,C
35、PI,CPI ( Cloud Provider Interface)支持多种 IaaS BOSH通过CPI管理IaaS层资源(虚拟机、虚拟存储、虚拟网络等),BOSH部署原理(3),Inner Shell,. . .,BOSH CLI,IaaS,VM,Operation Staff,创建虚拟机,VM,VM,VM,BOSH,CPI,BOSH调用CPI动态生成虚拟机 Inner Shell 被管理的部分,BOSH部署原理(4),Inner Shell,. . .,BOSH CLI,IaaS,VM,Stemcell,Operation Staff,Deployment,创建虚拟机,VM,VM,VM,BOSH,CPI,Stemcell提供虚拟机模板 Deployment manifest定义部署细节: IP地址、用户名/密码等,BOSH部署原理(5),Inner Shell,. . .,BOSH CLI,IaaS,Stemcell,Deployment,Operation Staff,创建虚拟机,BOS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年新疆塔城市高校毕业生“三支一扶”计划招募12人笔试题库(培优)附答案详解
- 2026江苏盐城市卫生健康委员会部分直属事业单位面向博士研究生招聘18人备考题库新版附答案详解
- 2026江西南昌医学院“银龄教师”招募5人模拟试卷及完整答案详解(必刷)
- GB/T 47807-2026石油天然气工业用耐微生物腐蚀钢管
- 2026文化面试题库及答案
- 2026武术教师面试题目及答案
- 2026消管中心面试题目及答案
- 2026乘务长考试面试题及答案
- 物流货运合同
- 重晶石开采劳务合同
- 《重大活动直转播安全传输保障工作指南(试行)》
- HSK教材的课件俄语
- GB/T 46204-2025药品冷链物流追溯管理要求
- 江苏省苏州市2024-2025学年高三上学期开学考试(期初阳光调研)数学试卷
- 部队营房维修管理课件
- 比亚迪项目采购管理办法
- 新版gmp指南培训课件
- 2025年湖南岳阳市平江县润恒自来水有限公司招聘笔试参考题库含答案解析
- 完整版八年级物理浮力压强计算题(含答案)
- DB50T 703-2016 电梯无脚手架安装工艺安全操作规范
- 医院获得性肺炎预防与控制
评论
0/150
提交评论