PaaS、CaaS或FaaS,如何选择?

哪种云计算架构将为客户提供更好的体验并提供更高质量的产品?哪个更易于操作并在截止日期前完成?哪条路径可以更好地处理支持、合规性和安全性问题?最后,能否以比较低的成本实施哪种方法?

PaaS、CaaS或FaaS,如何选择?

工程师可以选择容器即服务(CaaS)并对应用程序实施容器化,如果工程师不具备部分专业知识,那么可以选择平台即服务(PaaS)选择工具套件并遵循使用说明和限制。如果容器即服务(CaaS)和平台即服务(PaaS)都不符合需求,则可以从头开始构建所有内容,(采用基础设施即服务),也可以将功能部署到无服务器环境(采用功能即服务)。功能即服务(FaaS)是一种无服务器计算,旨在响应单个任务。例如,功能即服务(FaaS)可用于验证用户身份、对文本体执行拼写检查或执行数学计算。显然,有许多架构选项可以托管、配置、管理和部署代码到云平台。考虑到不同的产品,事情变得更加复杂。

PaaS选项包括Azure应用服务、AWS弹性Beanstalk、Google应用引擎、Red Hat OpenShift和Salesforce的Heroku等等。如果正在探索容器即服务(CaaS)解决方案,那么Azure、Google、AWS公司都有自己的托管Kubernetes服务,它们都有自己的缩写(分别是EKS、GKE和AKS)。另外,还有来自VMware、IBM、Oracle、Rackspace等的其他选项。

当然,还有更多的无服务器选项。Azure Serverless具有无服务器功能,Kubernetes Pod和应用程序环境。AWS云平台当前具有更广泛的无服务器选项,并将其无服务器分为用于计算、存储、数据存储、API代理等的功能类别。Google Cloud对无服务器进行了更广泛的定义,其中包含BigQuery和AutoML等服务。

CaaS、PaaS、FaaS和无服务器的关键注意事项

  • 目标受众——平台即服务(PaaS)和功能即服务(FaaS)选项首先通过使解决方案易于配置并与持续集成(CI)/持续交付(CID)管道集成,以进行部署来针对开发人员。容器将操作环境和平台配置参数化,因此这些工具通常针对运营人员和系统管理员。
  • 可配置性与敏捷性——通常,容器即服务(CaaS)是最可配置的选项,为操作员提供了更大的灵活性来选择平台和配置进行容器化。平台即服务(PaaS)和功能即服务(FaaS)选项专注于敏捷性,并帮助开发人员更快地部署和测试代码。
  • 有些平台即服务(PaaS)解决方案受到束缚——设计时已预先选择了平台即服务(PaaS)和功能即服务(FaaS)解决方案,这意味着已经被其平台选择和配置选项所束缚。这些解决方案是根据设计师对开发人员的需求、优秀实践和目标性能特征的意见而设计的。对于喜欢更大灵活性或更多控制权的运营商而言,采用这样的平台即服务(PaaS)和功能即服务(FaaS)可能会受到影响。
  • 技能和学习曲线——容器即服务(CaaS)解决方案的学习曲线更陡峭,并且需要更多的技能。
  • 供应商锁定——容器即服务(CaaS)解决方案通常在Kubernetes上开发,并且可以在不同的云托管选项之间迁移。尽管平台即服务(PaaS)和功能即服务(FaaS)解决方案能够以Kubernetes为基础进行设计,但它们通常不会向最终用户公开Kubernetes层,而是提供更简化的配置。这些配置是平台即服务(PaaS)和功能即服务(FaaS)解决方案专有的,并且通常设计为仅在一个云平台上运行。一些IT主管发现此问题,并理应担心被锁定在某一个云计算供应商。

指导进行研究和原型制作的问题

(1)企业是只能运行少数应用程序的小型团队吗?在这些情况下,应该考虑使用更简单的PaaS和无服务器选项,从而可以在不花费大量时间和专业知识的情况下预先配置大多数必需的平台。

(2)企业是否有零星的有效载荷,但仍需要在需要时扩大?作用域可以是微服务或功能,但也可以扩展到完整的应用程序和数据库。这些用例非常适合于无服务器计算,只需为使用的资源支付费用。

(3)企业是否具有合规义务或法规标准,强制报告执行容器、应用程序、数据库、操作系统或基础设施中的特定基础选项或设置?这是排除无服务器选项的重要原因。

(4)企业是否在利用许多专用平台或遗留应用程序?在这些情况下,可能很难找到兼容的平台即服务(PaaS)选项。同时,开发容器可以简化部署和依赖性管理。

(5)如果是大型组织或企业,在多个云平台中运营,并且在生产中具有各种应用程序和数据平台,这些组织可能选择对容器进行标准化,因为它在支持多个平台和配置选项方面提供了比较大的灵活性。如果合规性不是一个因素,那么仍然可以考虑无服务器。如果企业具有足够的技能和能力来开发Kubernetes上广泛的选项,则企业可能会避开平台即服务(PaaS)选项。具有足够规模和技术技能的组织(例如Shopify)可以选择以Kubernetes和容器为基础来设计自己的平台即服务(PaaS)。

(6)企业是否正在开发微服务并在基于云计算的微服务架构上进行标准化?建议容器或平台即服务(PaaS)都是不错的选择。

(7)了解应用程序的类型和最终用户的类型有助于企业预测将来的需求。

编译自原作者:Isaac Sacolick


分享到:


相關文章: