目录
Serverless,是一种新的架构方式。它的核心思想是让开发者专注构建和运行应用,而无需管理服务器。
在没有使用Serverless时,企业除了开发应用程序之外,还需要请工程师投入精力关注基础架构的完整性 ,包括服务器,网络,存储等。管理这些,是一个昂贵的过程,还需要熟练的技术人员。
Serverless消除了这种需求。Gartner预测,到今年年底,全球20%的企业将会部署Serverless,这不足为奇。在接下来的文章中,我们将介绍Serverless在未来十年中将如何发展。但是首先,什么是Serverless?
什么是Serverless?
Serverless并不一定意味着没有服务器。让我们将其与“云”区分开来,以便为你提供更好的理解。Serverless计算是云计算的一种,但从另一角度来看,它的含义并不相同。
云计算只是意味着你可以通过互联网访问的租用计算机。你需要通过云支付计算能力,数据库存储,这适用于小型企业的应用程序以及其他资源。
Serverless是一种执行模型,其中云提供商(AWS,Azure或Google Cloud)负责通过动态分配资源来执行一段代码。并且仅收取用于运行代码的资源量。该代码通常在无状态容器中运行,该容器可以由各种事件触发,这些事件包括http请求,数据库事件,排队服务,监视警报,文件上传,计划的事件(定时作业)等。因此,Serverless有时被称为“功能即服务”或“ FaaS”。
Serverless,为那些需要服务器但希望不去购买,维护和升级服务器成本的公司,提供了方便。
Serverless的明显好处是它具有成本效益和可扩展性。听起来不错吧?但是,任何系统都有其优点和缺点。在继续阅读本文时,你将了解一些有关Serverless计算的问题,以及公司如何发展来缓解这些问题。
让我们先来看一下Serverless的一些趋势。
Serverless的发展趋势
混合的Serverless系统
每个系统架构(例如私有云或边缘计算)都有其优缺点。例如,容器作为云计算的服务类型可能需要管理,但是它是供应商专有的,这意味着你的程序可以在任何计算机上运行。对于Serverless体系结构,这些属性是相反的。
现在,组织能够充分利用你需要的专业人士,这不是很棒吗?今年可能的发展之一是混合Serverless系统的开发。你可能会问,什么是混合Serverless系统?
使用混合Serverless,你可以让某些功能在容器中运行,而其他功能则在Serverless中运行。简而言之,程序可以在Serverless和其他类型的云计算的组合上运行。
使用Kubernetes进行跨平台标准化
Kubernetes已成为不同云计算公司的容器管理标准。但是,由于标准化是相对较新的产品,因此尚未应用于Serverless体系结构。
Kubernetes不仅提供轻松的开发和操作,还提供易于使用的内置功能,例如扩展,结构管理,网络,调度程序等等。此外,在Serverless计算中使用Kubernetes标准,可以软件存储的提供可移植性。
这意味着Serverless的用户可以从不同的云提供商那里获得服务。实际上,开发人员可以自由选择和使用不同平台提供的功能,并且可以和谐地工作。
Serverless实现的扩展
当前,Serverless计算通常包含无状态应用程序。这些是不保存用户数据的程序。例如,如果你使用无状态应用程序搜索药品配方信息,则不会保存此信息。这意味着该应用无法适应个人的需求。
有状态的应用程序,将来也有可能使用Serverless。这需要Serverless在保持FaaS特性的同时,具备数据保存的能力。此外,由于延迟问题,目前Serverless计算尚未用于运行的逻辑复杂和耗时的应用程序。随着技术的发展,我们可能会看到使用Serverless来运行这些计算密集型的应用程序。
Serverless安全性的增强
就像其他任何基于云的技术一样,Serverless计算也存在安全问题。尽管有供应商管理和保护基础结构,但是FaaS系统依然有责任保护用户编码,数据和业务逻辑的正常可用。
Serverless中的功能还为网络安全攻击提供了更多的机会。当然,开发人员一直在寻找方法来应对Serverless计算中面临的挑战。在这种情况下,它涉及到Serverless更高的数字安全性。
绿色计算
环境因素是高科技企业最被忽视的方面之一。请记住,程序和应用程序所使用的每台设备都会消耗电能和其他资源。下图是2012年的图表,显示了需求量。
如你所见,与八国集团中的大多数国家的能耗相比,IT部门需要更多的电力。然而目前我们依然以火力发电为主,火力发电厂发生的二氧化碳和其他气体,对我们的环境会产生有害影响。
Serverless提供了通过提高效率来降低耗能的措施。首先,运行一个大的服务器中心比运行几个小的服务器中心要高效得多。其次,在Serverless下,功能仅在触发后才运行。硬件和基础架构的发展可以进一步提高Serverless计算的能源效率。
总结
目前,Serverless已经为快速发展的软件开发行业提供了解决方案。尽管Serverless计算的功能仍然受到限制并且正在不断改进,但它可以帮助公司(尤其是初创公司)降低成本,同时为他们提供迅速扩展的机会。
电信基础设施的改善以及5G的发展都将提高网络处理数据的能力。随着对Serverless计算的需求增加,云提供商也将改善其提供的服务。
译文链接:https://dzone.com/articles/what-does-serverless-architecture-hold