如果您有关注到最近非常流行的DevOps技术的对话,那么您可能听说过无服务器功能。但是您可能没有意识到无服务器功能不仅仅是公共云提供商提供的功能。它们可以使用混合或私有云体系结构运行在本地或托管数据中心之外。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的博山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!什么是无服务器功能?
无服务器功能是作为无服务器体系结构的一部分运行的应用程序或应用程序的一部分。开发人员可以简单地将无服务器功能加载到无服务器托管环境中,然后配置应触发功能执行的条件。
无需按传统意义配置整个操作系统环境或安装软件,因此“无服务器”标签显得有点用词不当,因为这些功能仍然托管在服务器上,即使服务器环境是从最终用户抽象出来的。
最受关注的无服务器平台(例如Azure Functions和AWS Lambda)都是公共云服务。这些解决方案有时被称为“服务即功能”或FaaS,因为它们使用户能够使用类似于SaaS的基于云的体系结构来部署和执行无服务器代码。
公共云之外的无服务器功能
尽管公共云供应商主导了无服务器市场,但无服务器模型并没有内在的要求功能托管在公共云中。您可以轻松地在自己的数据中心内设置一个环境,允许开发人员以无服务器的方式部署功能,并使用事件驱动框架执行它们。
您可能要出于多种原因在自己的数据中心中运行无服务器功能。一是成本。每当执行无服务器功能时,公共云供应商都会向您收费,因此您在使用其服务时会不断产生持续的费用。如果您在自己的硬件上运行功能,则大多数投资是在设置无服务器环境时预先进行的。每个函数执行没有直接成本。从长期来看,您的总拥有成本可能会低于公共云中同等服务的总拥有成本。
安全是另一个考虑因素。通过在数据中心中保留无服务器功能,您可以将所有数据和应用程序代码保留在云之外,这可以帮助避免某些安全性和合规性挑战。
对于在您自己的数据中心中运行的无服务器功能,在某些情况下性能也可能会更好。例如,如果功能需要访问存储在您的数据中心中的数据,则在同一数据中心中运行这些功能将消除您的功能在云中运行但必须从服务器发送或接收数据时可能遇到的网络瓶颈。私人设施。
考虑使用无服务器解决方案而不是公共云中可用的解决方案的最后一个关键原因是,后者的服务仅对某些语言编写的功能提供本地支持。通常可以执行使用其他语言开发的功能,但只能通过使用包装器执行,这会带来性能上的损失。部署自己的无服务器解决方案时,您将具有更大的能力来配置其运行方式以及支持的语言。
就是说,可用于数据中心的各种无服务器框架在这方面都有其自身的局限性,因此您应该在选择选项之前评估它们支持的语言和打包格式。
数据中心的无服务器功能解决方案
在您自己的数据中心(或托管数据中心)中部署无服务器功能并不比在公共云中运行它们复杂得多。在公共云外部建立无服务器架构的主要方法有两种。
首先是在数据中心内运行私有云,然后在其之上部署无服务器框架。在OpenStack云中,您可以使用Qinling进行此操作。Kubernetes(这不完全是私有云框架,但相似之处在于,它使您可以将服务器池合并到一个软件环境中)支持Knative,Kubeless和OpenWhisk等其他无服务器框架。
第二种方法是使用混合云框架,该框架允许您在自己的数据中心中运行公共云供应商的无服务器框架。微软的混合云解决方案Azure Stack支持Azure无服务器平台,而Google Anthos 通过Cloud Run具有无服务器集成。(至于亚马逊的云,其混合云框架AWS Outposts当前不提供无服务器选项。)
第一种方法将需要花费更多的精力来设置,但是它可以更好地控制您使用的无服务器框架及其配置方式。由于许多用于私有云的无服务器解决方案都是开源的并且可以免费使用,因此它也可能使您获得更低的成本。
另一方面,第二种方法是使用公共云供应商的混合云解决方案,对于大多数团队来说,部署起来会更简单,因为它不需要设置私有云。它还具有能够在数据中心或直接在公共云中部署相同的无服务器功能的优势。通过Azure Stack部署的无服务器功能可以在不费吹灰之力的情况下提升和转移,以在Azure Functions上运行。
结论
公共云中的无服务器功能非常易于部署,但是它们不能为所有类型的工作负载提供的成本,性能或安全性。对于缺少公共云供应商的无服务器解决方案的情况,请考虑在自己的数据中心或托管设施中部署无服务器功能。