我是否正确理解了,通常 IaaS(主要指 rackspace 云服务器)将提供虚拟服务器,客户端将需要在该服务器上执行操作系统更新、软件更新、防病毒、托管备份和其他常见的非硬件服务器管理任务。另一方面,PaaS(主要指 heroku)几乎所有这些都由主机处理,可能只需要偶尔进行外部备份。灵活性和定制化是主要的权衡?
答案1
是的,你说对了。
对于 Rackspace 云服务器 (IaaS),您可以选择支付托管支持费用,这意味着您可以让 Rackspace 处理许多系统管理任务。不过,您仍然需要处理一些事情。
对于 PaaS,您几乎根本不关心服务器。就您而言,只有一个允许您发布应用程序的 Web 界面。您可以添加可选服务(一些免费,一些付费),这些服务可添加数据库等功能,但您不知道它们的具体设置方式。
答案2
您还可以使用 EngineYard 之类的产品,它感觉像是这两种方法的混合:您可以使用定制的 EC2 实例来推送您的应用程序,但如果您还将 Chef 食谱推送到该实例,您可以进行更大的定制。
我不确定您是否可以同时获得定制 + 标准化部署环境的最佳效果,或者同时获得难以实施调整的两全其美的效果,因为标准化环境并不完全适合您(并且定制非常接近)。
顺便提一下,Heroku 的一个优点是,您可以编写相对可移植且可水平扩展的应用程序。这是 PaaS 为您提供的束缚,如果您发现 Heroku 不太适合您并且您需要 IaaS 解决方案,这并不是一件坏事。
答案3
您可以将 IaaS 视为系统管理员的云,将 PaaS 视为开发人员的云,将 SaaS 视为最终用户的云。
IaaS 为您提供基础设施的自助配置 - 计算、存储和网络。您需要自己管理这些内容,包括配置、更新等。它抽象了硬件的细节,通常通过虚拟化(但并非总是如此 - 裸机云直接在硬件上为您提供 IaaS)。
PaaS 为您提供自助部署应用程序的服务。它抽象了服务器和其他基础设施的细节,包括扩展和恢复。它确实要求应用程序在开发时遵循某些约束以实现这一点,例如12 因素设计原则。
SaaS 为用户提供应用程序,而无需自行安装或管理底层系统。