Pivotal云原生和PaaS平台-C课件

上传人:94****0 文档编号:241292939 上传时间:2024-06-15 格式:PPTX 页数:82 大小:7.75MB
返回 下载 相关 举报
Pivotal云原生和PaaS平台-C课件_第1页
第1页 / 共82页
Pivotal云原生和PaaS平台-C课件_第2页
第2页 / 共82页
Pivotal云原生和PaaS平台-C课件_第3页
第3页 / 共82页
点击查看更多>>
资源描述
Copyright2013Pivotal.Allrightsreserved.Copyright2013Pivotal.Allrightsreserved.PaaS时代云平台建设和应用云化之路PaaS时代云平台建设和应用云化之路Copyright2013Pivotal.Allrightsreserved.目录云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架PAAS的生产案例目录云原生应用架构和原理Defining Cloud Native Cloud native is a term describing software designed to run and scale reliably and predictably on top of potentially unreliable cloud based infrastructure.概念澄清CloudNativeCloud Native 包括两个方面1、Cloud Native Framework-应用框架,应用框架和设计本身适合运行在云上2、Cloud native Platform,部署和运行环境业界有些思路是应用运行在容器中就是Cloud Native,缺乏应用框架的支持。概念澄清Cloud NativeCloud Native Copyright2013Pivotal.Allrightsreserved.区别于传统应用-互联网应用的需求带来新技术-新技术带来运维全自动化需求是持续发展的是一个产品,持续发展用户访问量难以预测,而且一般是持续增长用户访问的并发量是万级、十万、百万在线业务,业务不能停顿,互联网应用24小时服务,任何时候中断服务都是事故。传统应用特征互联网应用特征需求比较固定是个项目,完成以后就是运维用户访问量可以预测,较为固定用户访问的并发量在百级、千级非在线业务,允许一定时间的业务停顿(比如夜间停机),包括系统维护等,敏捷业务,敏捷开发持续集成应用平台的弹性支持海量并发业务不停顿,灰度发布,发布回滚,系统在线升级。互联网应用技术要求云原生云原生应用架构用架构云原生应用框架云原生应用平台区别于传统应用-互联网应用的需求带来新技术需求是持续发展的Copyright2013Pivotal.Allrightsreserved.传统巨石应用和云原生微服务应用的概念模型关系数据库数据访问服务/EJB/JavaBeanHTMLJavaScriptMVC服务传统一体化架构的应用浏览器HTTPHTTPHTTPHTTPHTTPHTTPAMQPAMQP关系型数据库Key/Value数据库(NoSQL)图形数据库传统巨石应用和云原生微服务应用的概念模型关系数据库数据访问服Copyright2013Pivotal.Allrightsreserved.传统巨石应用的特征和面对的问题-难以运维全自动化故障有可能发生随时备份数据,用于服务恢复不惜一切代价保证服务器的运行当服务器宕机时-摊上大事了基础设施恢复自动或者手动应用恢复手动应用模块紧耦合无法根据负载自动扩展很难持续集成应用聚合困难(ESB)应用升级麻烦端口变化负载增加配置变化环境依赖代码变化RTO/RPO传统巨石应用的特征和面对的问题-难以运维全自动化端口变云原生应用的特征符合十二要素微服务自服务的敏捷基础设施基于API的协作Antifragility(反脆弱性)云原生应用的特征 符合十二要素8原生云架构原生云架构应用框架应用运行时基础架构自动化引擎基础架构文化文化/角色角色开发人员开发人员运维人员运维人员运维人员支撑支撑SpringCloudSpringBootCloudFoundryBOSHAWSVMWareOpenStackAzure应用云原生架构只有容器是不够的12 Factor AppBOSH ReleaseCloud Provider Interface8原生云架构应用框架应用运行时基础架构自动化引擎基础架构文化9CNA架构需面对的难点分布式系统的复杂性远程调用多跨多个服务的应用功能设计依赖性管理/API版本化重构模块的边界无状态和有状态的分离(无状态改装不是必须的)9CNA架构需面对的难点分布式系统的复杂性10Source:“MicroservicePrerequisites,”MartinFowler,August2014.采用CNA的必要基础需要开发、测试、运行平台的支持快速提供应用环境通用的框架基本的监控快速应用部署DevOps的支持10Source:“Microservice Prereq11PAAS提供对CNA的支撑应用环境的自动化供应按需的/自动化的弹性伸缩四重的故障自动恢复/自愈能力自动的路由/负载均衡数据服务的运维自动化基于平台的监控和基于应用的监控,二者的结合微服务的框架通用的应用服务(日志、APM、Session共享)11PAAS提供对CNA的支撑应用环境的自动化供应目录Pivotal的业界大牛云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架PAAS的生产案例目录Pivotal的业界大牛Copyright2013Pivotal.Allrightsreserved.PaaS的业务驱动力和要解决的问题PaaS要解决要解决的问题的问题业务敏捷性业务敏捷性业务敏捷开发敏捷部署敏捷移动计算应用和系统的应用和系统的可用性可用性系统可用性应用可用性运维运维自动化自动化应用零运维服务运维高度自动化PaaS的业务驱动力和要解决的问题PaaS要解决的问题业务敏Copyright2013Pivotal.Allrightsreserved.p通过十二要素来规范应用p通过PaaS在平台层面支撑十二要素p应用需要即时弹性,而且需要运维的高度自动化(部署、故障恢复、自动扩容缩容),应用多是无状态,无状态即公牛机制,通过服务来实现有状态,p而服务不太需要即时弹性,服务更多是有状态,服务的运维自动化即时性要求不高,有状态就要去有备份、恢复等。p服务的运维需要各种工具,很多时候会需要人工介入,比如数据库调优、故障恢复,而应用的运维可以高度自动化、无需人工介入,主要通过日志分析,服务更适合运行在虚机,而应用适合运行在容器中。p由于服务的有状态,不容易实现即时恢复,所以服务的可用性要求、资源独享性更高,共享OS内核不适合服务p区分IaaS和PaaSpIaaS实现基础设施池化pPaaS实现应用相关的功能p通过PaaS来驱动IaaS,实现运维自动化十二要素1区分应用和服务2区分IaaS和PaaS3PaaS三大理论基础通过十二要素来规范应用应用需要即时弹性,而且需要运维的高度自Copyright2013Pivotal.Allrightsreserved.PaaS的理论基础云原生应用的十二要素1.基准代基准代码:一份基准代码,多份部署。基准代码和应用之间总是保持一一对应的关系。所有部署的基准代码相同,但每份部署可以使用其不同的版本。2.依赖:显式声明依赖关系。应用程序一定通过依赖清单,确切地声明所有依赖项。3.配置:配置:在环境中存储配置。将应用的配置存储于环境变量中。环境变量可以非常方便地在不同的部署间做修改,却不动一行代码。4.后端服后端服务:不区分本地和远端服务。不要把服务打包在应用中,通过绑定或是DNS寻址。5.构建,发布,运行:严格区分构建,发布,运行这三个步骤,不要再运行中去改配置。6.进程:程:以一个或多个无状态进程运行应用。应用的进程必须无状态且无共享。7.端口端口绑定:定:通过端口绑定提供服务。应用完全自我加载而不依赖于任何网络服务器就可以创建一个面向网络的服务。8.并并发:通过进程模型进行扩展,开发人员可以运用这个模型去设计应用架构,将不同的工作分配给不同的进程类型,每个进程均可以并发,可以弹性伸缩。9.易易销毁性:性:快速启动和优雅终止可最大化健壮性。应用的进程是可销毁的,意思是说它们可以瞬间开启或停止。10.开开发环境与境与线上上环境等价:境等价:尽可能保持开发、预发布、线上环境相同。应用想要做到持续部署就必须缩小本地与线上差异。11.日志日志:把日志当作事件流。应用本身考虑存储自己的输出流。不应该试图去写或者管理日志文件。12.管理进程:基于某个发布版本运行。后台管理代码应该随其他应用程序代码一起发布,从而避免同步问题。PaaS的理论基础云原生应用的十二要素1.基准代码:一份基Copyright2013Pivotal.Allrightsreserved.为发挥PaaS最大价值,传统应用架构转变为云原生应用遵循云原生架构原则开发的应用,适应于部署在PaaS云上的应用,能够充分发挥PaaS价值的应用就是云原生应用传统巨石应用云原生应用应用平台PaaS平台IT基础设施PaaS平台驱动的IaaS微服务(开发相关)符合十二要素(开发/平台相关)Antifragility/反脆弱性(开发/平台相关)自服务的敏捷基础设施(平台相关)为发挥PaaS最大价值,传统应用架构转变为云原生应用遵循云原Copyright2013Pivotal.Allrightsreserved.云原生应用解决了哪些传统巨石应用的问题很很难根据根据负载自自动扩展展自自动,水平,水平扩展展应用模用模块牵一一发而而动全身全身应用由多个微服用由多个微服务组成,松耦合成,松耦合应用的恢复是靠人工的用的恢复是靠人工的 应用的恢复是自用的恢复是自动化的化的 应用系用系统的物理的物理环境境错误导致致业务停停顿 应用的物理用的物理环境的出境的出错是可以接受的是可以接受的不不遗余力的保障物理机的运余力的保障物理机的运转 物理机物理机对应用不是那么重要用不是那么重要物理机的宕机是一件特大事故!物理机的宕机是一件特大事故!没什么大惊小怪的!没什么大惊小怪的!积极极备份数据以便份数据以便应用用环境出境出错时恢复恢复 设计时要尽量避免数据恢复的必要要尽量避免数据恢复的必要升升级时候不睡候不睡觉灰度灰度发布、布、发布回布回滚一期一期项目就半年,一期接一期目就半年,一期接一期持持续集成集成云原生应用解决了哪些传统巨石应用的问题很难根据负载自动Copyright2013Pivotal.Allrightsreserved.相对巨石应用,云原生应用引入了哪些技术传统巨石应用云原生应用垂直扩展;硬件定义可靠性水平扩展;应用设计消除对基础设施的依赖性虚拟化轻量级运行环境(容器,进程,PaaS平台)3层架构,有状态,紧耦合松耦合,微服务,API对操作系统和虚机有察觉和依赖通过容器和SpringBoot抽象于操作系统,管理员控制系统控制(自动扩展,自动配置,自动恢复)瀑布式开发敏捷开发敏捷开发持续集成,持续部署,DevOps相对巨石应用,云原生应用引入了哪些技术传统巨石应用云原生应用Copyright2013Pivotal.Allrightsreserved.云原生应用的关键设计之一-容错性设计微服务要求应用需要有能容忍服务的故障的设计,客户端需要尽可能的优化这种场景的响应。这将让微服务团队时刻的想到服务故障的情况下用户的体验。为每个应用的服务及数据中心提供日常故障检测和恢复。这种产品中的自动化测试可以让大部分的运维团队正常的上下班。由于服务可以随时故障,快速故障检测,乃至,自动恢复变更非常重要。微服务应用把实时的监控放在应用的各个阶段中,检测构架元素(每秒数据库的接收的请求数)和业务相关的指标(把分钟接收的定单数)。监控系统可以提供一种早期故障告警系统,让开发团队跟进并调查。对于微服务框架来说,这相当重要,因为微服务相互的通信可能导致紧急意外行为。监控是至关重要的,它能快速发现这种紧急不良行为,让我们迅速修复它。微服务团队期望清楚的监控和记录每个服务的配置,比如使用仪表盘显示上/下线状态、各种运维和业务相关的指标。对断路器(circuitbreaker,定时检测服务状态)状态、目前的吞吐量和时延细节,我们也会经常遇到。云原生应用的关键设计之一-容错性设计微服务要求应用需要有能Copyright2013Pivotal.Allrightsreserved.传统巨石应用和互联网应用运作运维模式的不同产品不是品不是项目目u传统应用的开发模式:提供一些被认为是完整的软件。一旦开发完成,软件将移交给维护部门,然后,开发组就可以解散掉了。u互联网应用(微服务)认为认为开发组应该负责产品的整个生命周期。一个常见的证明是:Amazon的“你编译,你运维(youbuild,yourunit)”的理念,它要求开发团队对软件产品的整个生命周期负责。这要求开发者每天都关注软件产品的运行情况,并与用户联系的更紧密,同时承担一些售后支持。u成熟的产品会与业务功能进行绑定。除了把软件看成既定功能的集合外,会进一步关心“软件如何帮助用户实现业务功能”这样的问题。u采用整体型的架构也有其应用场景,但是越小的服务粒度越容易促进用户与服务运营商之前的关系。传统巨石应用和互联网应用运作运维模式的不同产品不是项目Copyright2013Pivotal.Allrightsreserved.互联网应用开发的组织架构和传统巨石应用开发模式的不同界面开发人员中间件业务开发人员数据库管理员业务能力A业务能力B业务能力C烟囱式功能开发团队烟囱式应用架构跨功能开发团队微服务架构数据访问服务/EJB/JavaBeanHTMLJavaScriptMVC服务围绕业务能力能力进行行组织微服务架构有以下几个特点:u每个服务只需要做好一件事,更加专注和简单u用合适的工具来做合适的事情u服务(产品)之间是松耦合的,独立部署u服务(产品)的团队之间是相互独立的u单一功能的改变只需要重新构建部署相应的服务即可互联网应用开发的组织架构和传统巨石应用开发模式的不同界面开发Copyright2013Pivotal.Allrightsreserved.传统巨石架构和互联网应用架构双轨运行(Bi-Modal)现代代应用框架用框架+SQL可深度可深度扩展的分析数据平台展的分析数据平台MPP Database实时数据平台数据平台重量重量级应用中用中间件件传统磁磁盘RDBMSOLTP应用统一一OLTP应用用/OLAP 实时分析分析ETL传统数据数据仓库OLAP应用服服务平台平台Neo4J移移动框架框架DS应用分发Jenkinscassandra数据同步云存储MongoDBTracker推送Redis流处理传统巨石架构和互联网应用架构双轨运行(Bi-Modal)现代Copyright2013Pivotal.Allrightsreserved.目录Pivotal的业界大牛云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架PAAS的生产案例目录Pivotal的业界大牛Copyright2013Pivotal.Allrightsreserved.PaaS的几大架构要点运维自动化严格区分PaaS和IaaS运维通过PaaS来驱动IaaS的运维平台在线升级平台在线补丁应用服务器在线升级4重故障自动恢复自动弹性伸缩灰度发布提供策略接口,运维模式自动化固化后定制实现全方位监控机制IaaS平台层监控PaaS部件业务逻辑层监控基于平台的应用无差别监控APM(应用性能监控)容器的监控PaaS应用微服务框架通过应用框架结合PaaS来实现新的自动化运维模式通过框架实现弹性伸缩通过框架实现对应用的调用监控通过框架实现故障截流、探测后自动恢复PaaS的几大架构要点运维自动化严格区分PaaS和IaaS运Application FrameworkServicesDatabaseObjectStorageUserProvidedCircuitBreakers.NETSpringBootNode.jsRubyonRailsPaaS应用运行用运行时和运和运维自自动化化系统在线自升级OpenStackAmazonVMwareIaaS基基础设施施自自动化化(CPI)虚机故障自动恢复 物理机故障自动恢复高可用性区网络隔离自动弹性伸缩应用安全组APM 应用一键部署应用计量服务计量系统提醒自动容器调度容器故障自动恢复 应用故障自动恢复多IaaS混合支持虚机全生命周期管理应用灰度发布 应用发布回滚异地双活日志自动采集聚合PaaS应用平台用平台JavaTomcatGoPHPRubyNode.JSPython.NetWeblogicWebsphereC/C+JettyPlayResinPaaS应用通用通用功能平台化用功能平台化Session共享 日志分析APM应用和配置解耦服务自动安装、升级服务套餐化平台定制租户管理动态路由SSOLDAP集成BuildCIPaaS应用服用服务Spring微服务框架远程文件共享API管理PaaS CI/CDDevOps服服务SpringBoot服务注册和自动发现集中配置管理短路开关和监控数据消息服务mySQLMongoDBCassandraNeo4JRedisKafkaRabbitMQRiakCS流服务移动计算服务应用分发APIGateway数据同步应用分析大数据服务PivotalHadoopGreenPlum服务EclipseJava插件微软Studio插件GitHubJenkinsArtifactoryPaaS功能架构图运维自动化门户容器集群管理容器引擎容器注册系统安全性CaaS/Docker也有的功能系统监控Application FrameworkServicesD25Copyright2013Pivotal.Allrightsreserved.PaaS的业界逻辑架构26Source:Structured预集成和测试过的解决方案开箱即用的功能“Justworks”,特定需求进行定制Unstructured定制工作量比较大,针对每种不同的unstructured的需求进行定制基于容器或容器镜像为主带来非常好的灵活性,当时构建的代价高PaaSPlatform对开发者可见部分MessageBus/Queuing/RoutingServiceBrokersCapacityPlanningLoggingMonitoringApplicationStaging/ApplicationServicesApplicationSchedulingContainerSchedulingServiceDiscoveryContainerClusterManagementContainerNetworkingContainerRuntimeContainerOSContainerRuntimeContainerOSPhysicalHost(orVM)PhysicalHost(orVM)DevOpsToolsContainerContainerContainerConfigurationManagementMarketplace/ImageManagementSecurityContainerContainerContainer两类实现Docker生态圈PaaS的业界逻辑架构26Source:StructurCopyright2013Pivotal.Allrightsreserved.VMWare vSphereOpenStackCloud StackAWSCPI(Cloud Programming Interface)BOSH(IaaS运运维自自动化化)服服务运运维自自动化化服服务解决有状解决有状态问题BoshdeploymentCfpush动态路由服路由服务/API管理服管理服务应用微服用微服务SpringBootSpringCloud服务.Net容器容器调度度数据微服数据微服务ETL批处理流数据数据处理mySQLRedisRabbitMQGemFire会话共享CassandraPostgreSQL平台运平台运营层应用运行时CI/CD自愈弹性伸缩监控管理租户管理PAAS逻辑架构VMWarevSphereOpenStackCloudSCopyright2013Pivotal.Allrightsreserved.VMWare vSphereOpenStackCloud StackAWS调用用IaaS接口接口标准准-CPI(Cloud Programming Interface)BOSH(IaaS运运维自自动化化)服服务BoshdeploymentCfpush应用和微服用和微服务调用用标准准Restful HTTP容器容器-OCI标准准mySQLRedisRabbitMQGemFire会话共享CassandraPostgreSQL平台运平台运营层应用打包标准BuildpackSSO标准Oath2/SAML用户目录标准LDAPPaaS涉及的标准服服务运运维自自动化化标准准Service Broker应用交付用交付标准准十二要素十二要素服服务安装包安装包标准准BOSH Release日志采集标准RELPVMWarevSphereOpenStackCloudSCopyright2013Pivotal.Allrightsreserved.云原生应用的关键设计之一-容错性设计微服务要求应用需要有能容忍服务的故障的设计,客户端需要尽可能的优化这种场景的响应。这将让微服务团队时刻的想到服务故障的情况下用户的体验。为每个应用的服务及数据中心提供日常故障检测和恢复。这种产品中的自动化测试可以让大部分的运维团队正常的上下班。由于服务可以随时故障,快速故障检测,乃至,自动恢复变更非常重要。微服务应用把实时的监控放在应用的各个阶段中,检测构架元素(每秒数据库的接收的请求数)和业务相关的指标(把分钟接收的定单数)。监控系统可以提供一种早期故障告警系统,让开发团队跟进并调查。对于微服务框架来说,这相当重要,因为微服务相互的通信可能导致紧急意外行为。监控是至关重要的,它能快速发现这种紧急不良行为,让我们迅速修复它。微服务团队期望清楚的监控和记录每个服务的配置,比如使用仪表盘显示上/下线状态、各种运维和业务相关的指标。对断路器(circuitbreaker,定时检测服务状态)状态、目前的吞吐量和时延细节,我们也会经常遇到。云原生应用的关键设计之一-容错性设计微服务要求应用需要有能Copyright2013Pivotal.Allrightsreserved.PaaS运维自动化的前提-全方位的监控IaaS平台层监控PaaS部件业务逻辑层监控基于平台的应用无差别监控容器的监控APM(应用性能监控)PaaS部件业务逻辑层监控CloudController等待任务数任务调用出错数任务调用正常数用户总数错误日志总数。Router内部Controller的反应时间应用访问反应时间时间(1分钟)拒绝请求数BadGateway数量TPS返回5XX、4XX、3XX、2XX的数量返回4XX总调用数。PaaS部件业务逻辑层监控从各个PAAS的部件采集BOSH和CF的各项指标,所有经过BOSH部署的虚机均会采集指标各项指标通过Collector采集到OpsMetrics部件OpsMetrics提供了JMX接口供外界调用PaaS运维自动化的前提-全方位的监控IaaS平台层监控Copyright2013Pivotal.Allrightsreserved.PAAS的应用监控(PAASMetrics)无源监控指标包括:HTTP吞吐量TPSHTTP的平均反应时间HTTP调用的错误率CPU、内存、磁盘的实时利用率应用的状态:启动、停止、弹性身上、升级、故障等开发者可以随时查看应用的实时监控信息24小时数据回溯应用无需嵌入任何agent 监控的第一步:实时监控数据流和历史数据结合PAAS的应用监控(PAASMetrics)无源监控指Copyright2013Pivotal.Allrightsreserved.监控的第二步-需要集成日志,形成综合监控给应用开发人员排除故障的一个集成视图(接口)通过监控指标、事件来排查健康度以及性能问题,然后通过时间、应用ID等关联到日志进行深入分析关键功能:灵活的文本搜索聚合应用和PAAS的平台部件(API,Diegocell,Router,etc.),PAAS内部处理(StagingandHealthchecks),STDOUT/STDERR等监控的第二步-需要集成日志,形成综合监控给应用开发人员Copyright2013Pivotal.Allrightsreserved.PAASMetrics1.1PAASMetrics1.1Copyright2013Pivotal.Allrightsreserved.根据应用事件和预置的阀值,给应用开发人员和运维人员提前预警对实时的数据流进行处理,一旦阀值被触发,实时发送Email给应用开发者和运维人员目标:易于管理和配置的阀值规则基于文本的信息丰富的提示Email:“为什么会发生”比“发生了什么”更重要”对于达到基本阀值变化和变化加速度等进行告警监控的第三步-提前告警对于虚机和平台部件,一旦阀值触发,提前给运维人员预警对实时的数据流进行处理,一旦阀值被触发,实时发送Email给运维人员对不同的平台部件配置不同的阀值(Diegocells目前提供200多个监控指标,未来还会提供更多,会比API提供更多的指标)根据应用事件和预置的阀值,给应用开发人员和运维人员提前预警监Copyright2013Pivotal.Allrightsreserved.监控的目标-自动化运维故障自动恢复应用故障自动恢复虚机故障自动恢复使用这些指标来驱动更高级的自动化:金丝雀的部署(automatedbluegreendeploysbasedonperformance)应用规模自适应(basedonpastusageandperformancepatterns)平台容量规划(basedoncurrentandprojectedapploads)监控的目标-自动化运维故障自动恢复Copyright2013Pivotal.Allrightsreserved.PaaS监控的发展方向通过机器深度学习识别故障模式解禁故障模式识别难的问题对于复杂的阀值设置规则链基于规则,对应用自动弹性伸缩和自动故障恢复提供一个平台仪表板,支持更多的平台指标自动化的报告机制PaaS监控的发展方向通过机器深度学习识别故障模式解禁故障Copyright2013Pivotal.Allrightsreserved.目录Pivotal的业界大牛云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架目录Pivotal的业界大牛Copyright2013Pivotal.Allrightsreserved.PaaS的价值链应用云原生应用PaaS平台基础设施应用零运维服务运维自动化DevOps持续集成/持续交付/持续部署敏捷业务持续高可用性业务连续性降低硬件开销基于轻量级小颗粒的容器技术PaaS的价值链应用云原生应用PaaS平台基础设施应用零运维Copyright2013Pivotal.Allrightsreserved.目录Pivotal的业界大牛云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架PAAS的生产案例目录Pivotal的业界大牛Copyright2013Pivotal.Allrightsreserved.BBSetcdCloudFoundry逻辑视图PC浏览器访问CF命令行MobileApp访问Eclipse开发工具动态路由器(GoRouter)NATS消息总线PCF提供的服务RabbitMQPCFDBuaa-AuthNVM虚机/CellDocker镜像应用系统WardencontainerLinuxGarden应用系统OpsPCF和服务安装、在线升级应用虚机NATS消息总线PCF系统虚机服务虚机UAA用户管理租户管理Web浏览器WinGarden应用系统VM虚机Cell集中日志采集HAProxyHAProxyGemFireSession共享Neo4JSpringXDmySQLHadoopcassandraSSHFSAPMRiakCSELK日志JenkinsAPIGateway动态路由器(GoRouter)动态路由器(GoRouter)云控制器BOSHRedis推送通知kafkaLDAP集成AZ支持IaaS/vSphereOauthSSOLDAP服务器授权服务器BBSetcdBBSetcd监控服务器自动化策略逻辑资源调度Diego大脑监控代理监控代理PCF监控S3兼容存储服务GitArtifactoryCassandraKLAIaaS/OpenStackIaaS/AWSVM虚机/Cell自动弹性伸缩 用量/计费提醒服务Web界面Spring微服务APMStager(组装器)Stager(组装器)serviceBroker应用监控集中日志采集PCFDBPCF运行时OauthSSO服务应用分发数据同步GemFireTrackerMongoDBPostGreSQLApigeeAPIAppDynamicSpring微服务应用监控BuildPack应用构建包BBSCloudFoundry逻辑视图PC浏览器访问C40Copyright2013Pivotal.Allrightsreserved.BBSetcdPCF流程应用一键部署PC浏览器访问CF命令行MobileApp访问Eclipse开发工具动态路由器(GoRouter)NATS消息总线PCFDBuaa-AuthNVM虚机/CellDocker镜像应用系统WardencontainerLinuxGarden应用系统OpsPCF和服务安装、在线升级NATS消息总线UAA用户管理租户管理Web浏览器WinGarden应用系统VM虚机Cell集中日志采集HAProxyHAProxy动态路由器(GoRouter)动态路由器(GoRouter)云控制器BOSHLDAP集成AZ支持IaaS/vSphereOauthSSOBBSetcdBBSetcd监控服务器自动化策略逻辑资源调度Diego大脑监控代理监控代理PCF监控S3兼容存储服务IaaS/OpenStackIaaS/AWSVM虚机/Cell自动弹性伸缩 用量/计费提醒服务Web界面Spring微服务APMStager(组装器)Stager(组装器)serviceBroker应用监控集中日志采集PCFDBPCF运行时BuildPack应用构建包1、应用部署命令(HTTPS)到PCF入口点HA-Proxy2、HA-Proxy轮询转发到GoRouter3、Router解析HTTPS,发现是应用部署,轮询转发到云控制器4、云控制器把代码上传到PCF的集中存储服务中。5、云控制器启动一个应用组装器实例,开始组装应用容器。6、应用组装器找到应用对应的Buildpack,根据Buildpack进行应用容器的构建。7、应用容器构建成功后,把镜像保存在PCF的集中存储服务中,通知云控制器构建成功8、云控制器通知Diego大脑找到按照调度算法找到一台共享虚机,在此虚机上运行应用容器9、此虚机Cell在PCF的集中存储服务中载入应用容器镜像,并启动容器。10、容器的应用随之被启动,Router探测应用是否已经启动,探测成功则注册到路由表中11、应用通过域名访问应用,通过HA-Proxy转发的Router。12、Router根据路由表按照路由算法把应用转发到对应的容器BBSPCF流程应用一键部署PC浏览器访问CF命令行41Copyright2013Pivotal.Allrightsreserved.BBSetcdPCF流程应用故障自动恢复PC浏览器访问CF命令行MobileApp访问Eclipse开发工具动态路由器(GoRouter)NATS消息总线PCFDBuaa-AuthNVM虚机/CellDocker镜像应用系统WardencontainerLinuxGarden应用系统OpsPCF和服务安装、在线升级NATS消息总线UAA用户管理租户管理Web浏览器WinGarden应用系统VM虚机Cell集中日志采集HAProxyHAProxy动态路由器(GoRouter)动态路由器(GoRouter)云控制器BOSHLDAP集成AZ支持IaaS/vSphereOauthSSOBBSetcdBBSetcd监控服务器自动化策略逻辑资源调度Diego大脑监控代理监控代理PCF监控S3兼容存储服务IaaS/OpenStackIaaS/AWSVM虚机/Cell自动弹性伸缩 用量/计费提醒服务Web界面Spring微服务APMStager(组装器)Stager(组装器)serviceBroker应用监控集中日志采集PCFDBPCF运行时BuildPack应用构建包1、应用Session集中管理2、监控服务从Cell中采集应用和容器状态,包括心跳信息、CPU、内存、磁盘等信息3、监控服务从Router中采集应用的SLA信息,如HTTP反应时间、TPS、错误率等4、PCF监控服务采集PCF集群各个模块的监控信息,比如虚机状态、心跳信息、虚机中PCF模块进程的状态等5、监控服务从PCF监控服务中获取相应信息6、监控服务也从BBS中获取各种信息。7、监控服务发现应用故障,比如是容器故障或是应用故障8、监控服务通知策略逻辑进行故障恢复处理9、策略逻辑通过Router删除故障应用实例的路由记录,HTTP请求不再转发到应用容器中去。10、策略逻辑模块通知资源调度模块按调度算法找一个空闲虚机11、找到空闲虚机Cell后,从PCF集中存储载入应用容器镜像,并启动容器。12、容器的应用随之被启动,Router探测应用启动成功后,注册到路由表,应用访问切换到新容器13、应用自动从Session共享服务中获取之前故障应用容器的Session信息GemFireSession共享BBSPCF流程应用故障自动恢复PC浏览器访问CF命42Copyright2013Pivotal.Allrightsreserved.BBSetcdPCF流程应用灰度发布PC浏览器访问CF命令行MobileApp访问Eclipse开发工具动态路由器(GoRouter)NATS消息总线PCFDBuaa-AuthNVM虚机/CellDocker镜像应用系统WardencontainerLinuxGarden应用系统OpsPCF和服务安装、在线升级NATS消息总线UAA用户管理租户管理Web浏览器WinGarden应用系统VM虚机Cell集中日志采集HAProxyHAProxy动态路由器(GoRouter)动态路由器(GoRouter)云控制器BOSHLDAP集成AZ支持IaaS/vSphereOauthSSOBBSetcdBBSetcd监控服务器自动化策略逻辑资源调度Diego大脑监控代理监控代理PCF监控S3兼容存储服务IaaS/OpenStackIaaS/AWSVM虚机/Cell自动弹性伸缩 用量/计费提醒服务Web界面Spring微服务APMStager(组装器)Stager(组装器)serviceBroker应用监控集中日志采集PCFDBPCF运行时BuildPack应用构建包1、GemFireSession集中管理服务器接管应用的Session。2、部署新的应用版本3、以唯一的名字(比如V2)注册到路由器4、通过设置路由策略,把一部分应用流量切换到新的版本。5、新版本的应用从Session服务器中获取之前老版本应用的Session,对前端客户无感知。6、可以不断的配置路由策略,直到最后所有的流量到新的版本GemFireSession共享BBSPCF流程应用灰度发布PC浏览器访问CF命令行43Copyright2013Pivotal.Allrightsreserved.BBSetcdPCF流程弹性伸缩PC浏览器访问CF命令行MobileApp访问Eclipse开发工具动态路由器(GoRouter)NATS消息总线PCFDBuaa-AuthNVM虚机/CellDocker镜像应用系统WardencontainerLinuxGarden应用系统OpsPCF和服务安装、在线升级NATS消息总线UAA用户管理租户管理Web浏览器WinGarden应用系统VM虚机Cell集中日志采集HAProxyHAProxy动态路由器(GoRouter)动态路由器(GoRouter)云控制器BOSHLDAP集成AZ支持IaaS/vSphereOauthSSOBBSetcdBBSetcd监控服务器自动化策略逻辑资源调度Diego大脑监控代理监控代理PCF监控S3兼容存储服务IaaS/OpenStackIaaS/AWSVM虚机/Cell自动弹性伸缩 用量/计费提醒服务Web界面Spring微服务APMStager(组装器)Stager(组装器)serviceBroker应用监控集中日志采集PCFDBPCF运行时BuildPack应用构建包1、应用访问通过GoRouter路由到容器,GemFireSession服务接管应用Session.2、监控服务从Cell中采集应用和容器状态,包括CPU、内存、磁盘等信息3、监控服务从Router中采集应用的SLA信息,如HTTP反应时间、TPS、错误率等4、自动弹性伸缩服务从监控服务中获取所需的监控信息,如CPU、内存、TPS等5、自动弹性伸缩服务对比监控数据和预设的阀值,一旦达到阀值,就通过API进行弹性伸缩,6、弹性伸缩的指令发给资源调度7、资源调度根据指令确实是增加一个应用容器还是关闭几个应用容器8、资源调度找到合适的虚机Cell,从存储服务中载入应用镜像,并启动应用镜像9、应用镜像启动成功后,容器中的应用也一起被启动,应用启动后注册到GoRouter路由中。10、新的请求通过Router分发到新的应用容器中,对于Java应用,如果配置了Session集中管理,会从Session服务器中获取Session数据。GemFireSession共享BBSPCF流程弹性伸缩PC浏览器访问CF命令行Mo44Copyright2013Pivotal.Allrightsreserved.PAAS的应用性能管理PAAS的应用性能管理Copyright2013Pivotal.Allrightsreserved.PAAS的日志综合管理PAAS的日志综合管理Copyright2013Pivotal.Allrightsreserved.PAAS的DevOps工具链生态圈支持全应用生命周期分布式的版本控制、源代码管理、协调开发以增量的方式持续的构建和测试软件项目,有数百种插件共享的二进制库,管理库的生命周期,避免冲突在同一环境下做开发、测试、QA和生产,开发人员友好的命令行和API,DevOps简化每个应用的运维,内置的生态环境提供大量的服务。跨越多种不同的IaaS自自动化化.从测试到构建到部署的集成的工具和自动化的流程高速高速.以小功能更新更频繁的构建产品版本,降低复杂度,加速进入市场质量量.通过测试驱动的开发减少反馈循环,使得问题浮现的更快,更具响应性敏捷性敏捷性.产品更新形成规律,而且在线升级,无业务停顿时间,改进客户体验,加上产品进入市场提交修改的代提交修改的代码自自动的构建和的构建和测试(单元测试、静态代码分析)代代码和构建包和构建包仓库自自动集成集成测试验收收测试、性、性能能测试、压力力测试应用在用在线升升级,无无业务停停顿构建构建管道管道运运维GitLabGitHubJenkinsDevelopmentTest+UAT+StagingProductionPAAS的DevOps工具链生态圈支持全应用生命周期分布Copyright2013Pivotal.Allrightsreserved.目录Pivotal的业界大牛云原生应用架构和原理PaaS的理论基础PaaS的架构模型PaaS的业务价值Pivotal的PaaS架构和实践PivotalSpring微服务框架PAAS的生产案例目录Pivotal的业界大牛SpringBootSpring微服务的开发框架Spring Boot 的作用在于创建和启动新的基于 Spring 框架的项目。它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用。Spring Boot 会选择最适合的 Spring 子项目和第三方开源库进行整合。大部分 Spring Boot 应用只需要非常少的配置就可以快速运行起来。u开箱即用,你也可以通过修改默认值来快速满足你的项目的需求u提供了一系列大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等uSpring Boot不生成代码,且完全不需要XML配置,创建可以独立运行的 Spring 应用。u直接嵌入 Tomcat 或 Jetty 服务器,不需要部署 WAR 文件。u尽可能的根据项目依赖来自动配置 Spring 框架。u提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。uSpring Boot 对于开发人员最大的好处在于可以对 Spring 应用进行自动配置。Spring Boot 会根据应用中声明的第三方依赖来自动配置 Spring 框架,而不需要进行显式的声明。比如当声明了对 HSQLDB 的依赖时,Spring Boot 会自动配置成使用 HSQLDB 进行数据库操作。Spring BootSpring微服务的开发框架SpriNetflix微服务框架服务注册、发现断路器负载均衡JavaHTTP客户端智能路由RibbonArchaiusEurekaFeignHystrixTurbineZuulClientServerNetflix微服务框架服务注册、发现断路器负载均衡JavaCopyright2015Pivotal.Allrightsreserved.其他开源微服务框架CompanieslikeTwitter,Facebook,andHashicorphaveopen-sourcedothercloudinfrastructurelibrariesComplementaryandcompetingsolutionsfromtoptechnologycompaniesformabazaarofideas其他开源微服务框架Copyright2015Pivotal.Allrightsreserved.SpringCloudServicesSpring Cloud ServicesPCF的微服务框架-SpringCloudService服务注册、发现断路器负载均衡JavaHTTP客户端智能路由PCF的微服务框架-Spring Cloud ServicSpringCloud的框架spring-cloud-awsspring-cloud-busspring-cloud-clispring-cloud-commonsspring-cloud-configspring-cloud-netflixspring-cloud-securityspring-cloud-startersspring-cloud-cloudfoundryspring-cloud-clusterspring-cloud-consulspring-cloud-latticespring-cloud-sleuthspring-cloud-dataflowspring-cloud-streamspring-cloud-stream-modulesspring-cloud-zookeeperspring-bootSpring Cloud ConfigSpring Cloud Netflix Integration with various Netflix OSS components(Eureka,Hystrix,Zuul,Archaius,etc.).Spring Cloud Bus An event bus for linking services and service instances together with distributed messaging.Useful for propagating state changes across a cluster(e.g.config change events).Spring Cloud for Cloud Foundry Integrates your application with Pivotal Cloudfoundry.Provides a service discovery implementation and also makes it easy to implement SSO and OAuth2 protected resources,and also to create a Cloudfoundry service broker.Spring Cloud Cluster Leadership election and common stateful patterns with an abstraction and implementation for Zookeeper,Redis,Hazelcast,Consul.Spring Cloud Consul Service discovery and configuration management with Hashicorp Consul.Spring Cloud Security Provides support for load-balanced OAuth2 rest client and authentication header relays in a Zuul proxy.Spring Cloud Sleuth Distributed tracing for Spring Cloud applications,compatible with Zipkin,HTrace and log-based(e.g.ELK)tracing.Spring Cloud Data Flow A cloud native programming and operating model for composable data microservices on a structured platform.Spring Cloud Stream Messaging microservices with Redis,Rabbit or Kafka.Simple declarative model to send and receive messages in a Spring Cloud app.Spring Cloud Stream Modules Spring Cloud Stream Modules can be used with Spring Cloud Stream to create,build,and scale message-driven data microservices.Spring Cloud Zookeeper Service discovery and configuration management with Apache Zookeeper.Spring Cloud for Amazon Web Services Easy integration with hosted Amazon Web Services.It offers a convenient way to interact with AWS provided services using well-known Spring idioms and APIs,such as the messaging or cac
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!