云端无服务器架构:亚马逊网络服务(AWS)、谷歌云和微软云
从2008年的Google App Engine平台开始,谷歌一直在慢慢地添加不同的“无服务器”选项,并将各种消息发送和数据透明度结合在一起。一个名为Google Cloud Pub / Sub的工具可对用户隐藏消息队列,因此你只需为数据生产者和消费者编写代码即可。谷歌云函数为许多主要产品(包括某些选取框工具和API)提供事件驱动的计算。然后是谷歌Firebase平台,这是一个很强大的数据库,可让你将JavaScript代码混合到数据存储层,该数据存储层将数据传送到客户端。 其中,Firebase平台是我最感兴趣的。一些人认为数据库是原始的无服务器应用程序,它将数据结构和磁盘存储工作抽象出来,通过TCP/IP端口传递所有信息。Firebase平台通过添加JavaScript代码和消息发送功能来完成你想在服务器端基础架构执行的几乎所有工作(包括身份验证),使这种抽象性工作做到极致。从技术上讲,它只是一个数据库,但它可以处理堆栈的大部分业务逻辑和消息传递。你真的可以摆脱一些客户端的HTML、CSS、JavaScript和Firebase平台。 你可能会像对待Oracle一样,试图将Firebase平台的JavaScript层称为“存储过程”,但这样做会忽略更多内容。Firebase代码是用JavaScript编写的,因此它将以本地版本的Node.js运行。你可以在该层中嵌入大部分业务逻辑,因为节点环境中已经充满了处理此工作流的库。另外,你还会享受在客户端、服务器上运行的同构代码的乐趣,现在可以运行在数据库中。 引起我注意的部分是Firebase中内置的同步层。它可将整个网络中来自数据库的对象副本进行同步。其诀窍是,你可将你的客户端应用程序设置为另一个数据库节点,该节点可订阅所有相关数据(仅包含相关数据)的更改。如果数据在一个地方发生改变,它会在所有位置进行改变。你可以避免所有消息传递的麻烦,并专注于将信息写入Firebase中,因为Firebase会将其复制到需要的位置。 你无需只关注于Firebase。更基本的谷歌云函数是一种更简单的方法,可将定制代码嵌入整个谷歌云中。目前,云函数很大程度上只是编写Node.js代码的一个选项,该代码将在预配置的节点环境中运行。虽然谷歌云平台的其他部分可支持各种语言,包括Java、C#、Go、Python和PHP,但云函数却仅限于使用JavaScript和Node语言。有迹象表明,其他语言选择即将实现,如果这些选择很快出现,我不会感到惊讶。 至少在这一点上,谷歌云函数不会像AWS Lambda进入AWS一样深入到谷歌云中。当我尝试构建一个与Google Docs交互的函数时,我发现我可能不得不使用REST API并将代码写入名为Apps Script的应用程序中。换句话说,Google Docs环境拥有自己的REST API,其在无服务器这个流行词出现很久之前就处于无服务器状态。 值得注意的是,Google App Engine的功能持续变得强大。一开始,它提供了启动Python应用程序以满足访问者进入网站的需求,但多年来一直在扩展功能,目前可处理许多不同的语言运行环境。将代码打包成可执行文件后,App Engine将启动流程,开启足够的节点来处理流量,并在用户发送请求时按比例放大或缩减数量。 要牢记的是,仍存在一些障碍。与云函数一样,你的代码必须以相对无状态的方式编写,并且必须在有限的时间内完成每个请求。但是App Engine不会抛弃所有的scaffolding,也不会忘记各请求之间的所有东西。App Engine是无服务器革命中的重要组成部分,对于那些仍采用旧方法并使用Python,PHP,Java,C#或Go语言构建自己的堆栈的人来说,它仍然是最容易获得的平台。 微软Azure Function (编辑:衢州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |