云计算术语 - IaaS,PaaS和SaaS

3

我查看了一些Stackoverflow和网络上的问题,这些问题非常有用。关于IaaS、PaaS和SaaS,我读到了一些问题。然而,由于我没有看到任何实际应用,所以有很多问题可能非常幼稚。

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

2)在PaaS的情况下,我看到了一个例子——Apprenda。作为Apprenda的一部分,我看到了.NET、Java、IIS和SQL Server作为平台的一部分。这是否意味着,我无需在本地计算机或开发工具中安装所有这些内容,而是可以获得一个类似于远程计算机的地方,所有开发工具都已经安装好了,我只需要去编写想要的程序即可?

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

4)我还读过,PaaS可以是公有的或私有的(在公司的防火墙内)。如果它是私有的,那么提供PaaS的人会为我的公司基础架构设置平台吗?

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

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

3个回答

4

PAAS:平台即服务

  • 您不需要关心底层硬件或操作系统。
  • 您只需关心自己的代码,平台会照顾其余部分。
  • 扩展是由平台完成的。
  • 您必须遵守平台强加的一些限制。
  • 按使用量付费(更多流量、使用的存储空间->更高的账单)。
  • 例如 Google AppEngine、Heroku、AWS Elastic Beanstalk。

IAAS:基础设施即服务

  • 您租用基础设施,可以选择内存、CPU、磁盘大小、操作系统等数量。
  • 您可以设置运行环境,并完全选择 NodeJs、Redis 或 LAMP 堆栈或任何您想到的其他堆栈。
  • 您负责为租用的基础架构配置高可用性和扩展性。
  • 更多的自由但需要更多的配置(devops)。
  • 按所分配的资源付费(您事先设置您的机器并选择您的基础设施)。
  • 例如 Google Compute Engine、Amazon EC2。

但世界并不是那么黑白分明。PaaS 和 IaaS 朝着彼此靠拢。例如,AppEngine 托管 VMS 在 PaaS 环境中为您提供更多选择底层操作系统的自由。而 Google 的 AutoscalerKubernetes 将管理基础设施带到更加声明性的水平。

最后,SaaS 产品面向非技术终端用户。因此,Apple iCloud、Google Drive、Gmail、Yahoo webmail 是 SaaS 的例子。


谢谢Koma!这很有帮助。由于我没有接触过一些东西,所以无法想象出来。关于PaaS,我们是否可以获得一个开发环境,例如:安装了DB和所需服务(付款等)的eclipse,用于针对特定业务线的产品?在这种情况下,开发是否应该在本地完成,所有设置都在我的本地机器上,并且必须将代码移植到云中执行?在实际情况下,我们是否会获得不同的云实例来设置QA、INT、PRE-PROD和PROD环境? - Punter Vicky
我还读到说,使用IaaS,我们可以从几个操作系统中选择,并且为了安装我们选择的操作系统,我们需要选择Metal as a Services (MaaS)。这是真的吗? - Punter Vicky
@PunterVicky 我只能说,对于AppEngine,有一个SDK可以在本地模拟平台,以便您可以开发/测试,然后上传您的代码。对于Google Compute Engine上的iaas,操作系统的选择非常详细,您甚至可以构建自定义映像。从未听说过MaaS。最后,您可以根据需要设置DEV / STAGING / PROD项目,至少在Google Cloud Platform上是这样。 - koma
这非常有帮助,Koma。除了SDK之外,AppEngine还提供其他功能吗?例如:支付网关等。如果我想从AppEngine迁移到另一个PaaS提供商,会有多难? - Punter Vicky
不包括付款提供者,请结账stripe.com,例如;放弃GAE有点超出范围,并且在评论中回答太多。 - koma
Sure Koma,抱歉最后一个问题 - Google AppEngine除了用于开发的SDK之外,还提供其他服务吗? - Punter Vicky

1
我尝试提供更简单的答案,并与Azure部署模型进行映射。
SaaS: 软件即服务。
- 这是将您的Web应用/服务托管到云中的最简单、最容易、最快捷的方法。 - 您的Web将自动部署到某些VM中,并在需要时进行自动缩放。 - 您不需要关心VM。云提供商将对其进行维护。 - Azure中的SaaS:Azure应用程序服务(或Web应用/网站)。
PaaS: 平台即服务。
- 云提供商将创建预配置的VM,安装所有先决条件(例如:安装了.NET 4.5和IIS的Windows Server 2012)。这些VM将在完全启动后自动加载您的站点/应用程序。 - PaaS几乎与SaaS相同,只是它允许您远程桌面连接到VM,在其中执行一些配置任务,例如运行自定义启动脚本... - Azure中的PaaS:Azure云服务。Azure提供两种预配置的VM。如果您需要托管网站,则为Web角色;如果您需要运行后台进程,则为Worker角色。
IaaS: 基础设施即服务。
  • 云服务提供商将为您提供专用虚拟机,因此您可以完全控制进行任何自定义(您可以自定义操作系统到服务和软件...)。 它就像本地的虚拟机。
  • 如果您的应用程序需要在托管环境中进行大量自定义以运行,则此选项非常适合。
  • Azure中的IaaS:Azure虚拟机

谢谢,我现在正在使用Cloud Foundry,并且可以理解您的解释。PaaS还提供了自动扩展功能,我想这被称为与SaaS相似之处。 - Punter Vicky
@huaminhluan - 你提到了“..这是将您的Web应用/服务托管到云中的最简单,最容易,最快速的方法...”,但我认为这不是SaaS的例子-实际上,它可能是PaaS或IaaS。请问您能否提供支持您说法的任何资源! - KGhatak

0

NIST定义的云服务概括是寻找答案的好起点。它给出了云服务的5个特征:

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

然后讨论了服务模型,即SaaS、PaaS和IaaS。仅仅在云中运行应用程序并不能说明它是SaaS。因此,它不仅仅是针对非技术用户的应用程序,而是涵盖了那些特征的应用程序。在上述资源池的子要点中,提供一些多租户能力可以将解决方案交付给用户。

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

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

2)在PaaS的情况下,我看到了Apprenda作为一个例子。作为Apprenda的一部分,我看到了.NET、Java、IIS和SQL Server被列为平台的一部分。这是否意味着,我不必在本地机器或开发框中安装所有这些内容,而是可以拥有一种远程机器,在那里安装了所有的开发工具,我只需要去编写想要的程序?

这应该意味着您可以访问您的开发工具可以连接和管理的远程资源。服务器(比如SQL Server)与您用于访问它的工具(比如SQL Server Management Studio)不同。

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

你不能。

4) 我还读到过,PaaS 可以是公共的或私有的(在公司的防火墙内)。如果它是私有的,那么 PaaS 的提供商是否会为我公司的基础架构设置平台开发? 私有 PaaS 意味着该公司已经建立了私有基础架构,允许开发人员使用解决方案体系结构中的资源,这些资源不需要由开发人员自己管理。

5) 任何提供登录功能的网站都可以称为 SaaS 吗?例如:GMAIL、Yahoo Mail、Facebook 等。 根据 NIST 的定义,不是这样的。提供用户登录并不能等同于启用多租户。简单来说,如果应用程序使公司/团队与一组用户使用它,它就朝向了 SaaS。因此,请考虑像 Slack、Gitter 和 Freshbooks 这样的解决方案。

6) Google Drive、Apple iCloud 等可以称为 SaaS 吗? 作为 Google Apps for Business 的一部分的 Google Drive,是的。 直到您开始看到“iCloud for business”,否则不是。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接