1 什么是PaaS
平台即服务(platform as a service),把服务器平台作为一种服务提供的商业模式,也可以理解为面向开发者的SaaS。
网上的概念还是很抽象。用人话说翻译一下,有两种翻译方式:
1 PaaS是将软件研发的平台作为一种服务,以SaaS的模式提交给用户。
2 如果一个SaaS能给客户在互联网上提供开发(自定义)、测试、在线部署应用程序的功能,那么这就叫PaaS
以上两种说法是我认为大多数人可以看得懂的,不喜勿喷。
PaaS的特点:
首先PaaS作为SaaS的一种形式,必定有SaaS的一些特点:云端架构、成本低、体验好
另外它也有区别于SaaS的特点。SaaS多数只能满足共性需求,虽然可以通过个性化的二次开发来帮助用户实现需要的功能,但通常来讲都需要较长一段时间的开发周期,客户的需求无法得到及时的满足。
PaaS平台就是针对这个问题的最佳解决方案,PaaS指的是给开发人员提供构建应用程序的环境,通过在PaaS平台上进行编程创建的应用功能可以快速部署到平台上并且实时生效。PaaS就是在线编程平台。
相较于常规的编程工具,PaaS平台的好处是可以基于SaaS产品已有的字段和对象来进行二次开发,快速对接平台已有的功能,在SaaS已有的功能之上进行个性化功能的设计,具有快速,灵活,稳定的特点。综上,PaaS平台还具有的特点为:
1 可编译部署自己的个性化代码,这些资源通过API开放给用户
2 可以对平台已提供的SaaS接口进行二次开发
3 平台运营商除了提供基础平台外,还提供技术支持服务和应用系统开发和优化的服务
2 PaaS系统架构
SaaS的功能架构大体如下:
PaaS在功能中加入了第三方开发和开放API等个性化功能模块,其功能架构如下:
从上面两张图可以看出,PaaS平台主要多了用于第三方用户个性化开发和部署的业务功能(开发、测试、发布、管理四部分),为了实现快速二次开发,所以PaaS平台还应该提供业务通用的开放API接口。
另外需要提一句,在平台搭建的时候还需要考虑负载均衡和接口频控的细节问题。
有了以上介绍的功能,再加上运营平台、监控平台等辅助模块,辅以各种应用支撑和公共服务,全面高效地实现了企业应用所需的云平台环境。
另外,为了进一步降低PaaS平台的使用门槛,很多公司正在开发图形化PaaS平台,只需要拖拽和点击就可以完成编程的工作,无需专业的开发人员,而是售前工程师或客户方的管理员也可以很方便的进行个性化功能的配置。
基于此,PaaS平台就被分为APaaS和IPaaS两种,APaaS是应用部署平台,应用可以有ISV提供,比如钉钉。IPaaS是为开发者提供一整套开发工具和底层,所以App和平台接入程度深。这么看来在普通使用者眼里,APaaS就是SaaS,他们不需要知道ISV是谁...
3 PaaS的两种实现形式
3.1 虚拟机为基础
代表是AWS。
首先是负载均衡层:当应用实例出现扩容时,需要动态将调整的服务器实例注册到对应的域名上,以完成分流
中间是Web服务器层,支持Java、Python和PHP等多种编程语言,尽量为编程人员提供多样性的选择,开放性基本是所有PaaS平台的标配
在服务后端,Beanstalk基本依托于AWS本身的服务生态系统为应用提供服务,比如RDS、S3、DynamoDB等。
3.2 容器为基础
相比于虚拟机,容器带来的系统开销非常低,如果一台虚拟机的操作系统需要占用2G的内存,则7个虚拟机所组成的集群只是操作系统就需要14G的内存占用。基于容器的技术如果一台16G的裸机除去2G的操作系统开销,还能够部署7个容器进程。所以,从经济性来说,容器的技术远远好于虚拟机。另外一个比较的标准是性能,容器的性能相对而言更好一些。但是,从安全性和隔离型来说,虚拟机是远远好于容器的。
代表是CloudFoundry。
4 PaaS产品经理的工作和能力
平台思维:PaaS作为一种平台,需要产品经理具有平台思维:不只关心功能和用户,因为用户是多方的,所以要考虑建立多方共赢的生态圈
对业务的理解:和SaaS相同,不了解业务就别当产品了...
多角色权限,复杂业务流程的拆解能力:化繁为简的能力不解释,和一些SaaS也一样
需要有一定的技术能力,所以技术出身的产品经理有一定的优势
学习能力:PaaS的应用还是很新的,国内成熟的PaaS平台不多,可以借鉴的也不多,这就需要产品经理的学习能力和领悟能力很强
商业能力:敏锐的商业能力,不赚钱就是耍流氓
其他通用的产品经理能力:沟通、优先级把控、逻辑、执行力、迭代思维、决策力、产品规划能力
5 产品设计工作流程
看了百度云、纷享销客的PaaS产品,结合去年我们公司想做AI算法模型管理平台的内部系统时我整理的资料,发现PaaS产品的工作流程基本三部:创建应用(对象),创建个性化流程以及部署个性化功能。
创建应用:可以添加自定义的字段,这一步完成后,输出的API接口就基本确定了
创建个性化流程:包含触发条件,传入参数,完成条件,传出参数等步骤,这一步就是平台自带的变成工具进行编程的步骤
部署个性化功能:这一步需要结合用户需求来进行
6 升华:SaaS,IaaS的区别
在查看网上的资料时,发现一张图,在很多文章上都出现了,就存到这里,这样图很好的阐述了本地部署、SaaS、PaaS和IaaS的区别。