本站源码全部测试通过,配有前台及后台演示图,绿色安全,希望能对大家有所帮助!
  • 收藏本站
  • 网站地图
  • 发布源码
  • 首 页
  • VPS/云主机
  • 交流论坛
  • [Talking Heads] Pivotal践行见远技术篇之( 三) - PCF的践行之路第一期
    时间:2019-03-21 08:05:18来源:模板之家 作者:转载大师 下载:1900 次
    周晖 Pivotal


    时光荏苒不知何时,日历只剩下了最后一页,2015就在不经意中越来越远。


    回顾即将过去的一年,带给我们更多的是成长和收获,2015对于Pivotal更是不平凡的一年,开源软件对于技术创新的推动越发强劲。


    现在一提到Cloud Foundry,俨然已经成为许多开发者心中PaaS的代名词 。


    值此岁末之际,请随我们一起回顾下 Cloud Foundry 和Pivotal Cloud Foundry走过的心路历程,以此来总结下PaaS建设的经验教训,澄清一些误区。




    2008-2013上半年,Cloudfoundry (CF) 的起步、Pivotal Cloudfoundry (PCF)的诞生定义了PaaS的规范,回顾开源CF的发展历程以及PCF商业版的诞生过程,如何PCF一经面世,就拨开云雾,确定了PaaS的标准规范。




    从2010年CloudFoundry (CF) Version 1开始,到今年基于Diego的CF Version 3,CF已经走过了快6个年头,从第一个Release到现在200多个Release,从互联网公司率先开始使用到目前在企业私有PaaS云中承载核心业务,而Pivotal Cloudfoundry (PCF)作为Pivotal的CF商业产品,厚积薄发,2014销售势头创历史纪录,成为全球首年上市销售收入增长最快的开源产。




    Tips-1


    Cloud Foundry(CF)和Pivotal Cloud Foundry (PCF)的区别是什么?


    CF是指开源的OSS(Open SourceSoftware) Cloud Foundry。


    PCF是指Pivotal CloudFoundry的简称,是Pivotal公司发布的PaaS云软件产品。CF作为开源软件只提供源代码并托管在Git上, 使用方要去Git下载源代码,自己编译并构建出可以运行的PaaS环境。PCF作为Pivotal商业软件,是一个可以直接安装部署的软件, Pivotal同时对PCF提供商业的技术支持。PCF是在CF的基础上做了大量的商业部件,CF只提供了一个应用的运行环境,而PCF在CF的基础上又提供了一个PCF PaaS 安装、在线升级、配置的管理工具Ops Manager,并实现了大量企业级功能,比如LDAP的集成、PCF的系统监控、门户界面、自动弹性伸缩等,还提供了大量的服务,如APM、日志聚合分析、mySQL、Redis、RabbitMQ、Cassandra、Session集中管理服务、SSO服务、Spring微服务框架、移动计算服务、DevOps服务(CloudBee的Jenkins、GitLab的Git代码管理、Jfrog的Artifactory)等。数百名Pivotal工程师专注于PCF特有模块的开发。


    1

    Cloud Foundry的起步

    作为纯开源项目在互联网公司的应用


    2008年,Chris Richardson(这位大牛大家要记住他,后面还有他的篇章)开始基于Java设计开发PaaS,命名为Cloud Foundry(以下简称CF),这是CF的来历。随后2009年被SpringSource收购,而随后SpringSource又被VMWare收购,典型的大鱼吃中鱼,中鱼吃小鱼。


    CF 创始人
    Chris Richardson


    2010年VMWare的CEO Paul Maritz开始打造PaaS解决方案,在业界对PaaS的认知还是一片混沌的时候就认准了PaaS的发展方向,而且规划了发展战略,分别收购了Spring和内存计算软件GemFire,选择CF来发展PaaS解决方案,通过使用最广泛的Spring来形成CF的强大生态圈。当时的解决方案称为VCAP(VMWare Cloud Application Platform),是不是有眼熟的感觉,和现在大热的Cloud Native App的方向是一致的。直到现在CF在在各个模块的OS上创建的目录还是VCAP,用户名还是vcap。




    从2010到2013年的CF V1,VMWare投入了大量的资源发展CF,作为当时最主流的开源PaaS,CF从设计开始就定义了PaaS的基本功能和基本架构,即使在现在的CF V3,大的PaaS架构思路并没有颠覆性的变化,不得不说CF的架构设计在当时是非常有前瞻性的,当初的设计原则现在还在生效,只不过在新的版本中会不断的吸纳最新的技术。在这儿不得不说一下某国际知名友商的PaaS设计,V3的时候把V2的架构彻底颠覆,全新设计,从应用容器到应用部署到资源调度,彻底推翻之前的设计,V2没有可能升级到V3,V2据说在国外还有几个客户,如果说客户是衣食父母的话,那这绝对是坑爹的设计。



    OSS CF V1研发的六大金刚,第二位Jame Watters是目前PivotalCF的负责人。


    CFV1的时候容器技术还没有流行,Heroku确定了一些PaaS的框架,比如Buildpack,但是Heroku是一个公有云,自己很难去搭建一个类似于Heroku的PaaS云,而很多互联网公司需要搭建自己的公有、私有PaaS云,在此市场期待之机,VMWare 推出CF开源,实现了Heroku的Buildpack功能,并完整的实现了PaaS的功能,如RouterDEAHealth Manager等,一经推出,得到互联网公司的热烈响应,众多互联网公司采用CF搭建PaaS,而且通过CF开源的建设,使得CF社区飞速发展壮大。





    CF作为当时唯一完整功能的开源PaaS,一经推出,就得到市场的热烈响应。为何说CF是一个功能完整的PaaS,比如最简单一点,CF通过Buildpack支持不同的中间件和语言,如Java,Weblogic,WebSphere,PHP,Ruby,Python,Go等,Git上可以下载的Buildpack超过200种,而到目前为止,大多数不是基于CF的PaaS公有云还不能支持如此众多的语言,以国内最知名的PaaS为例---阿里的PaaS云只支持Java、PHP、Node.JS、Python,还不支持Go、Ruby、WebSphere等。因为阿里的PaaS是要针对每种语言去定制, 没有提供一个类似于Buildpack的机制。PaaS平台应当是语言中立的,确定语言实现的规范和机制,而让用户自己去定制各种语言的实现。


    2012年开始国内众多的互联网公司开始基于CF上搭建自己PaaS公有云私有云,包括百度、京东、用友,最早的SAE也有部分采用了CF。在国际上,采用CF搭建公有云的也很多AppFrog,CenturyLink等。通过互联网公司的大规模使用,比如百度的CF PaaS达到日均PV 到10亿,使得CF得到那大规模应用的锤炼,通过大规模应用的和各种不同场景不同环境的应用,CF的成熟度和可用性得到了很大的提高。



    误区之1市面上PaaS众多,自己做一个PaaS并不难,或是找个小公司的产品来搭建PaaS可以省钱。
    做出一个PaaS不是很难,但是PaaS作为系统级的平台,让它达到系统级可用,这个非常难,不是短时间可以跨越的,是需要积累的,要不断的填坑,不断的积累和不断的重构,才能达到系统级可用。


    2


    PCF的诞生

    定义PaaS功能规范


    2013年是个技术大发展的一年,这一年,容器技术开始热起来了,Docker开始在社区流程,CF顺应技术潮流采用容器技术,升级到V2了。


    2013年,VMWare把Cloud Foundry资产和相应的组织架构剥离到新公司Pivotal,当年大力发展CF的VMWare CEO Paul Maritz也到Pivotal做CEO,他进一步确定了重点发展CF的战略方向。从2013年上半年开始,Pivotal一方面加快发展开源CF,开始用Go语言改造CF,之前的CF大部分是Ruby写的。此时Go语言刚刚兴起,但Go已经开始体现出作为系统级语言的天生优势,Pivotal首先选择了Router进行改造,通过Go语言改造,Router的性能和对并发性的支持大幅提升,而且解决了Ruby环境依赖的问题。由于Ruby是解释型语言,代码和Ruby的版本环境依赖非常强。同一Ruby版本上开发的代码最好在同一Ruby环境下运行,如果在不同的Ruby版本下运行, 可能会带来很多依赖性的问题,包括库的依赖性问题。而Go语言没有此问题。随后,Pivotal又用Go语言改造了Health Manager模块。



    另一方面,Pivotal花了将近一年的时间来开发Pivotal Cloud Foundry(PCF),也即Pivotal的CF商业版本。


    这一年,也在酝酿成立CF基金会,和业界PaaS相关的公司进行了磋商,筹备成立CF基金会,准备基金的章程。


    2013年底,Pivotal发布了第一个商业版的PCF,此时,已经有不少互联网公司在基于CF构建或是运行他们的PaaS。但是还有绝大多数的企业,专注于自己的核心价值,无法投入大量的人力和技术资源去研究、运维、定制开源CF,而PCF的目标就是要做一个商用的CF,使得企业不需要花费什么人力去研究CF源代码,而是直接把PCF作为一套软件,安装部署,开箱即用,如果有些特定的要求,PCF也提供了丰富的API进行定制。按照Pivotal的愿景”把互联网的技术带给企业,使得企业不需要像Google、FaceBook、NetFlix等互联网企业自己研发互联网技术,而是直接开箱即用的使用这些技术,虽然Google/FaceBook/NetFlix等互联网企业会开源一部分技术,当时这些技术从源代码到企业可以使用还有相当长的距离”,PCF就是这个愿景的一个典型落地。


    在PCF还是Beta产品阶段,我们就开始和一些有PaaS需求的客户接触,2013年PaaS还是各个厂家各说各话,业界对PaaS需要具备哪些功能也很模糊。有些公司自己基于Java做一个应用框架也号称是PaaS,客户经常听不同的厂商讲PaaS,而每个厂商对PaaS的理解又不一样,导致客户对PaaS的认识也处于模糊状态。比如还没有认识到PaaS必须要能支持不同的语言和中间件。此时市场上有形形色色的PaaS,有的在自己的应用服务器上做一些多租户的改造,也号称是PaaS。有些是基于IaaS虚机写一些应用部署的脚本,也号称也是PaaS,所以出现了一个词”Script Monkey”讲的就是靠大量脚本来实现一下应用运维自动化的工作,这一般称为IaaS+,还是着眼虚机模板,在虚机模板上写各种脚本来配置应用、部署应用、运行应用,和传统的物理机部署应用几乎没有本质区别,脚本没有从根本上降低复杂性,只是把一部分手工的工作脚本化了,部署的应用稍微有点变化就要改脚本重写脚本。


    而PCF从一开会就从多个方面来确定了PaaS的功能标准。在运维自动化方面,通过Buildpack自动化的把应用包生成运行环境,并通过Router把请求分发到应用容器,通过Cloud Controller实现自动弹性伸缩,通过Router实现弹性伸缩之后的请求的自动重新分发到相应的应用容器,通过Health Manager实现故障的自动恢复。


    PCF从三个方面确定了PaaS运维自动化:


    • 应用一键部署,拿到应用包以后,一键部署即可生成最终运行环境。传统环境下每次应用上线都是运维人员的噩梦,改配置、复杂的部署过程,如果出错还得重来。


    • 故障自动恢复,系统检测到应用故障、容器故障、虚机故障等均可以自动恢复。系统出现故障以及故障以后的恢复是传统环境下运维人员的另外一大噩梦,排除故障见功力,而顶着生产压力排除故障更需要强大的内心。


    • 根据业务的资源自动分配,应用扩容缩容,面对突发大规模访问,需要快速重新分配资源再部署,是运维人员的第三个噩梦,而PCF的弹性伸缩自动解决这类问题。


    而对开发人员方面,PCF对DevOps有直接的支持,包括PCF生态圈的GitLab的Git代码管理服务、持续集成的Jenkins服务,和库管理的Jfog的Artifactory服务。通过Service Broker解耦应用和配置,租户管理员或是系统管理员给开发团队创建、分配的服务资源之后,通过多租户实现开发人员自主、自动的运维自己的环境。


    PCF还提供了大量应用相关的服务功能,比如缓存服务Redis,消息中间件RabbitMQ服务,日志聚合服务ELK,日志分析KLA(Solr),应用性能管理APM,应用Session集中管理服务等。使得应用开发者可以真正专注于代码开发,把应用通用的功能通过PCF产品本身的服务来支撑,避免每个应用都要把相应的功能在开发一遍。


    通过这些功能,PCF清晰的定义了PaaS的功能集,彻底和市面上形形色色的只实现了几个功能点的PaaS区分开来,以下的PaaS的功能集基本成为共识:


    • 语言和中间件的中立性,支持丰富的语言和中间件,不能只支持几种语言,而且提供定制的方式支持特定语言。


    • 支持容器技术,应用在容器中运行,通过容器实现应用运行环境的隔离,除了支持Linux容器,还要支持Windows .net的应用运行环境。


    • 支持应用运维的自动化,包括应用一键部署、故障自动恢复、自动弹性伸缩,不依赖于脚本实现,而且平台本身就支持这些功能,当然可以定制各种策略。


    • 应用和配置分离,PCF的Service Broker是一种非常好的应用和配置的分离实践,应用在不同的环境下部署不需要改一行代码,也不需要改一行配置。配置通过服务绑定的方式实现。


    • PaaS平台本身的系统在线成长,支持多重、多级别的高可用性,系统本身能够在线升级,系统扩容缩容不影响业务运行,无论是应用、服务还是系统本身升级,均不会导致业务停顿。系统一旦上线,就像是一个生命诞生,持续发展壮大,即使是像蛇一样蜕皮升级长大,也不会休克,生命续存期间业务不停顿,直到系统下线生命结束。


    • 除了支持应用运行,还要提供产品级的丰富的应用所需的服务支撑,如数据库服务 (mySQL),NoSQL服务,消息中间件服务,缓存服务,云存储服务等。


    • 对开发、测试者来说,PaaS必须支持DevOps的全生命周期,从代码版本管理、代码自动构建、库管理,到自动测试、自动部署等持续交付的全流程支撑。


    • 多租户的实现,通过租户管理隔离不同的组织架构,但是又共享统一的硬件资源。


    • 提供或支持通用的应用服务,如APM服务、日志聚合分析服务,通知提醒服务。对于应用都需要的功能,不需要每个应用都去开发一次。



    误区之2有人提到,我只需要其中的两三项项功能,那我只要用一个有这两三项功能的PaaS就可以吧。
    PaaS的这些功能,是经过多年的PaaS运营提炼出来的功能集合,也许今天可能只需要其中几项功能,但是PaaS不是一个应用,是一个各种各样应用运行的平台,随着PaaS的成长,部署的应用会越来越多,那很快就会发现最初要求的几项功能不足以满足新部署的应用需求。而如果一开始PaaS平台的选择不是一个全功能的PaaS,未来再去增加PaaS的功能,无疑是很困难的。就比如一开始选择一辆三轮车,也能拉不少东西,后面再车上堆的东西越来越多,发现人力已经不够了,需要一个燃气或电力引擎,那这个改造就不是那么容易,改造的不好容易出交通事故。



    误区之3有人提到,我只要满足我特定的几项功能就可以,不必拘泥于叫不叫PaaS。
    这也是一个误区, 有句话“名不正则言不顺”,PaaS之所以能够成为业界广泛使用的一个词汇,是汇聚了业界这一领域众多技术力量而形成的一个标准功能集合,这个集合是无数的实践,包括成功和失败的实践提炼而成的,如果一个和PaaS似是而非的东西,那应当是还处于实验阶段,还没有被业界广泛认可的,采用这种似是而非的东西其实是把自己放在被实验的位置,会承担相应的风险。


    PCF经过几年的大规模和广泛实践,明确的定义了PaaS的功能集合。



    作者简介

    周晖--Pivotal大中国区资深架构师


    周晖先生,Pivotal公司资深席架构师和Cloud Foundry开源社区中国推广人,从2009年开始从事PaaS云相关的项目工作,主导或是参加了多个的公有、私有PaaS云的建设。2012年开始支持基于Cloud Foundry PaaS的建设,有丰富的PaaS云实际建设经验,负责过国内某知名银行Pivotal Cloud Foundry PaaS云的架构设计和部分功能的实现,参与过某移动公司PaaS、某汽车PaaS、某电力PaaS等PaaS项目的建设。2014年开始参与组织过国内所有的CF Meetup或做专题分享。1993年南京大学少年班毕业。








      发送中

      转载请注明来源: [Talking Heads] Pivotal践行见远技术篇之( 三) - PCF的践行之路第一期
      本文永久链接地址:bencandy.php?fid=33&id=5658
      本文标签:

      版权声明:
      —— 本文内容由互联网用户自发贡献, 本站不拥有所有权, 不承担相关法律责任, 如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 :
      —— 1034252225@qq.com 举报, 并提供相关证据, 一经查实, 本站将立刻删除涉嫌侵权内容。

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全
      福娃源码交易平台,VIP会员,友价T5内核,可运营版本福娃源码交易平台,VIP会员,友价T5内核,可运营版本
      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏
      推荐资讯

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付微信源码3415

      最新微信全民经纪人系统V3.0完整商业版

      最新微信全民经纪人系统V3.0完整商业版微信源码3415

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码微信源码3415

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三微信源码3415

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣微信源码3415
      开源之家广告栏目A
      热点资讯

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全下载系统6481

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本下载系统6481

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏下载系统6481

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应下载系统6481

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城下载系统6481
      开源之家广告栏目B
      开源之家广告栏目C