云计算术语 - IaaS 、 PaaS 和 SaaS

Cloud Computing Terminology - IaaS , PaaS & SaaS

我在 Whosebug 和网络上复习了很多问题,这些问题非常有用。到目前为止,我对我所阅读的有关 IaaS、PaaS 和 SaaS 的内容几乎没有疑问。但是我有很多问题可能很天真,因为我还没有看到任何这些在行动中。

1) PaaS 是否等同于开发/定制软件的开发环境,而 IaaS 是 运行 开发软件的执行环境(可以是任何环境测试或生产)?

2) 在 PaaS 的情况下,我以 apprenda 为例。作为 Apprenda 的一部分,我看到 .net 、 Java 、 IIS 和 SQL 服务器被列为平台的一部分。这是否意味着我不必在我的本地机器或开发盒上安装所有这些,而是​​拥有一种安装了所有开发工具的远程机器,我只需要去编程我想做的任何事情?

3) 例如,如果我没有订阅 IaaS,我如何 运行 使用作为服务公开的平台开发的软件?

4) 我还了解到 PaaS 可以是 public 或私有的(在公司的防火墙内)。如果是私有的,PaaS的提供者基本上会在我公司的基础设施上架设开发平台吗?

5) 任何提供登录功能的网站都可以称为 SaaS 吗?例如:GMAIL、Yahoo Mail、Facebook 等

6) Google Drive、Apple iCloud 等可以称为 SaaS 吗?

PAAS:平台即服务

  • 您不关心底层硬件或OS。
  • 您只关心您的代码,平台会处理其余的事情
  • 缩放已为您完成
  • 您必须遵守平台施加的一些限制
  • 按使用量付费(更多流量、使用的存储空间 -> 更高的账单)
  • 示例是 Google AppEngine、Heroku、AWS Elastic Beanstalk

IAAS:基础设施即服务

  • 您租用基础设施,您可以选择内存量 CPU、磁盘大小 OS、...
  • 您设置运行时环境将完全选择 NodeJs、Redis 或 LAMP 堆栈或您能想到的任何风格。
  • 您负责配置租用的基础架构以实现高可用性和横向扩展
  • 更多自由但更多配置(devops)
  • 为你分配的东西付费(你设置你的机器并预先选择你的基础设施)
  • 示例是 Google Compute Engine、Amazon EC2

但世界并不是那么非黑即白。 PaaS 和 IaaS 相向而行。例如,AppEngine managed VMS give you more freedom in choosing your underlying OS while still in a PaaS environment. And Google Autoscaler or Kubernetes 将您的基础架构管理提升到更具声明性的水平。

最后 SaaS 产品面向非技术最终用户。所以 Apple iCloud、Google Drive、Gmail、Yahoo webmail 都是 SaaS 的例子。

我尝试使用 Azure 部署模型提供更简单的答案和映射

SaaS:软件即服务。

  • 这是将您的网站 app/service 托管到云端的最简单、最简单、最快的方法。
  • 您的网站将自动部署到一些虚拟机中,并在需要时自动缩放。
  • 您无需关心虚拟机。云提供商将维护它们。
  • Azure 中的 SaaS:Azure 应用服务(或 Web App/Websites)。

PaaS:平台即服务。

  • 云提供商将创建安装所有先决条件的 pre-configured VM(例如:安装了 .Net 4.5 和 IIS 的 Windows Server 2012)。这些 VM 将在您的 sites/apps 完全 spin-off.
  • 时自动加载
  • PaaS 几乎与 SaaS 相同,除了它允许您可以远程桌面连接到 VM,在那里执行一些配置任务,例如 运行 自定义启动脚本...
  • Azure 中的 PaaS:Azure 云服务。 Azure 提供 2 种预配置的 VM。如果您需要托管网站,它们是 Web 角色;如果您需要 运行 后台进程,它们是 Worker 角色。

IaaS:基础架构即服务。

  • 云提供商将为您提供专用的 VM,因此您可以完全控制自己想要的任何自定义(您可以自定义 OS 服务和软件...)。它就像虚拟机 on-premises.
  • 如果您的应用需要对托管环境进行大量自定义以 运行。
  • Azure 中的 IaaS:Azure 虚拟机

云服务的 NIST definition 通常是寻找答案的好起点。 它给出了云服务的 5 个特征:

  • 广泛的网络访问
  • 按需自助服务
  • 资源池化
  • 快速弹性
  • 测量服务

然后说说服务模型,有SaaS、PaaS和IaaS。 简单地 运行 在云中安装您的应用程序并不足以说它是 SaaS。因此,不仅仅是针对非技术用户的应用程序,而是涵盖这些特征的应用程序。上面资源池的一个子点是在向用户交付解决方案时提供某种多租户功能。

1) PaaS 是否等同于开发/定制软件的开发环境,而 IaaS 是 运行 开发软件的执行环境(可以是任何环境测试或生产)?

PaaS 解决方案不一定是开发环境。它可以为正在开发的某些软件提供资源,而无需开发人员提供所有底层设施来实现该资源的交付。例如,SQL Azure 是一种 PaaS,它允许开发人员访问关系数据库服务。开发人员可以针对它编写和调用查询,而无需自己建立 SQL 服务器实例。

2) 在 PaaS 的情况下,我以 apprenda 为例。作为 Apprenda 的一部分,我看到 .net 、 Java 、 IIS 和 SQL 服务器被列为平台的一部分。这是否意味着我不必在我的本地机器或开发盒上安装所有这些,而是​​拥有一种安装了所有开发工具的远程机器,我只需要去编程我想做的任何事情? 这应该意味着您可以访问您的开发工具可以连接和管理的远程资源。服务器(例如 SQL 服务器)与您用来访问它的工具不同,例如 SQL Server Management studio。

3) 例如,如果我没有订阅 IaaS,我如何 运行 使用作为服务公开的平台开发的软件?

你不能。

4) 我还了解到 PaaS 可以是 public 或私有的(在公司的防火墙内)。如果是私有的,PaaS的提供者会不会基本上在我公司的基础设施上架设开发平台? 私有 PaaS 意味着公司已经设置了私有基础架构,以允许开发人员使用不需要由开发人员自己管理的解决方案架构的一部分资源。

5) 任何提供登录功能的网站都可以称为 SaaS 吗?例如:GMAIL、Yahoo Mail、Facebook 等

不,根据 NIST 的定义不是。提供用户登录与启用多租户不同。简而言之,如果该应用程序允许 companies/teams 用户组使用它,则它正在向 SaaS 发展。因此,考虑 Slack、Gitter 和 Freshbooks 等解决方案。

6) Google Drive、Apple iCloud 等可以称为 SaaS 吗? Google Drive 作为 Google Apps for Business 的一部分,是的。 直到你开始看到,"iCloud for business",没有。