PaaS(平台即服务)是NIST定义云计算三种服务模式之一,另外两个分别是IaaS和SaaS。PaaS服务一般分为框架类服务和中间件服务。




*
框架类服务:Tomcat、Websphere、Node.js、Rubyon Rails、Ruby on Rack

*
中间件服务:数据库(Mysql、mongoDB、Redis)、消息队列(RabbitMQ)、缓存(Memcache)。




PaaS与SaaS的区别是,SaaS直接面向最终的企业用户,而PaaS面向软件开发商,将开发语言、开发平台、开发环境自动化部署至云设施。









PaaS是数据中心部署模式由传统的烟囱式模式向SaaS模式发展的必然结果,加速了软件产品的研发和交付,使用SaaS更加完善和规范。




PaaS发展历程和大事件




2005起源于客户需求:
在共享主机托管上实现一键式可扩展应用部署。Rackspace两名离职工程师开发Mosso为客户提供分布式、冗余可靠、可扩展的PHP、.NET应用开发平台,客户无需关心服务器的运维管理。




*
Rackspace收购Mosso、Slicehost,提供Cloudsites/Files/Servers服务。

*
EMC/Vmware收购开源CloudFoundry。

*
RedHat收购Makara获得Openshift。

*
Amazon借助Beanstalk进入PaaS。

*
EMC/Vmware开源Cloud Foundry,并同步发布cloudfoundry.com PaaS服务。

*
RedHat开源Openshift。




PaaS爆发期:IaaS厂商纷纷通过收购进入,确立PaaS在云计算中位置; 多语言、多框架的可移植PaaS平台适应互联网多样化需求;
避免IaaS层的Vendor Lock-in,Garter预测(IDC、埃森哲类似):




*
2013年末:所有的主要软件供应商都将提供PaaS服务。

*
到2016年:PaaS行业将实现真正的繁荣,PaaS市场将出现白热化的竞争,推动市场出现新的编程模型、新的标准和新的领军企业

*
2016年生态整合、传统软件巨头加入、运营商加快探索:

*
NFV:阿朗发布基于开源Citrix Cloudstack、Gigaspace Cloudify的CloudBand生态系统计划,并建立NFV Lab

*
运营商合作:NTT、 CenturyLink基于Cloud Foundry;DT基于Cloudify和GAE;AT&T基于LongJump:中华电信基于IBM

*
Vmware发布Cloud Foundry V2版本,并将其剥离给与GE合资子公司Pivotal,IBM加入CloudFoundry阵营

*
IBM宣布新开源云计算战略,与Pivotal合作开发PaaS

*
Oracle宣布PaaS新战略,收购Engine Yard股份,发布新PaaS产品,SAP宣布将SAPHANA打造成开放PaaS平台的战略。




PaaS技术和产品主要特点




*
更快的上市时间:随时可起动开发;更多的语言、框架可选择

*
更少的Bugs:统一的应用开发、测试及最终的部署环境,减少因环境差异引入的Bugs。

*
应用可视性:从应用的依赖关系(开发阶段)、应用运维(部署后)到应用商业价值(应用如何赚钱)的端到端可视化。

*
更好的安全:基于PaaS可以建立更安全卫生的编程习惯

*
广泛的交付选择:PaaS帮助SaaS无需代码修改或少量修改即可在不同的OS平台和设备(含移动平台)上运行。

*
更丰富的服务支持:开发者可基于PaaS提供的预集成服务集(如大数据分析、报表、DBaaS等)增强其App的功能。

*
更快的上线发布:PaaS平台通常支持计费和客户管理工具,相对单独发布方式app可更快、更低成本的发布。

*
预算友好:PaaS提供按需、Pay-as-You-Go付费策略。开发者可对齐APP的托管费用和收入,开发者无需为硬件等基础设施投资。

*
协作使能:
相对“独狼”的开发模式,云开发平台包含开发协作能力。PaaS使得多个开发者在开发和review过程中更易于协作,PaaS用户发现更容易、更快的发现并解决问题。

*
提供广泛的客户群:部分PaaS可为ISV提供MarketPlace来向终端用户销售其SaaS软件。




PaaS发展阶段分析




