微云可能取代AWS、Azure和Google Cloud公共云

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微云可能取代AWS、Azure和Google Cloud公共云相关的知识,希望对你有一定的参考价值。

参考技术A

云计算市场的许多小规模提供商的云计算服务和产品在速度、成本、灵活性,甚至在本地部署和混合云选项方面都会对全球云计算行业巨头构成挑战。

云计算平台的规模一定很大,对吧?如果云计算的最佳功能是用户只需点击几秒钟并启动一台机器,那么必然需要建设和运营部署大量服务器的大量数据中心。

不过,“大”这个词是相对的。规模最大的云计算行业巨头AWS、Microsoft Azure、谷歌云可能会占据大部分市场份额,但它们并不能阻碍云计算市场其他提供商的发展。一些规模较小的云计算提供商正在开发利基市场,并采用其他的竞争方式,然而与云计算行业巨头相比,他们的服务器数量确实微不足道。

人们普遍发现,这些“微不足道”的云计算提供商也在全球范围内运营着数十个数据中心,而这些数据中心也拥有足够数量的服务器,只是没有云计算巨头那么多。

事实证明,对于开发人员来说,规模并不总是最具吸引力的选择。机器实例几乎是运行在普通操作系统的普通硬件,软件可以迁移以寻找更好的选择。云计算公司在用户界面、复杂功能、速度等方面展开了竞争,有时甚至在规模、价格等看似明显的优势方面的云计算巨头也面临一些竞争。

微服务架构的发展正在孕育更广泛的云计算市场。将工作负载分成N个不同部分的开发人员不需要将自己限制在一个云平台中。当连续的数据包流正在传输时,保持软件在同一数据中心运行是有意义的,但通常可能会将应用程序分解为许多松散链接的代码块,偶尔交换消息,并且不需要最快的响应速度。如果有充分的理由,后台处理和分析功能很容易转移到不同的云平台。如果企业在为系统创建体系结构时非常谨慎,甚至可以将每个微服务放在不同的云平台上。

所有这一切都意味着云计算之战并不局限于规模最大化。以下是十几个规模较小的云计算提供商,他们的云计算产品和服务也有自己独特的优势,它们都很吸引人,但并不是客户唯一的选择。当他们超越规模最大的竞争对手时,人们发现云计算市场是一个令人惊讶的巨大和多样化的市场。

1.Wasabi公司

2.Vultr公司

云计算提供商Vultr公司通过以每小时2.50美元的价格提供最低价格的实例,按小时计费。这台机器只配备512KB的内存,适用于静态Web服务器,但用户可以花费更多的费用购买更大的机器实例。

该公司已经扩展了其产品线,其中包括裸机服务器,这些服务器没有虚拟化层的阻碍。还有专门的服务器,可以减少与攻击者共享同一个服务器的威胁。Vultr公司在全球运营16个数据中心。其云平台的界面很灵活,但是提供的服务有限并且比较基础,可能提供的仅仅是命令行。如果用户希望服务器在引导时运行脚本,则可以使用一个很好的输入字段来键入脚本。但以每月2.50美元的价格计算,要求过高将是错误的。

3.UpCloud公司

UpCloud公司的亮点是提供持久硬盘存储服务,该公司称,它提供比SSD硬盘更快的性能。在启动和持续性能方面甚至可能快50%。用户必须测试其应用程序才能确定,因为速度将根据计算和数据获取的混合而变化。

UpCloud的许多其他部分也令人熟悉。UpCloud在全球运行API、一系列标准模板和数据中心,其中两个位于赫尔辛基的UpCloud公司总部附近。UpCloud提供公共云托管、私有选项和一些软件层来创建组合。软件定义的网络很快就会到来。

其基本实例提供1GB内存和25GB硬盘存储空间,起价为5美元,并以与竞争对手大致相同的方式向上扩展。UpCloud并不一定能提供更低的价格,但提供更快的磁盘访问。

4.Packet公司

Packet可能规模相对较小,但它提供功能齐全的专门服务器,它们以“裸机”运行客户的应用程序。这意味着客户的I/O和存储操作不会因无限的虚拟化层而陷入困境(至少在客户通过过度的容器化添加自己的虚拟化层之前,这是客户的责任)。

