加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

云端无服务器架构:亚马逊网络服务(AWS)、谷歌云和微软云

发布时间:2018-12-08 00:16:07 所属栏目:外闻 来源:Peter Wayner
导读:管理服务器带来的无休止的麻烦是大型云服务公司采用无服务器架构的原因之一。他们知道老板已经听够了服务器出这样或那样问题的借口。如果我们能够摆脱那些服务器,那么老板一定会考虑。 借助AWS Lambda、谷歌云函数和微软Azure Functions,可帮你将很小的

从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

当然,微软与其他公司一样在努力工作,以确保人们可以使用微软Azure完成所有的无服务器架构工作。微软公司已经为处理事件创建了自己的基本函数,即Azure Function,并且还构建了一些更复杂的工具,这些工具对于不太成熟的程序员来说更加易于使用。

微软拥有的最大优势可能是它的Office应用程序集合,这些前期的桌面可执行文件正在缓慢而稳定地迁移到云端。事实上,在云计算收入的一种财务核算方法上,微软已领先于亚马逊公司,这部分原因在于微软将其部分Office收入纳入到短期的“云”计算收入中。

Azure Functions文档中最好的一个示例说明了,当某人在将电子表格保存到OneDrive时,云函数是如何被触发的。突然间,,云端的小精灵活跃起来,可以处理电子表格中一些事情。对于喜欢Excel电子表格(或其他Office文档)的IT支持团队来说,这绝对是天赐之物。他们可以编写Azure Function来做几乎任何事情。我们通常认为HTML和网络是云端的唯一接口,但没有理由不能通过Microsoft Word或Excel等文档格式连接至云端。

Azure的Logic Apps引起了我的注意,它的一个工具可以帮你填写表单,而不用担心语义和语法。你仍然需要像程序员一样思考,并对抽象概念和数据做出明智的决定,但是你可能会说服自己,你并没有像填写表格那样来编写“代码”。

像亚马逊的Step Functions一样,Logic Apps的目的是对“工作流”进行编码,这是一种流行词,比起普通的“函数”要复杂得多,这要归功于可使用某种状态。你仍然可以用类似流程图的方式编写链接各种函数和连接器的逻辑,但是你不会用像正式计算机语言那样进行详细说明。

Logic Apps的一大优势是预先构建的“连接器”,可深入到微软和第三方的一些更大应用程序中。你可以有效地从Logic Apps 以及Salesforce、Twitter和Office 365等程序中推送或提取数据。这些连接对于公司IT人员来说非常有价值,他们现在可以通过编写Logic Apps来连接外部工具,就像他们过去创建shell脚本一样。

Azure另一个有趣的地方是Azure Cosmos DB,它同时是NoSQL数据库和SQL数据库。微软已经复制了Cassandra和MongoDB的API,这样你就可以在不改写Cassandra或MongoDB代码的情况下输入和输出信息。或者,如果你想写SQL语句的话,你也可以这样做。Cosmos DB可以让内容很直观,并为所有内容建立索引,以使其快速运行。如果你有很多SQL和NoSQL代码需要同时使用,这将使它成为一个非常不错的中心连接。或者,也许你只是想在未来为采用不同的方法敞开大门。

无服务器云的比较

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读