无厨房的餐厅,无服务器的计算

科技云报道原创。

凌晨三点,机房的服务器又宕机了。这些服务器可能需要你用几小时、几天甚至更长时间来恢复,然后你还需要去更新系统,修复安全漏洞。更新又会导致新的不兼容,从而影响到业务的运行,似乎这是个"死循环"。

这个时候,你可能需要了解下"无服务器"的魅力了。服务器带来无穷无尽的困扰是目前"无服务器"架构受欢迎的重要原因之一,你的老板不可能总容忍你拿服务器故障来当影响业务运行的借口,"无服务器"则让人们摆脱了这种困扰。

什么是“无服务器”?

对于很多新手来说,听到无服务器这个词一定会非常震惊,无服务器?那怎么来提供计算呢?其实,所谓的无服务器并不是指没有服务器,而是一切都由云提供商负责,人们不再需要担心由于基础设施故障而影响业务运行。

使用无服务器这种服务模式,开发人员只需部署适当的代码,其他一切交给无服务器就可以了。但值得注意的是,你可以使用无服务器服务但你并不拥有或管理它们,与云模型一样,你只需根据使用来为其付费就可以了。

无服务器是一个很好的销售术语,但它并不是准确的,严格意义上说是应用无服务器。打个比方来说,无服务器就像无厨房的餐厅一样,如果你想要的是菜单上标准的某道菜,就会有一位公用的厨师为你烹饪,而且速度、服务、口味俱佳,价格还可以根据你的菜量来定价的,这无疑对于一部分人来说是很棒的选择。

但如果你想要一道菜单上没有的定制菜,那么你最好还是有一个自己的厨房。无服务器的优势在于省去你自己购买、配置、部署、运维服务器的精力和时间,可以为你提供你需要的最佳环境。但如果你有特殊需求,无服务器可能并不是很适合你。

无服务器是如何工作的?

介绍了无服务器的定义,我们来看下无服务器是如何工作的呢?在传统IT服务情况下你必须自己拥有自己的基础架构,还需要保证这些架构的稳定性、可扩展性、安全等需求。例如web服务器,客户端一个请求,服务器就会回复"响应",如果访问量过大,那么就需要扩展服务器了。

云时代,云服务器的采购模式则让用户省去了前期购买物理服务器的过程,你可以购买云服务去支撑你的业务,但是购买云服务器的时候,你还需要考虑负载均衡、配置服务器系统、安全策略等等。依然有很大的麻烦。

无服务器模式提供了与传统模式完全不同的方法。它并不需要你购买服务器或云服务器,无服务器会将常见的各种需求按照标准的模式部署在计算容器中运行,就像一个已经为你业务应用部署好的系统,你只需要输入代码并实时自动处理,当一个请求来的时候,就会自动运行在无服务器。

无服务器会根据你的应用程序负载和服务器请求,在几秒钟内实现向上或向下扩展,它了解用户的当前情况并自行调整以适应不断增长的基础设施需求。换句话说,无服务器计算具有灵活的事件驱动的扩展能力。同时它以"即付即用"模式的形式运作。不仅可以节省购买基础设施的时间,还可以显着降低开发成本。

无服务器架构可以让人们更好的共享应用资源。在过去,人们会疯狂地创建自己新应用实例,例如,在自己的虚拟机中运行Ubuntu Server,每个人都使用相同的操作系统,并且同一个需求在不同的虚拟机中的Ubuntu系统中重复运行成百上千次,无服务器则避免了所有这些重复工作,使云计算变得更加便宜,特别是对于偶尔运行并且从未真正有高负载需求的企业基础架构平台来说,更是节省了大量的人力物力。

无服务器的优缺点

无服务器的优点有很多,上文中我们已经提到一些。例如降低用户的运营成本,无服务器本身就相当于一个解决方案,用户可以直接拿过来用,而不必为每一个需求去专门搭建应用环境,而且采用的是根据流量的模式来进行付费,可以大幅降低运营成本,特别是对于不断变化的早期的应用负载需求。

同时,无服务器的扩展性更强,而且这种扩展并不需要你来计算,而是根据你的业务需求,在几秒内就能自动将你的需求无限扩展,让你的应用端无感知。而当你的需求降低的时候,又自动减少你的资源需求,让你不必付出额外的费用。你甚至不需要考虑需求多少处理器来满足你业务需求的问题,而是自动根据你的需求实现扩展。

当然,无服务器也并非完美的。由于服务器是第三方运维,所以用户缺少控制权,由于提供商系统宕机,功能的丧失,强制性的升级等等原因,用户可能缺乏对系统的把控权,这样让自己的业务运行情况缺少了控制。而且,无服务器的模式也并不需要长时间运行的应用,长时间采用无服务器的成本其实是非常高的,如果你的进程持续运行很长时间,则可能会需要运行自己的服务器。

除了上面的两点,用户可能还会介意无服务器的供应商锁定,目前无服务器的发展尚处于初期阶段,所以每个供应商的标准架构各不相同,这就很容易形成供应商绑定,让你很难进行改变,你在这个供应商能够实现的功能,迁移到另一个供应商可能并不能实现这种功能,即使能够迁移,可能过程也会十分复杂。

目前,很多公有云的提供商都非常看好无服务器服务,并已经推出相关的服务器,例如亚马逊推出的AWS Lambda,微软的Azure Functions,谷歌CloudFunctions都能够提供无服务器服务,另外,IBM OpenWhisk与阿里云也都能够提供类似的服务。目前来说,无服务器还有其局限性,还不是主流趋势,但是随着创新技术和新功能的出现,无服务器很可能成为未来主流计算方式之一。

【科技云报道原创】

微信公众账号:科技云报道