客户需要为采用Packet的机器支付更多费用,但其获得回报更多。c1.large.arm机器配备128GB的内存和32个核心处理器,其价格是每小时1美元,在一个月内累计超过672小时。Packet还采用一些配置较低的服务器,配备8 GB内存和4个核心处理器,每小时只需7美分。

其具备的一个很好的特性是现货定价市场,客户可以在那里出价购买硬件。一些需求放缓时的价格似乎比清单上的价格便宜50%以上。Packet在全球运营18个数据中心,还提供RESTful API,以及使用企业的配置、安全和管理软件的本地版本构建混合云的大量选项。

5.Linode公司

另一家提供小型灵活的Linux机器root访问权限的云计算提供商是Linode公司,其价格每月低至5美元。Linode公司支持全球9个数据中心的10个主要Linux发行版,其运营的第10个数据中心在印度孟买。

如果客户需要安装特定服务,Linode公司的用户社区将共享大量启动脚本,这些脚本将安装正确的软件并自定义配置。这些脚本涵盖了大多数主要应用程序,如WordPress、Plesk、代理服务器、OpenVPN和LAMP堆栈。客户还可以创建自己构建的脚本。

6.Hidora公司

如果客户使用一些标准模型(NoDE.JS、php、Java)部署Web应用程序,Hidora公司提供一个PaaS(平台即服务)来适应。该公司认为,其灵活的扩展以更好的价格提供了更好的性能。可以将负载平衡、备份和空闲出站带宽等服务整合到捆绑包中。

Hidora是如何扩展和更新旧的共享托管模型以支持现代微服务架构的一个很好的例子。如果客户想要获得root访问权限,Hidora公司会提供虚拟专用服务器,但客户也可以将Docker容器部署到其Kubernetes集群。

Hidora将其服务器部署在瑞士,并确保它们受到瑞士数据保护法的保护。

7.DigitalOcean公司

DigitalOcean之所以受到开发人员的欢迎,是因为它简化了虚拟机的启动、大小调整和拆除虚拟机的过程,DigitalOcean称之为“Droplets”。在取得一些成功之后,该公司最近扩展了PostgreSQL数据库的更多托管服务、数据桶和Kubernetes集群。Droplet按小时计费,但当月计费的小时数上限为672小时,即四周的小时数,因此每个月的价格都相同。该公司将其价格设置为5美元的倍数,使账单计算更加简单。DigitalOcean公司在全球8个城市拥有并运营12个数据中心。

8.Shared hosting公司

Shared hosting的云服务由共享Web服务器提供。客户在LAMP服务器上租借了一个帐户,上传了其htmljavascript/HP,并按月支付费用,虽然不会给客户提供root权限,但有时会让客户使用Telnet。

许多专门提供这些服务的公司(IONOS、A2、BlueHost、HostGator、InMotion)已经逐渐扩展到云服务器业务,提供虚拟专用服务器和专用服务器。其计费通常按月计算,时间长达三年。

Shared hosting公司似乎对每隔几个小时启动和拆除机器以满足需求飙升的客户感兴趣。尽管如此,它们仍然是一个灵活的选项,可用于小型专用项目。

9.Antsle公司

Antsle公司可能是规模最小的云计算提供商。Antsle公司提供了一款无风扇服务器,可以放在桌面上,通过客户自己的“云托管”仪表板创建Gentoo Linux实例。这个服务器小而安静,提供云计算的大部分灵活性和功能。其CPU功率取决于客户购买的产品,客户可以通过控制物理安全性和保持一切可见性来运行工作负载,从而获得更大的工作量。

Antsle公司还正在为其支持其他硬件的软件版本进行封闭测试。或者客户也可以在裸机服务器Antsle主机中使用相同的界面和软件。

公有云中 Serverless 计算比较:AWS vs Google Cloud vs Azure


AWS Lambda, Google Cloud Functions, 和Microsoft Azure Functions,一点点业务逻辑可以走得很远。


如果你因为服务器出问题而在凌晨3点被唤醒,你就会明白像“无服务器计算”这样的流行词的吸引力。物理服务器可能需要数小时,数天甚至数周才能配置,然后它们需要不断更新以修复错误和安全漏洞。这些更新通常会带来他们自己的麻烦,因为新更新会导致不兼容,从而导致其他更新,或者看起来似乎没有尽头。


运行服务器导致的无穷无尽的连锁问题是主流云公司接受“无服务器计算”架构的原因之一。 他们知道老板们听多了这样的借口,服务器这个了,服务器那个了,太多类似的问题。 如果我们能摆脱服务器,老板肯定想要。


