在最近的调查中,调研机构Sumo Logic公司调查了采用亚马逊网络服务(AWS)、微软Azure和谷歌云平台(GCP)等云计算服务的1500名客户。根据调查,四分之一的受访者已经部署了Docker容器,几乎有23%的受访者表示正在使用AWS Lambda无服务器计算框架。
很明显,无服务器得到很多用户的应用。在应用程序开发和操作中,其采用都会伴随着一些必要的变化。这意味着无服务器也正在改变人们利用公共云的方式。
思维的转换
首先,无服务器并不意味着没有服务器。它只是意味着用户使用了一个自动化机制,允许其专注于应用程序本身的目的和构建。这种机制确保用户分配足够的服务器和存储来支持应用程序。这让用户觉得自己应该从一开始就成为公共云的一部分。
事实上,像AWS、Google Cloud、Microsoft Azure这样的公共IaaS云将他们的云计算资源视为一种虚拟数据中心。但是,不是在数据中心购买和安装物理服务器,而是虚拟配置计算服务器和存储设备,更不用说数据库,安全性,治理等其他云计算服务。
事实上,许多企业IT部门都非常乐意摆脱数据中心内的物理服务器的管理,使得现有的公共IaaS云的许多限制被摆脱。但是,几年来人们已经采用公共IaaS云,开发人员和Cloud Ops专业人员正在大力推行持续监控服务器(不管是否配置),以支持工作负载。
传统的IaaS导致了这个问题,这有两件事情。首先,他们过度配置所需的服务器,然后寻找一个"不能拥有太多资源"的模型。或者,第二,他们没有提供足够的资源,而是去"让他们要求更多"的模式。这两者都是错误的方法。
虽然估计有所不同,但公共IaaS云资源在实际需求上的配置几乎达到了40%.这意味着大多数企业的支付比云计算服务多40%.这不包括由于错误而停留在生产中的服务器,或者由于并非分配了该工作负载所需的所有云资源而导致失败的应用程序所带来的损失。
采用无服务器
PaaS云真的是无服务器系统的灵感,比如AWS Lambda和Microsoft Functions.PaaS作为一项服务而开始得到更多的应用,动提供用户所需的服务。它在幕后工作,并且使开发人员和操作人员免于不断地弄清楚。
在IaaS无服务器产品的核心,人们会遇到一些常见的模式:
能够让开发人员不必为工作负载分配正确数量的资源,以及跟上运行的情况,以及需要配置所需的资源。只需为其使用的内容支付费用,直至用户您在无服务器子系统中编写的功能使用写毕。
将无服务器计算与全新和传统应用程序相连接的能力。虽然用户可以使用无服务器系统编写完整的应用程序,但大多数人选择从事全新或传统工作负载的事务。
能够精确计算工作负载消耗的资源。过去,人们必须对各部门的云服务器的成本进行评估和分配。即使部门只使用了分配的云服务器的3%,他们也可能不得不支付33.33%的费用。而无服务器使成本核算和扣款更加准确和公平。
能够创建作为功能集的工作负载,所有这些工作负载都有自己的自动化分配资源、成本以及利用任何功能来完成其工作的能力。这意味着要返回到一个服务集合的应用程序,因此需要有一些好的设计工作进入面向功能的无服务器应用程序。
对于很多人来说,这些无服务器功能也称为服务功能,或FaaS.FaaS不需要对某个框架或库进行编码。相反,当谈到语言和环境时,这些功能就是作为常规应用程序构建的。
例如,AWS Lambda功能可以在Java,Python和大多数JVM语言中实现。然而,FaaS函数确实有显著的架构限制,特别是在状态和执行持续时间方面。
创建无服务器策略
除了云计算技术的实施之外,企业还需要了解无服务器开发意味着什么。
首先,尽管科技媒体对于无服务器技术有一些很好的说法,但就其带来的价值而言,它更具策略性而不是战略性。因此,虽然这里有一些价值,但是从消除人类所需的云计算资源数量来看,其结果不是改变游戏规则,而是一个改进。
其次,这更多的是关于全新的和更小的应用程序,而不是重构传统应用程序。就像容器一样,人们希望把所有的东西都放进去,发现在某些情况下,要考虑到需要完成的工作量是不可能的。基于无服务器的应用程序最适合无服务器的应用程序,因此,全新的应用程序以及更小和更具策略性的应用程序将从无服务器技术中获益最多。
最后,用户需要防止供应商锁定。考虑到无服务器与谷歌、微软、AWS云平台不同,用户可以依靠构建支持其客户和云计算的无服务器系统的平台。可移植性可能难以构建到基于无服务器的应用程序中。没有可行的标准或IaaS无服务器云提供商之间的密切协调。
那么,无服务器能够改变计算吗?事实上,它并没有比其他云计算技术在过去几年中所占的比例要大得多。
无服务器就是要做一些公共云应该从一开始就应该做的事情。它更多的是进化而不是创新,有时这是一个更理想的追求。