点击上方“Unitimes” 可以订阅哦!
unitimes.io
全球视角,独到见解
“无服务器交互系统的设计就是通过对区块链上的状态更改以及对加密数据的维护来实现交互,并在无服务器交互的基础上,对交互功能进行分解和优化。”
作者:吴为龙
编辑:李画
来源:碳链价值
作者简介:
吴为龙,Genaro Network创始人,趣派科技CTO,第一批区块链开发者,曾为硅谷美信集成公司核心开发者,并为三星提供算法。SPoR + PoS可持续共识机制发明人,Genaro Virtual Machine缔造者。
不管是从技术发展的方向,还是从网络发展的需求,随着服务器的瓶颈被发现,下一代互联网都在向着无服务器交互系统的方向发展。
我将在这篇文章中介绍无服务器交互系统,包括它的定义,它的特点,它的架构,也将分析无服务器交互系统与区块链的密不可分的关系。
作为下一代互联网的无服务器交互系统,它的发展必须要利用到区块链技术,而区块链应用的落地与壮大,也需要无服务器交互系统的支撑。
01
什么是无服务器交互系统
当我们与互联网打交道时,我们的每一次交互都会被分作前端操作和后端操作这两部分来执行,前端操作以完成交互效果为主,比如网页的动态显示,主要体现在页面结构以及交互实现,不需要直接调用后台数据;后端操作是指实现数据平稳的被读取出来的操作,比如在网页查询一个关键词,就要根据关键词从后台找出用户想要的搜索结果。
如今互联网的后端操作,或者说后端服务,是依赖中心化服务器来运转的,这样会带来一个问题,就是当很多用户在同一时刻进行相同的操作时,需要排队等候同一个中心化服务器进行处理。
比如双十一零点的时候在天猫购物,同一秒会有数十万的操作涌入,但这些操作都是由一个中心化服务器来完成的,就像我们在超市排队付款一样,需要由一个收银员来一个顾客一个顾客的处理。虽然天猫用动态扩容的方法让这个中心化服务器的能力不断增强,但我们依然会发现页面出现“系统正忙,请稍后再试”的情况。
无服务器交互系统是指当我们使用互联网时,后端服务不再由中心化的服务器来提供,用户直接面向带有功能组件的网络系统,用户需求由功能组件的交互操作来提供,这个功能组件可以是邮件功能,可以是拍卖功能,可以是音乐功能。也就是说,后端服务不是先找到服务器,然后由服务器维护资源,而是围绕一个用户和功能组件的交互操作展开对资源的维护。
从技术角度来看,无服务器交互系统有以下两大特点:
1
资源与服务器无关
资源是指通过指令在服务器中取回的交互结果,包含文本、图像之类的数据。
在中心化服务器架构下,资源直接和服务器相关。一个后端操作需要访问服务器取回交互结果,那么随着访问次数的指数级增长,要求服务器和相关的服务扩展也指数级增长。
在无服务器交互系统下,资源和服务器无关。一个后端操作可以将获取资源的通用操作细化为多个具体操作,再将这些具体操作细分成一个个功能组件。此时的每一次资源调配面向的都是可以被细分的交互操作,由系统中无数的功能组件来完成,整个系统可以保障高的可用性。此外,系统可以根据需求来有选择性的优化功能组件,在保证整个系统最优化的同时实现维护成本的最低化。
02
交互与服务器无关
交互是指系统对用户指令做出反馈,交互的效率与用户体验息息相关。
在中心化服务器架构下,交互是通过http来进行回复的,读快写慢,用户的增加会迅速提升交互压力,导致系统统对交互的反应降低,从而产生卡顿。
在无服务器交互系统下,交互是通过函数来进行回复的,任何交互都可以被封装成很小的服务,如果一个交互功能组件阻塞,可以去另外一个交互功能组件进行交互,不会因为调用单点而造成阻塞,用户交互的指数型增长不会影响到访问的流畅性。
此外,在无服务器交互系统下,好的交互设计可以获得相关的激励,而不好的交互设计将会被剔除出来,这有利于好的交互功能组件的维护和发展。
通过对无服务交互系统特点的分析不难发现,当系统从中心化服务框架演变成功能性组件服务框架后,服务器将不再需要承担大的交互压力和查询压力。以无服务器交互系统为基础的下一代互联网将彻底提升并发处理能力,并可以保障系统稳定的可用性。
这样一来,当用户在双十一清空购物车的时候,就不会因为同时付款的人太多而购买失败;当用户在上海车牌网络拍卖车牌的时候,也不会因为同时查询报价的人太多而报价无效。
对于互联网本身,无服务交互系统更易维护,同时更具扩展性。
在未来,工程师通过搭建和维护细小的功能组件,就能容易地构建出一个稳定的高可用的网络服务,并且可以高效率的实现功能的升级和扩展,这不仅会让互联网生态的繁荣程度提升一个数量级,还会大大提高网络的可行性和可扩展性,让更多的点对点经济发展起来。
02
无服务器交互系统的架构
无服务器交互系统采用的是FaaS (function as a service,函数即服务) 架构。它是一种以函数作为设计基础的网络架构,也就是说,它是面向功能组件的而不是面向服务器的。
在设计时,面向服务器与面向功能最大的区别是,前者是通过设置层层缓存来保障能够稳定的对服务器进行调用,后者是通过对功能细化和对功能进行针对性的扩展来完成对特定功能的调配。
无服务器交互系统在架构设计上有两个特点,一是要以设计交互功能为主,二是要对交互部分进行可扩展性的提高。我们以传统邮件设计和无服务器交互系统下的邮件设计为例来说明这两种互联网架构的区别。
在传统的邮件架构中,系统是通过特定网络协议和多层级服务器来架构的,其中SMTP是常用的基于文本的协议,除了通过该协议进入网络,还需要经过邮件访问协议访问相关服务器和镜像。这种架构需要多次和服务器进行交互,并通过不同的协议进行通讯,而用户也要通过不同的协议进行查看。
image在无服务器交互系统的邮件架构中,系统只需要设计进入网络前的功能和从网络进来时需要实现的功能即可,不需要考虑协议的部分,也就是说,只需要站在进入网络前和从网络进入客户端这两个角度设计交互系统即可。
以邮件系统为例,交互功能分为发送邮件和接收邮件两种,发送邮件又可以细分为加密附件和区块链上状态改变,接收邮件又可以细分为解密附件和区块链状态改变。将大功能细分成小功能的架构是无服务器交互系统设计的规则。
image在本例中,加密附件部分非结构化的交互数据可以用加密存储的方式进行传输,通过本地的非对称签名就可以完成,也就是说加密过程没有离开用户的本机,只有用户知道如何解密,也只有用户能让别人知道如何解密。KV的结构化数据则使用区块链来记录状态改变,由节点共同维护。
系统架构只需要处理如何用分布式存储来做非结构化数据的接收发送,以及用区块链记录结构化的包括接收者发送者信息在内的微服务数据,之后就可以专注于提升用户的前端体验。
通过面向发邮件和收邮件功能组件的系统设计,实现了通过分布式的节点来保障收发邮件的功能,完成了无服务器交互系统下的邮件系统架构。
对比传统架构,会发现在无服务器交互系统下,新一代的互联网具有如下特征:
-
无需对服务器维护。这意味着企业可以用更低的成本来构建一个交互型的系统,用户的数据也不会被无端记录和被中心化垄断数据使用权。
-
可以设计自适应功能来扩展、提⾼功能的性能,比如在邮件系统的设计中,可以根据实际需求调整收发邮件的不同组件的性能。这意味着企业可以用更低的成本来维护一个高频次的交互系统,用户也可以更流畅的使用互联网。
-
通过对密钥的控制实现对资源的管理。这意味着企业可以根据密钥信息把用户引导到正确的资源上,用户可以通过对资源的验证来保障自己的访问安全和数据隐私。
-
通过对存储的控制实现对交互的管理。这意味着企业可以通过整合加密存储到函数的方法来实现交互,比如企业把十个资源分享到网上,并通过相关公钥来使用资源,当企业需要替换两个资源时,只需要更改对应的公钥就能实现,在这种方式下,用户也可以与系统更平稳的进行交互。
03
无服务器交互系统与区块链
区块链是无服务器交互系统中不可或缺的重要角色,它代替传统的中心化的服务器,负责状态记录和记账。状态记录是记录用户的每一个在网络上的状态,比如是否是会员,而记账是记录用户的每一笔支出。这是互联网上最重要的两个功能,现在主要由公司的中心化的服务器承担。
在状态记录上,区块链的优势是能保证状态读写的稳定性,在任何情况下,只要相关变更提交进入写节点的内存池,就可以改变状态,需要针对不同属性区块链的状态在不同函数下进行更改。同时,区块链节点的分散特性也保证了系统的可用性,而区块链与生俱来的记账属性和激励属性则保障了互联网上相关结算场景的实现。
总体而言,无服务器交互系统的设计就是通过对区块链上的状态更改以及对加密数据的维护来实现交互,并在无服务器交互的基础上,对交互功能进行分解和优化。
另一方面,无服务器交互系统也能让用户更容易地使用区块链,从而促进区块链应用的大规模落地和发展。
以DApp的使用为例,现有的DApp需要户熟悉一些区块链的基本知识后才能很好的使用,包括密钥部分,这相当于让一个手机App的用户了解Android的架构后再来使用,本身就不现实。但无服务器交互系统是对后端的一个革新, 在这种方式下,用户只需要关注前端,像以前使用App一样来使用DApp。DApp并不需要把账户系统暴露在外,正确的做法是以区块链做支持来完成后台数据的调用。
04
从中心化服务器到无服务器交互系统
虽然互联网起源于点对点的系统设计,但因为这种系统在早期是用低成本的分布式结构来进行运营的,并没有对分布式的节点进行奖励,因而整个系统的最终运转还是离不开中心化企业的设计和运营。另外,现有的互联网解决方案主要是围绕着中心化服务器来进行设计的,这种系统设计也相对直接和容易。如上种种因素,让我们一直停留在中心化服务器的互联网时代。
但随着区块链技术的出现,产生了激励节点的方法以及通过节点数量保障可用性的方法,加之FaaS设计思路的流行,无服务器交互系统正在成为互联网设计中最大的变革,它将原本的服务器架构功能化、模块化、函数化,以及实现基于此的对系统的细颗粒优化。
Amazon,Google,Microsoft都正在投入对FaaS的设计,它们也是如今这一领域最为活跃的公司,同时也有众多的开发者、开源项目对FaaS设计进行了研究和实现。
在未来,传统的后端工程师将分为整体架构工程师和函数架构工程师,而未来的函数架构可以选择传统云厂商提供的函数,也可以使用区块链厂商提供的函数来对系统进行扩展,这其中,区块链厂商提供的无服务器交互系统更能保障系统的可用性,节点越多越有保障。
无服务器交互系统正在成为一种必然的趋势,它是在现有的互联网架构基础上开辟的一条新的构架思路,它把区块链的特性辅助到传统的互联网架构中,产生了之前架构无法比拟的优越性。正在发生的、互联网的这一变革将在不远的未来深刻影响到我们的生活。
【文章版权归原作者所有,其内容与观点不代表Unitimes立场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至editor@unitimes.io或添加微信unitimes2017】
image
网友评论