在azure中主要有以下3种不同的托管环境。
平台即服务(PaaS)提供了可管理的托管环境,可以直接部署应用而不需要关心背后的虚拟机和网络资源。例如,当需要托管一个应用时,只需要指定实例的个数,azure(服务)就会替你管理和配置那些背后的资源,而不需要手动一一创建虚拟机。azure 应用服务(app service)就是PaaS的一个例子。从IaaS到PaaS之间,还有其他选项。例如,azure 虚拟机可以使用vm scale sets来完成平行扩展。而vm scale sets不一定来自PaaS,但PaaS有这个功能,是可平行扩展的。
函数即服务(FaaS)提供了一种应用服务,甚至不需要关心托管环境。你只需要把代码放上去,不用部署。服务会自动运行你的代码。也不需要去管理那些计算资源。这些服务使用的是无服务架构,可根据流量所需扩展或缩小。 Azure Function就是FaaS。
IaaS提供了最底层的控制,以及灵活性和可移植性。FaaS提供使得部署和托管变得简单,弹性伸缩并且有潜在的成本节省,因为你只需在代码运行时才支付费用。 PaaS在两者之间。通常,服务提供的灵活性越高,您负责配置和管理资源的越多。 FaaS服务自动管理运行应用程序的几乎所有方面,而IaaS解决方案需要手动配置和管理,连接所创建的虚拟机以及网络组件。
总结: 在选择云架构方案时,先考虑FaaS,其次是PaaS,最后才考虑IaaS(如果必须)。因为从FaaS到PaaS到IaaS,手动配置和管理的复杂度依次增加,潜在费用也依次提高。如果不需要,一般不需要用IaaS。另外,如果部分资源(比如数据)一定要放本地,那么就不建议使用云,不建议使用hybrid,就是本地和云环境结合的架构,会导致复杂度成倍增加。