无服务器计算是一个很棒的销售条款,唯一的问题是它不是完全正确的。这些应用程序是无服务器的,就像餐厅没有厨房一样。如果你想要的在菜单上,并且你喜欢厨师准备的方式,那么坐在餐厅里是很棒的。但如果你想要一种不同的菜肴,如果你想要不同的香料,那么你最好有自己的厨房。


亚马逊,谷歌和微软是三家面向未来应用的大公司,他们希望将这些应用写入无服务器API并通过其自动化层进行管理。如果这些平台按你想要的方式做,而且新模型非常普遍,它们可能是创建价值数十亿美元的独角兽网络应用的最简单和最快捷的方式。你只写关键的逻辑位,平台处理所有的细节。


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


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


当然,所有这些便利都有隐藏的成本。如果你想离开或移动你的代码到另一个站点,你可能会被迫重写大部分堆栈。这些API是不同的,尽管JavaScript等流行语言有一些标准化,但它们与专有技术非常接近,会被厂商锁定。


为了理解无服务器计算的吸引力,我花了一些时间来构建一些功能,并围绕堆栈进行探测。 我没有写太多的代码,但这是关键。 我花了更多时间点击按钮并输入网页表单来配置所有内容。 你还记得我们什么时候用XML和JSON配置了所有的东西吗? 现在我们填写一个网络表单,云为我们做。 尽管如此,你仍然必须像程序员一样思考,了解幕后发生了什么,并且无法控制。


AWS Lambda

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


你可以使用JavaScript(Node.js),Python,Java,C#和Go编写Lambda函数。鉴于这些语言可以嵌入许多其他语言,所以很可能运行其他代码,如Haskell,Lisp甚至C ++。 


编写Lambda函数往往比你期望的复杂得多,因为Amazon提供了很多配置和优化选项。虽然技术上你可以只写几行代码并完成很棒的事情,但是我觉得我不得不分配更多时间来配置代码的运行方式。大部分工作是通过在浏览器中填写表单而不是输入文本文件来完成的。有时候感觉就像我们刚刚交换了浏览器表单的文本编辑器,但这是保留Amazon扩展到Lambda用户的所有灵活性的代价。


其中一些额外的步骤是由于亚马逊向用户公开更多选择,并期望更多的首次函数编写者。一旦我在Google或Microsoft写完功能后,我就可以将浏览器指向正确的URL并立即进行测试。亚马逊让我点击来配置API网关,并在防火墙中打开正确的洞。


公有云中 Serverless 计算比较:AWS vs Google Cloud vs Azure

借助AWS Lambda配置页,可以单击触发函数的事件源和更多事件的目标。


最后,所有这些点击都增加了一层手持式工具,使得工作比以文本文件开始更容易一些。当我创建一个函数时,浏览器有一个警告,“这个函数包含外部库”。


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


AWS Step Functions是一种更有用的产品,它是一种无代码流程图工具,用于创建状态机以模拟软件架构师称为工作流的模式。部分问题是所有的无服务器函数都是完全没有状态的,当你执行非常基本的业务逻辑时,这些功能是有效的,但是当你通过一个客户端走过一些客户端时,这可能有点噩梦清单或流程图。你经常到数据库去重新加载关于客户端的信息。步骤函数将Lambda函数与状态粘合在一起。


Google Cloud Functions 和 Firebase

如果你的目标是摆脱配置服务器的麻烦,那么Google Cloud提供了许多服务,从需要根密码甚至使用命令行等方面提供各种各样的自由。


从2008年的Google App Engine开始,Google一直在慢慢地添加不同的“无服务器计算”选项,并且提供各种消息传递和数据透明组合。一个名为Google Cloud Pub / Sub的用户隐藏了消息队列,因此你只需为数据生产者和消费者编写代码即可。 Google云端函数为许多主要产品(包括某些选取框工具和API)提供事件驱动的计算。然后是Google Firebase,这是一个数据库,可将JavaScript代码混合到将数据传送到客户端的数据存储层。


其中,Firebase是我最感兴趣的。一些人认为数据库是原始的无服务器计算应用,将数据结构和磁盘存储杂事抽象出来,以通过TCP / IP端口传递所有信息。 Firebase通过添加JavaScript代码和消息传递来将这种抽象极端化,以完成你可能想要对包括身份验证在内的服务器端基础架构执行的任何操作。从技术上讲,它只是一个数据库,但它可以处理堆栈的大部分业务逻辑和消息传递。你真的可以摆脱一些客户端的HTML,CSS,JavaScript和Firebase。