PaaS的发展经历了技术导入期、产品爆棚期和成长成熟时三个主要阶段。




*
导入期特点:PaaS独立供应商主导,面向特定领域、特定问题。代表厂商:Rackspace/Mosso、LongJump、Salesforce。

*
PaaS爆发期特点:IaaS TOP厂商、云基础设施厂商进入,通用可移植型PaaS为主,代表厂商:Amazon、EMC/Vmware、Redhat。

*
PaaS成长期特点:传统软件巨头纷纷进入、开源或成主流。代表厂商:微软、IBM、Cloudify、Oracle、SAP、领先运营商。





随着大厂商的介入,PaaS流派逐渐形成。运营商在IaaS、PaaS和SaaS的三级云架构体系中,PaaS一直处于短板,互联网技术厂商和软件厂商在PaaS领域得到了长足的发展。下图展现的是主流的闭源PaaS产品和开源PaaS产品
CloudFoundry,OpenShift和Cloudify,其中CloudFoundry和Cloudify得到了不同行业的广泛应用。









运营商基于IT软件实现网络软件来补齐其PaaS方面的能力。如AT&T通过PaaS引入互联网应用开发者,联通、移动往以服务为核心的IT服务转型等等。




主流PaaS厂商和对应产品









现在流行的大多数的PaaS平台,底层的虚拟化技术主要分为虚拟机和容器
两种。容器相对于虚拟机,是一种更轻量级的虚拟化技术,严格意义上来说,是一种资源隔离技术,如Linux LXC。

 






容器主要的技术原理,是利用Linux的Cgroups和NameSpace
,对进程进行资源限制和资源隔离,需要共享同一套操作系统软件栈。所以容器比虚拟机有更好的性能,但是在安全隔离性上,要差一些。




*
Cgroups:
可以对资源进行配额和度量。在/cgroup目录下新建一个文件夹,即可以建立一个group,新建一个文件task,并把PID写入到文件中,就可以管理这个进程的CPU、Memory等资源。

*
Namespace:
有6种不同的namespace,分别是PID、NET、IPC、MNT、UTS和USER,从进程、网络、IPC、文件系统、主机域名、用户角度进行隔离,从而可以对外展现出一个独立的计算机的能力。




主流的开源PaaS平台




开源PaaS产品和平台比较有名的是CloudFoundry,OpenShift和Cloudify,关于CloudFoundry,技术细节可参看“
聊聊CloudFoundry开源PaaS云平台
<http://mp.weixin.qq.com/s?__biz=MzAxNzU3NjcxOA==&mid=2650717823&idx=1&sn=91f299aa0e16c5097402e94e43f104be&chksm=83e9781eb49ef108063508fc5148039b99f062fe33701613f7994c6bd8d5ca994e740dac70f6&scene=21#wechat_redirect>
”文章。




OpenShift是红帽公司推出的一个云计算服务平台,开发人员可以用它来构建和发布web应用。
Openshift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。




OpenShift服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux
提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。




Cloudify是由Gigaspaces发布的开源PaaS平台,可用于将应用程序自动部署到物理环境、公有云、私有云。目前最新的版本是Cloudify3.0。




Cloudify以工作流的方式自动化应用的部署及监控,并对监控事件自动响应处理。Cloudify集成众多工具,以提供企业级的部署服务:




*
配置管理工具,如Chef、Puppet

*
基础设施自动化工具,如Openstack heat

*
日志及监控工具,如logstash、Elasticsearch

*
实时分析工具,Reimann.IO




Cloudify 3.0有一个重要更新,是提供了类似插件的机制,允许更大范围的配置、监控、云部署工具集成进Cloudify的整体架构中。




更多关于PaaS平台产品,技术和架构,请点击阅读原文链接,获取整理成文的“云计算PaaS主流软件、产品和厂商分析”,具体目前和内容如下所示。




*
第一章 PaaS背景和发展历程 3

*
1.1 PaaS是什么 3

*
1.2 PaaS发展历程及重大事件 4

*
1.3 PaaS主要特点 5

*
1.4 PaaS提供商分析 6

*
1.5 PaaS发展阶段分析 7

