问题:哪个云平台是应用程序开发工作的最佳选择? 答案:这取决于它是PaaS,还是AWS Lambda。
如果你不希望维护自己的应用基础设施,而且你正在专注于云应用开发平台,可能会面临一个平台即服务选择(如Heroku或Cloud Foundry)的困境,以及像Amazon Web Services(AWS)Lambda这样的无服务器平台。但这两个选项有何不同呢? 让我们来看看。
基本计算单元:对于PaaS,计算的基本单位是应用程序本身,你仍然需要配置实例,尽管这些实例的维护由PaaS平台负责; 对于Lambda,操作的基本单元是功能或任务。有一些实例运行在幕后,但作为一个应用开发人员,他们是不可见的。
任务期限:在云应用开发平台的世界中,PaaS适用于长时间运行的应用程序,无论任务是否正在运行。Lambda用于在任务结束时具有确定终点的短期任务上。
必需的元数据:使用PaaS以及代码,你需要指定其他元数据,如语言、框架和运行时要求。而无服务器,所需的元数据要简单得多。例如,对于AWS Lambda,你只需要指定身份和访问管理角色、所需的RAM和超时间隔。对于云应用开发平台,无服务器更简单,而PaaS对基础设施提供了更多的控制性和灵活性。
通过RESTful API进行公共访问:PaaS应用程序的代码通过REST端点或网页来公开。而Lambda功能只能从受信任的来源访问,却无法从公共互联网访问。
定价模式:使用PaaS,你可以为应用程序使用的计算资源或实例付费。使用Lambda,你只需对在应用程序中执行的成功的功能或任务付费。如果你的应用程序具有不可预知的或短期的工作负载,这可能会有很大的节省。
结论
PaaS和无服务器平台相似,它们都抽象出底层基础架构,并让你管理应用程序的代码。但它们的运作方式不同。如果你的应用程序运行时间长,你需要对基础架构进行一些控制,并且希望采用更一致的支出模式,可以选择PaaS作为云应用开发平台。 如果你愿意为每个任务付费,因为你拥有的是短期和不定期的任务,且希望完全无障碍地管理基础设施,那么可以选择像AWS Lambda这样的无服务器作为云应用开发平台。