你可能会像Oracle一样,试图将Firebase的JavaScript层称为“存储过程”,但这样做会忽略大局。 Firebase代码是用JavaScript编写的,因此它将以本地版本的Node.js运行。你可以在该层中嵌入大部分业务逻辑,因为Node的世界已经充满了处理此工作流的库。另外,你将享受在客户端,服务器上运行的同构代码的乐趣,现在还可以享受数据库。


引起我注意的部分是Firebase中内置的同步层。它将在整个网络中同步来自数据库的对象副本。诀窍是,你可以将你的客户端应用程序设置为另一个订阅相关数据(仅相关数据)更改的数据库节点。如果数据在一个地方发生变化,它会随处变化。你可以避免所有消息传递的麻烦,并专注于将信息写入Firebase,因为Firebase会将其复制到需要的位置。


公有云中 Serverless 计算比较:AWS vs Google Cloud vs Azure

Google Firebase提供了一个错误控制台,可以显示展示好坏事件的时间表。


你无需专注于Firebase。更基本的Google云功能是一种更简单的方法,可将定制代码嵌入到Google云中。目前,云端函数在很大程度上只是编写Node.js代码的一个选项,它将在预配置的Node环境中运行。虽然Google云端平台的其他部分支持各种语言--从Java和C#到Go,Python和PHP云功能严格限于JavaScript和Node。有人暗示其他语言选项即将到来,如果他们很快出现,我不会感到惊讶。


至少在这一点上,Google Cloud Functions不会像AWS Lambda,当我探索构建一个与Google Docs交互的函数时,我发现我可能不得不使用REST API并将代码写入名为Apps Script的应用程序中。换句话说,谷歌Docs世界拥有自己的REST API,很久就没有服务器了。


值得注意的是,Google App Engine持续强劲。一开始,它提供了启动Python应用程序以满足任何人进入网站的需求,但多年来一直在扩展以处理许多不同的语言运行时。将代码捆绑到可执行文件中后,App Engine将处理启动足够的节点以处理流量的过程,并在你的用户发送请求时向上或向下放大或缩小。


要牢记几个障碍。与云函数一样,你的代码必须以相对无状态的方式编写,并且必须在有限的时间内完成每个请求。但是App Engine不会抛弃所有的支撑,或者在请求之间忘记所有的东西。 App Engine是无服务器革命中的一个重要组成部分,对于那些在老派方法中使用Python,PHP,Java,C#或Go构建自己的堆栈的人来说,它仍然是最容易获得的。


Microsoft Azure Functions

当然,微软和其他人一样努力工作,以确保人们可以用Azure云做所有这些聪明的无服务器计算事情。该公司已经创建了自己的基本功能--Azure函数,并且构建了一些更复杂的工具,这些工具对于半程序员来说更加易于使用。


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


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


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


Microsoft Azure的Web IDE允许你编写Azure函数,运行它并通过插入日志记录调用进行调试。


像亚马逊的Step Functions一样,Logic Apps的目的是对“工作流”进行编码,这是一种流行词,比起平均的“功能”要复杂得多,这要归功于某种状态的可用性。你仍然可以用类似流程图的方式编写链接各种功能和连接器的逻辑,但是你不会用官方的计算机语言拼出它。


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


Azure另一个令人感兴趣的地方是Azure Cosmos DB,同时是NoSQL和SQL的数据库。微软已经复制了Cassandra和MongoDB的API,这样你就可以在不改写Cassandra或MongoDB代码的情况下输入和输出信息。或者,如果你想写SQL,你也可以这样做。 Cosmos DB可以让事情保持直线并为所有事情建立索引,以保持其快速运行。如果你有很多你想合作的SQL和NoSQL代码,这使它成为一个有趣的中心联系。或者,也许你只是想在未来为不同的方式敞开大门。


无服务器计算比较

哪个无服务器计算平台适合你?在所有三个孤岛中编写基本函数几乎都是一样的,但是存在差异。最明显的可能是可用语言,因为每个语言在完成支持Node.js和JavaScript之后都会播放收藏夹。你可以为Microsoft的Azure编写C#并不令人惊讶,但它对F#和TypeScript的支持是独一无二的。亚马逊采用Java,C#和Python。 Google目前的基本功能严格限于JavaScript,但它在App Engine中支持更多的语言。


