Serverless 平台选型原则
时间:2022-03-29 22:03:02 | 来源:行业动态
时间:2022-03-29 22:03:02 来源:行业动态
讲解了这么多选项,我们到底该如何选择?与一切软件架构选择难题一样,问题的答案还是跟具体的需求密切相关。
首先,企业需要评估现有软件资产及发展目标。在大型机上运行着海量Cobol遗留程序的组织,其发展路径当然不可能跟已经拥有规模化云软件资产的组织相同。
如果企业中已经拥有不少云资产,请明确列出现有部署方案、具体使用哪些云服务商以及对应的可用区。此外,总结客户及用户的位置与服务使用模式也非常重要。
例如,需要24/7全天候保持统一负载级别的应用程序就不太适合无服务器部署相反,合适的服务器、虚拟机或容器集群也许成本更低也更易于管理。另一方面,具有明确偶发运行特征、负载规模灵活多变且往往由特定操作(例如源代码签入)触发的应用程序则是无服务器架构的完美匹配对象。
另外,分布在全球各地而且对延迟要求严苛的服务,则特别适合部署在多可用区或边缘端点之上。因为原本在华盛顿特区使用的服务,可以被完美迁移至弗吉尼亚州的目标可用区内。
如果您的企业已经拥有丰富的Kubernetes使用经验,不妨考虑选择Kubernetes的各类开源无服务器平台。但如果没什么Kubernetes经验,最好还是选择原生云FaaS基础设施,这时候开源(例如无服务器框架)还是专有(包括AWS Lambda、Google Cloud Functions或者Azure Functions)就不那么重要了。
如果企业所构建的无服务器应用程序依赖于云数据库或流媒体服务,则应考虑将它们部署在同一云环境内,最大程度降低应用程序之内各组件间的延迟。请放心,这不会对无服务器框架选择造成太大影响。例如,使用Google Cloud Bigtable数据存储的应用程序完全可以选择Google Cloud Functions、Google Cloud Run、Serverless Framework、OpenWhisk、Kubeless、OpenFaaS、Fission或者Knative等多种方案,且继续保持稳定的最低延迟水平。
在大多数情况下,您的应用程序可能与常见用例颇为相似、甚至完全相同。这时候,大家就应认真评测目标无服务器平台的示例和库资源,看看有没有能够拿来就用的参考架构。事实上,大部分函数即服务系统并不需要编写大量代码:FaaS拥有丰富的可重用代码资源,而且架构本身也经过良好测试及验证。无需大量调试,企业就可以将其化为己用、大大提升工作效率。