1. 关于 PaaS
1.1 什么是 PaaS
PaaS 是平台即服务(Platform as a Service)的简称,平台即服务是一种云计算服务,提供运算平台与解决方案服务。PaaS 的出现加快了 SaaS 的发展,尤其是加快了 SaaS 应用的开发速度。比如,SaaS 开发时,使用 PaaS 平台统一提供的登录、数据库、缓存等服务,将大大减少这些服务开发的人力和成本。同时将,SaaS 应用的运维交给了 PaaS 平台完成。
1.2 PaaS 的特点
PaaS 平台提供的是针对开发人员的 SaaS 服务。通过 PaaS 平台将一些常用的服务,提取为公共服务,比如扩缩容、数据库、发布等。开发人员只需要专注于业务,基于 PaaS 平台提供的开发框架完成业务逻辑的填充。PaaS 平台的特点有:
- 提供开发框架PaaS 平台提供开发框架,开发人员在其基础上开发 SaaS 应用。开发框架是应用与 PaaS 平台融合的关键。
- 减少编码时间PaaS 平台通过提供内置的预编码应用组件(如工作流、目录服务、安全功能、搜索等),可以大幅度削减编码新应用所需的时间。
- 大量公共服务PaaS 平台通常会提供大量的公共服务。比如,短信发送、COS 对象存储、Redis等。这些服务加快了开发进程,同时,后期也不用维护,易于扩容。
- 跨平台支持PaaS 平台提供商通常会提供针对多种平台(例如PC端、移动端)的开发选项,允许更快速、更轻松地开发跨平台应用。
- 有效管理应用程序生命周期PaaS 平台提供了支持 Web 应用程序完整的生命周期(生成、测试、部署、管理和更新)所需的全部功能。
- 免运维PaaS 平台提供了整体的开发流程、自动化部署方案。应用开发阶段、上线后,都不需要运维人员过多参与。
2. PaaS 1.0
以谷歌 GAE、Heroku、SAE为代表的是 PaaS 1.0 时代,采用了比虚拟化更加细粒度的应用作为服务单元,但它存在的致命问题是对应用程序的侵入性,也就是说要求开发者对程序代码进行限制,以满足平台的运行需求。PaaS 1.0 对开发语言有很多限制,应用托管环境单一、组件封闭,开发者不希望使用某个 PaaS 引擎就将自己锁定在这个平台上面。这限制了 PaaS 1.0 的发展。
3. PaaS 2.0
以 Cloud Foundry 和 OpenShift 为代表的是 PaaS 2.0 时代。它的进步性体现在,基本上消除了对应用程序的侵入性,但是对 DevOps 本身的环境变量的传递和部署仍有要求。PaaS 2.0 虽然能解决的需求已经很多了,但是问题同样不少,比如 PaaS 2.0 并不介入软件的开发流程,软件开发完毕后,需要经过二次封装,才可以运行在 PaaS 平台之上。
4. PaaS 3.0
以基于 Docker 的 Flynn、Deis 为代表的是 PaaS 3.0 时代。PaaS 3.0 涉足到软件开发流程,交付的产品就是 Docker 的标准镜像,在 Docker 的平台上把开发、测试、运维的流程打通。目前 PaaS 的发展,就处于 PaaS 3.0 阶段。国内也有大量平台公司提供 Docker 容器服务,比如,DaoCloud、时速云、数人云等。
5. PaaS 4.0
以 AI 技术为代表的是 PaaS 4.0 时代。发展到 PaaS 3.0, 解决的是软件的开发、交付、部署问题,实现了 DevOps。这一过程节省了开发运维成本,加快了软件的交付流程。以前1个月开发1个应用,现在1个月可以开发5个应用;以前1个应用需要2个开发1个运维,现在需要1个 DevOps。有收益,但,是个加法运算。商业价值没有得到有效的挖掘和放大。AI 等数据挖掘技术在 PaaS 4.0 时代将大放异彩,PaaS 平台提供的数据处理能力,将极大地降低数据挖掘的门槛。同时,由于 PaaS 平台的规模效应,数据挖掘的成本优势得以体现。承载了大量业务数据的 PaaS 平台,也增强了用户对平台的粘性。