比较无服务器计算的最难的部分是掌握价格和速度,因为更多的东西隐藏在底层。当我将虚拟机以每小时价格定价时,我常常觉得自己像个疯狂的消费者。现在,供应商正在将萨拉米香肠切片得如此薄,以至于你可以以不到一美元的价格获得数十万次函数调用。


当然,这种明显的便宜很快就会削弱我们大脑理性的,预算意识的部分,就像我们在一个陌生的国家度假时一样,这些国家的货币种类差别很大。不久之后,你将订购另外数百万次的数据库,就像你在Cancun购买一杯酒时一样,因为你无法快速分配以确定其实际成本。


当云计算推出的是一台原始的虚拟机时,你可以猜测内存和CPU的能力,但是在无服务器计算的世界中,你并不真正知道发生了什么。


值得注意的是,无服务器计算模式几乎迫使你将数据存储在本地云数据库中,因为你并不是真的被允许在代码中保留任何状态。你必须相信这些后端。你的函数必须运行没有任何本地缓存或配置,因为其他版本总是被创建和销毁。因此,数据库胶水代码填满了你的代码,就像在“陌生事物”中颠倒过来的那些藤本一样。


比较成本的唯一真正方法是在所有平台上构建应用程序,这是一项艰巨的挑战。可以在三者之间移动一些代码,因为它们都运行Node.js,但即便如此,你仍然会遇到需要忍受的差异。 (例如,你直接在Microsoft和Google中处理HTTP请求,但通过AWS中的API Gateway处理。)


好消息是你不需要那么偏执。在我的实验中,许多基本应用程序几乎不使用任何资源,你可以在免费的三层提供所有这三项优惠以吸引贫穷的开发人员。无服务器计算模式确实为我们节省了开销。除非你是一直在接近满负荷运行你的服务器的类型,并且获得了免费空调,否则很可能你最终会通过转向无服务器方式来节省一些大笔资金。你将节省如此多的资金,以至于你不会争论它是否为每百万次调用1美元或1.50美元。


有一个更深层的问题。如果你受够了这些云,你就会陷入困境。这不是很容易,只需将代码关闭并在其他地方的商业服务器上运行它,你可以使用充满自己的代码的Docker容器进行操作。如果你幸运的话,你可以复制相同的原始架构和基本的JavaScript函数,但在此之后,你将在整个地方重写数据库胶水代码。所有这三家公司都有自己的专有数据存储层。


目前还不清楚事情出错时会发生什么。运行你自己的服务器意味着,当不能工作时,你的老板会窒息你的脖子。目前还不清楚在这个领域会发生什么。 Google的一个页面包含这个良性警告,“这是Google Cloud Functions的测试版。此API可能会以不兼容的方式进行更改,并且不受任何SLA或弃用策略的约束。“


亚马逊的服务条款比他们第一次进入这个领域时的表现要好,但他们仍然包含警告要记住,例如“我们可能会在30天内通知你并且没有任何责任的情况下删除你的任何内容如果未超过三(3)个月,则上传到AWS Lambda。“确保你的代码在你想要保留的情况下运行。像这样的警告肯定是公平的(我知道我的旧Lambda函数不会再被使用),但它显示了你如何放弃一些控制。


微软为Azure服务提供服务级别协议,承诺通过服务积分对停机进行经济补偿。这些适用于你的功能降级吗?也许--只要你不徘徊在服务的某个测试区域。值得花一点时间关注这些细节,如果你打算建立比儿童聊天室更重要的任务。


↓↓↓ 点击"阅读原文" 【加入云技术社区】

相关阅读:





以上是关于微云可能取代AWS、Azure和Google Cloud公共云的主要内容,如果未能解决你的问题,请参考以下文章

对 AWS Google Azure 三家全球负载均衡的延迟情况做个评测

AWS 到 Azure 的连接:如何设置站点到站点的连接?

Azure为啥不提供一年的免费试用

使用 C# 从 Azure Blob 复制到 AWS S3

AWS SNS 中的延迟和吞吐量是不是足以取代用于发布/订阅的专用 MQ?

通过 GCP、AWS 和 Azure 中的 API 探索 Web 资源