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

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

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

管理服务器带来的无休止的麻烦是大型云服务公司采用“无服务器”架构的原因之一。他们知道老板已经听够了服务器出这样或那样问题的借口。如果我们能够摆脱那些服务器,那么老板一定会考虑。

借助AWS Lambda、谷歌云函数和微软Azure Functions,可帮你将很小的业务逻辑做得更好。

如果你因为服务器出问题而在凌晨3点被唤醒,你就会明白像“无服务器”这样的流行词如此具有吸引力的原因。这些设备可能需要数小时、数天甚至数周才能配置完毕,然后需要不断地更新以修复错误和安全漏洞。这些更新程序通常会给其自身带来麻烦,因为新更新程序会导致与其他更新程序不兼容,或者这一工作看起来永无休止。

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

管理服务器带来的无休止的麻烦是大型云服务公司采用“无服务器”架构的原因之一。他们知道老板已经听够了服务器出这样或那样问题的借口。如果我们能够摆脱那些服务器,那么老板一定会考虑。

这是一个很棒的销售语言,但唯一的问题是它并不完全正确。这些应用程序处于无服务器架构,就像餐厅里没有厨房一样。如果你想要的菜在菜单上,并且你喜欢厨师的烹饪方法,那么坐在餐厅里是很棒的选择。但如果你想要一种不同的菜肴,如果你想要不同的调料,那么你最好有自己的厨房。

亚马逊、谷歌和微软是三家大公司,正在为未来管理应用程序而战,他们希望将这些应用程序写入其无服务器API中,并通过其自动化层进行管理。如果这些平台可提供你想要的东西,而且这些新模型非常通用化,那么这些平台可能是创建自己的价值数十亿美元的独角兽网络应用的最简单和最快捷的方式。你只需编写关键的逻辑部分,而平台会处理所有的细节。

无服务器功能正在成为连接所有云功能的粘合剂或脚本语言。曾经相当独立的映射或人工智能工具现在通过事件驱动的无服务器功能进行链接。现在,更多的工作可以通过请求来解决,这些请求会通过每个云的各个部分产生波动和回弹,产生触发并由一系列事件触发。如果你想了解机器学习技术并使用它来分析你的数据,那么最快速的方法之一就是创建一个无服务器应用程序,并开始将事件发送到云计算的机器学习部分。

隐含的承诺是,将所有内容切割得更薄,这样可以更轻松地共享云端的资源。过去,每个人都会疯狂地创建新的实例,例如在自己的虚拟机上运行Ubuntu服务器。每个人都使用相同的操作系统,并且这个系统在同一个真实机箱上复制无数次,假装成十几个或更多的虚拟Ubuntu机箱。无服务器操作可以避免所有重复操作,使云计算成本大幅降低,特别是对于偶尔运行的作业,而且从未使在空调服务器机房中的旧机箱发生堵塞。

当然,所有这些便利都有隐性成本。如果你想离开或想将你的代码移动到另一个站点,你可能会陷入重写大部分堆栈的困境。这些API是不同的,尽管JavaScript等流行语言有一些标准化,但它们更接近于专有技术。使用者有很多被锁定的机会。

为了理解无服务器的吸引力,我花了一些时间来构建一些函数,并围绕堆栈进行研究。我没有写太多的代码,但这就是关键。我花了更多时间点击按钮并输入网页表单来配置一切。你还记得我们用XML和JSON配置过所有的东西吗?现在我们填写一个网络表单,云端就会为我们做这一切。尽管如此,你仍然必须像程序员一样思考,了解幕后发生的事情,以及你无法控制的事情。

AWS Lambda计算服务

AWS Lambda正在成长为亚马逊整个云端的shell脚本层。这是一个基本系统,可让你嵌入响应事件的函数,这些事件可能是由亚马逊云基础架构任何部分所产生的。如果一个新文件上传到S3,你可以让它触发一个函数,做一些有趣的事情。如果某些视频正在被Amazon Elastic Transcoder媒体转码工具进行转码,你可以在转码完成后等待其去触发Lambda函数。这些函数反过来可以触发其他Lambda操作,也可能只是向某人发送更新。

你可以使用JavaScript(Node.js)、Python、Java、C#和Go语言编写Lambda函数。鉴于这些语言可以嵌入许多其他语言中,所以很可能运行其他代码,如Haskell、Lisp甚至C ++。(关于将旧版C ++编译为库以与AWS Lambda一起使用的内容,请参阅本文案例。)

编写Lambda函数往往比你预想的要复杂得多,因为亚马逊提供了很多配置和优化选项。虽然技术上你可以只写几行代码,就能完成很不错的功能,但是我觉得,我必须花更多时间来配置代码的运行方式。这一工作的大部分内容是通过在浏览器中填写表单而不是在文本文件中输入来完成的。有时候感觉就像我们只是将文本编辑器换成了浏览器表单,但这就是使用亚马逊为Lambda用户提升灵活性的代价。

其中一些额外的步骤是由于亚马逊向用户提供更多的选项所带来的,并期待有更多首次函数编写者。一旦我在谷歌或微软上编写完一个函数后,我就可以将浏览器指向正确的URL并立即进行测试。亚马逊让我点击来配置API网关,并在防火墙中打开恰当的漏洞。

最后,所有这些点击会增加一层辅助工具,使得工作比一开始使用文本文件更轻松一些。当我创建一个函数时,浏览器会弹出一个警告,“这个函数包含外部库”。在纯节点的时代,这是我希望知道的事情,或者我可以通过谷歌来搜索错误信息,然后希望找到答案进行学习。而现在云端正急着来提供帮助。

如果无服务器意味着将你从管理服务器的杂事中解放出来,那么亚马逊还有许多其他如同AWS Lambda一样的“无服务器”选项。它具有像Amazon EC2 Auto Scaling和AWS Fargate这样的弹性工具,可以启动和关闭服务器,以及具有AWS Elastic Beanstalk工具可将你上传的代码部署到Web服务器并处理负载平衡和缩放。当然,拥有许多这些自动化工具,你仍然需要负责创建服务器映像。

AWS Step Functions是一种更有用的产品,它是一种无代码流程图工具,用于创建状态机以创建软件架构师调用工作流的模型。一部分问题是所有的无服务器函数都是完全没有状态的,当你执行非常基本的业务逻辑时,这些函数是正常的,但当你通过一个清单或流程图来处理客户端问题时,这些函数可能会是一场噩梦。你要不断地到数据库重新加载有关客户端的信息。Step Function可将Lambda函数与状态结合在一起。

谷歌云函数和Firebase平台

如果你的目标是摆脱配置服务器的麻烦,那么谷歌云提供了许多服务可以让你更轻松,例如输入根密码,甚至使用命令行等工作。

(编辑:辽源站长网)

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

推荐文章
    热点阅读