*
1.5.1 PaaS导入期特点 7

*
1.5.1.1 Mosso介绍 7

*
1.5.1.2 LongJump介绍 8

*
1.5.1.3 Salesforce介绍 9

*
1.5.2 PaaS爆发期特点 10

*
1.5.2.1 Amazon介绍 10

*
1.5.2.2 EMC/VMware介绍 11

*
1.5.2.3 Redhat介绍 13

*
1.5.3 PaaS成长期特点 13

*
1.5.3.1 微软介绍 14

*
1.5.3.2 IBM云计算介绍 15

*
1.5.3.3 AL-Cloudband介绍 16

*
1.5.3.4 Oracle、SAP介绍 17

*
第二章 PaaS容器关键技术解析 20

*
2.1容器LXC/LXD是否一样 20

*
2.2 容器Docker/Moby的渊源 23

*
2.3 Docker镜像格式 26

*
2.4 容器之Rkt/AppC、OCI 27

*
2.5 CRI-O和CRI-Containerd容器运行时 32

*
2.6 HyperContainer、runV技术分析 34

*
2.7 Openstack Hypernetes是什么 36

*
第三章 PaaS容器集群管理技术 37

*
3.1 集群管理Mesos分析 37

*
3.2 集群管理Mesosphere分析 38

*
3.3 集群管理Marathon分析 39

*
3.4 集群管理Kubernetes分析 41

*
3.5 集群管理之Docker Swarm、Compose、Machine三剑客 44

*
3.5.1 Swarm分析和资源 44

*
3.5.2 SwarmKit分析和资源 46

*
3.5.3 Compose分析和资源 47

*
3.5.4 Machine分析和资源 47

*
3.5.5 集群管理Nomad和Serf分析 48

*
第四章 PaaS虚拟机管理技术 50

*
4.1虚拟机管理Kubevirt分析 50

*
4.2 虚拟机管理Virtlet分析 53

*
4.3 虚拟机管理Frakti分析 56

*
4.4 Kubevirt、Virtlet和Frakti比较 57

*
第五章 PaaS平台监控能力 57

*
5.1 PaaS监控CAdvisor分析和资源 57

*
5.2 PaaS监控Heapster分析和资源 58

*
5.3 PaaS监控Prometheus分析和资源 59

*
5.4 PaaS监控Hawkular分析和资源 60

*
5.5 PaaS监控Kapacitor分析和资源 63

*
5.6 各种PaaS监控工具比较 64

*
第六章 PaaS主流产品介绍 64

*
6.1 PaaS底层虚拟化技术介绍 65

*
6.2 PaaS闭源产品介绍 66

*
6.2.1 Google App Engine产品 66

*
6.2.2 Amazon AWS Beanstalk产品 68

*
6.2.3 Windows Azure产品 69

*
6.3开源产品介绍 70

*
6.3.1 Cloud Foundry产品 70

*
6.3.2 Docker产品 70

*
6.3.3 OpenShift产品 71

*
6.3.4 Cloudify产品 73

*
6.3.5 Cloud Foundry和Docker对比    76

*
6.3.6 CloudFoundry和OpenShift对比     78




推荐阅读:

*
一文讲透Apache RocketMQ技术精华
<http://mp.weixin.qq.com/s?__biz=MzAxNzU3NjcxOA==&mid=2650718577&idx=1&sn=7aea53ccee45c192ed611d7bbeecfba7&chksm=83e90710b49e8e06de6b1e4c3e41bcb72afab98b51306c40943862fef174c4b0ff4798161546&scene=21#wechat_redirect>


*
如何利用Alluxio实现数据湖方案
<http://mp.weixin.qq.com/s?__biz=MzAxNzU3NjcxOA==&mid=2650718553&idx=1&sn=76e9d0e810ba976e127bc32df9e45d85&chksm=83e90738b49e8e2eed66b0f6f9dd94bf2057ae679b9c6173637b0c25302ad8c6bb05ed43066f&scene=21#wechat_redirect>








温馨提示:


请搜索“ICT_Architect”或“扫一扫”二维码关注公众号,点击原文链接获取更多技术文章。



求知若渴, 虚心若愚