当前位置:主页 > 行业资讯 > 区块链开发 >
区块链系统开发所引爆的:无服务器交互系统正成为互联网最大
发布日期:2020-10-15 阅读次数: 字体大小:

交互是指系统对用户指令做出反馈,交互的效率与用户体验息息相关。
 
    在中心化服务器架构下,交互是通过http来进行回复的,读快写慢,用户的增加会迅速提升交互压力,导致系统统对交互的反应降低,从而产生卡顿。
    在无服务器交互系统下,交互是通过函数来进行回复的,任何交互都可以被封装成很小的服务,如果一个交互功能组件阻塞,可以去另外一个交互功能组件进行交互,不会因为调用单点而造成阻塞,用户交互的指数型增长不会影响到访问的流畅性。
 
    此外,在无服务器交互系统下,好的交互设计可以获得相关的激励,而不好的交互设计将会被剔除出来,这有利于好的交互功能组件的维护和发展。
 
    通过对无服务交互系统特点的分析不难发现,当系统从中心化服务框架演变成功能性组件服务框架后,服务器将不再需要承担大的交互压力和查询压力。以无服务器交互系统为基础的下一代互联网将彻底提升并发处理能力,并可以保障系统稳定的可用性。
 
    这样一来,当用户在双十一清空购物车的时候,就不会因为同时付款的人太多而购买失败;当用户在上海车牌网络拍卖车牌的时候,也不会因为同时查询报价的人太多而报价无效。
 
    对于互联网本身,无服务交互系统更易维护,同时更具扩展性。
 
    在未来,工程师通过搭建和维护细小的功能组件,就能容易地构建出一个稳定的高可用的网络服务,并且可以高效率的实现功能的升级和扩展,这不仅会让互联网生态的繁荣程度提升一个数量级,还会大大提高网络的可行性和可扩展性,让更多的点对点经济发展起来。区块链技术开发
 
    02
 
    无服务器交互系统的架构
 
    无服务器交互系统采用的是FaaS(functionasaservice,函数即服务)架构。它是一种以函数作为设计基础的网络架构,也就是说,它是面向功能组件的而不是面向服务器的。
 
    在设计时,面向服务器与面向功能最大的区别是,前者是通过设置层层缓存来保障能够稳定的对服务器进行调用,后者是通过对功能细化和对功能进行针对性的扩展来完成对特定功能的调配。
 
    无服务器交互系统在架构设计上有两个特点,一是要以设计交互功能为主,二是要对交互部分进行可扩展性的提高。我们以传统邮件设计和无服务器交互系统下的邮件设计为例来说明这两种互联网架构的区别。
 
    在传统的邮件架构中,系统是通过特定网络协议和多层级服务器来架构的,其中SMTP是常用的基于文本的协议,除了通过该协议进入网络,还需要经过邮件访问协议访问相关服务器和镜像。这种架构需要多次和服务器进行交互,并通过不同的协议进行通讯,而用户也要通过不同的协议进行查看。
 
    在无服务器交互系统的邮件架构中,系统只需要设计进入网络前的功能和从网络进来时需要实现的功能即可,不需要考虑协议的部分,也就是说,只需要站在进入网络前和从网络进入客户端这两个角度设计交互系统即可。
 
    以邮件系统为例,交互功能分为发送邮件和接收邮件两种,发送邮件又可以细分为加密附件和区块链上状态改变,接收邮件又可以细分为解密附件和区块链状态改变。将大功能细分成小功能的架构是无服务器交互系统设计的规则。
 
    在本例中,加密附件部分非结构化的交互数据可以用加密存储的方式进行传输,通过本地的非对称签名就可以完成,也就是说加密过程没有离开用户的本机,只有用户知道如何解密,也只有用户能让别人知道如何解密。KV的结构化数据则使用区块链来记录状态改变,由节点共同维护。
 
    系统架构只需要处理如何用分布式存储来做非结构化数据的接收发送,以及用区块链记录结构化的包括接收者发送者信息在内的微服务数据,之后就可以专注于提升用户的前端体验。
 
    通过面向发邮件和收邮件功能组件的系统设计,实现了通过分布式的节点来保障收发邮件的功能,完成了无服务器交互系统下的邮件系统架构。
 
    对比传统架构,会发现在无服务器交互系统下,新一代的互联网具有如下特征:
 
    1.无需对服务器维护。这意味着企业可以用更低的成本来构建一个交互型的系统,用户的数据也不会被无端记录和被中心化垄断数据使用权。
 
    2.可以设计自适应功能来扩展、提⾼功能的性能,比如在邮件系统的设计中,可以根据实际需求调整收发邮件的不同组件的性能。这意味着企业可以用更低的成本来维护一个高频次的交互系统,用户也可以更流畅的使用互联网。
 
    3.通过对密钥的控制实现对资源的管理。这意味着企业可以根据密钥信息把用户引导到正确的资源上,用户可以通过对资源的验证来保障自己的访问安全和数据隐私。
 
    4.通过对存储的控制实现对交互的管理。这意味着企业可以通过整合加密存储到函数的方法来实现交互,比如企业把十个资源分享到网上,并通过相关公钥来使用资源,当企业需要替换两个资源时,只需要更改对应的公钥就能实现,在这种方式下,用户也可以与系统更平稳的进行交互。
 
    03
 
    无服务器交互系统与区块链
 
    区块链是无服务器交互系统中不可或缺的重要角色,它代替传统的中心化的服务器,负责状态记录和记账。状态记录是记录用户的每一个在网络上的状态,比如是否是会员,而记账是记录用户的每一笔支出。这是互联网上最重要的两个功能,现在主要由公司的中心化的服务器承担。
 
    在状态记录上,区块链的优势是能保证状态读写的稳定性,在任何情况下,只要相关变更提交进入写节点的内存池,就可以改变状态,需要针对不同属性区块链的状态在不同函数下进行更改。同时,区块链节点的分散特性也保证了系统的可用性,而区块链与生俱来的记账属性和激励属性则保障了互联网上相关结算场景的实现。
 
    总体而言,无服务器交互系统的设计就是通过对区块链上的状态更改以及对加密数据的维护来实现交互,并在无服务器交互的基础上,对交互功能进行分解和优化。
 
    另一方面,无服务器交互系统也能让用户更容易地使用区块链,从而促进区块链应用的大规模落地和发展。
 
    以DApp的使用为例,现有的DApp需要户熟悉一些区块链的基本知识后才能很好的使用,包括密钥部分,这相当于让一个手机App的用户了解Android的架构后再来使用,本身就不现实。但无服务器交互系统是对后端的一个革新,在这种方式下,用户只需要关注前端,像以前使用App一样来使用DApp。DApp并不需要把账户系统暴露在外,正确的做法是以区块链做支持来完成后台数据的调用。
 
    04
 
    从中心化服务器到无服务器交互系统
 
    虽然互联网起源于点对点的系统设计,但因为这种系统在早期是用低成本的分布式结构来进行运营的,并没有对分布式的节点进行奖励,因而整个系统的最终运转还是离不开中心化企业的设计和运营。另外,现有的互联网解决方案主要是围绕着中心化服务器来进行设计的,这种系统设计也相对直接和容易。如上种种因素,让我们一直停留在中心化服务器的互联网时代。
 
    但随着区块链技术的出现,产生了激励节点的方法以及通过节点数量保障可用性的方法,加之FaaS设计思路的流行,无服务器交互系统正在成为互联网设计中最大的变革,它将原本的服务器架构功能化、模块化、函数化,以及实现基于此的对系统的细颗粒优化。
 
    Amazon,Google,Microsoft都正在投入对FaaS的设计,它们也是如今这一领域最为活跃的公司,同时也有众多的开发者、开源项目对FaaS设计进行了研究和实现。
 
    在未来,传统的后端工程师将分为整体架构工程师和函数架构工程师,而未来的函数架构可以选择传统云厂商提供的函数,也可以使用区块链厂商提供的函数来对系统进行扩展,这其中,区块链厂商提供的无服务器交互系统更能保障系统的可用性,节点越多越有保障。
 
    无服务器交互系统正在成为一种必然的趋势,它是在现有的互联网架构基础上开辟的一条新的构架思路,它把区块链的特性辅助到传统的互联网架构中,产生了之前架构无法比拟的优越性。正在发生的、互联网的这一变革将在不远的未来深刻影响到我们的生活。