边缘计算机会不是您想的那样

2020-07-26 21:03:05

CloudFlare Workers®是最大、使用最广泛的边缘计算平台之一。我们在大约三年前发布了Cloudflare Workers,在过去的两年里它已经全面上市了。在这段时间里,我们已经看到数十万开发人员编写了数千万行代码,这些代码现在运行在Cloudflare的网络上。

就在上个季度,20000名开发人员首次部署了使用Cloudflare Workers的新应用程序。目前,流经我们网络的所有请求中有10%以上使用Cloudflare Worker。而且,在我们最大的客户中,大约20%的客户正在采用Cloudflare Worker作为其部署的一部分。看着这个平台成长真是令人难以置信。

在接下来的一周(我们称之为无服务器周)中,我们将宣布对Cloudflare Workers平台的一系列增强,使您可以构建更复杂的应用程序,降低您的无服务器计算成本,使您的应用程序速度更快,并证明Workers平台的核心是安全的。

在本周开始之前,我想退一步谈谈我们在过去三年中所学到的关于边缘计算的知识。当我们推出Cloudflare Workers时,我们认为杀手级功能是速度。员工在Cloudflare网络中运行,距离最终用户更近,因此他们固有的响应时间比传统的集中式无服务器平台更快。

然而,通过观察开发人员使用Cloudflare Workers,我们了解到开发平台有许多比速度重要得多的属性。速度是锦上添花,但对于大多数应用程序来说,它不是最初的要求。只专注于它是一个错误,将注定边缘计算平台默默无闻。

今天,几乎每个谈论边缘计算好处的人都仍然把重点放在速度上。Akamai也是如此,该公司于2002年推出了基于Java和.NET的EdgeComputing平台,但在未能找到足够的客户后,于2009年关闭了该平台,在这些客户中,仅稍低的网络延迟就足以证明在边缘运行代码的额外成本和复杂性是合理的。这是一个令人警醒的故事,该行业的许多人已经忘记了这一点。

今天,我确信,当我们推出Cloudflare Workers时,认为速度是边缘计算的杀手级功能是错误的,而该行业其他大部分的重点仍然很大程度上放错了位置,可能会错过更大的机会。

相反,我认为任何平台上的开发人员实际上都需要的东西,从最不重要到最重要,实际上是:速度、一致性、成本、易用性和遵从性。称之为:马修的开发者需求层次结构。虽然几乎每个人都在谈论边缘计算的速度,但我认为一致性、成本、易用性,特别是合规性最终将更加重要。事实上,我预测未来三年边缘计算真正的杀手级功能将与相对平淡无奇但至关重要的监管合规性有关。

别误会我的意思,速度很快。快速开发应用程序是开发人员体验的自我实现。我们把“工人”打造成了速度极快的。通过将计算工作负载移到离应用程序用户更近的位置,我们可以有效地克服光速带来的限制。CloudFlare的网络覆盖全球100多个国家的200多个城市。我们继续建设这个网络,使之与地球上的每个人都只有几毫秒的距离。

由于我们不太可能让光速更快,任何开发人员编写代码并让其在我们整个网络中运行的能力意味着,与传统的集中式计算解决方案相比,即使是那些在云中运行的解决方案,我们也将始终拥有性能优势。如果您必须选择一个可用区来运行您的应用程序,与构建在诸如Worker这样的平台上的应用程序相比,您将始终处于性能劣势,而Worker平台可以在Cloudflare的网络中的任何地方运行。如果您必须选择一个可用区来运行您的应用程序,那么您将始终处于性能劣势,因为构建在诸如Worker这样的平台上的应用程序可以在Cloudflare的网络中随处运行。

我们相信Cloudflare Workers已经是最快的无服务器平台,我们将继续构建我们的网络,以确保它保持这一地位。

不过,我们还是实话实说吧。只有一组有限的应用程序对几百毫秒的网络延迟敏感。这并不是说,在现代主流无服务器平台的模型下,网络延迟并不重要,只是需要额外性能的应用程序是小众。

信用卡处理、广告投放、游戏和人机交互等应用程序可能对延迟非常敏感。例如,亚马逊(Amazon)的Alexa和谷歌主页(Google Home)比许多竞争对手要好,部分原因是它们可以利用母公司的边缘网络来处理语音处理,因此延迟更低,反应更灵敏。

但在这样的应用程序之后,它变得相当容易。经常谈论边缘计算的人很快就会开始谈论物联网和无人驾驶汽车。令人尴尬的是,当我们第一次推出工人平台时,我发现自己一直在这么做。专业提示:当你与边缘计算传播者交谈时,只要确保你的宾果卡上有无人驾驶汽车,你每次都可以赢得热门词汇宾果。

著名的斯坦福大学计算机科学教授唐纳德·努斯(Donald Knuth)(与托尼·霍尔(Tony Hoare)、埃德加·迪克斯特拉(Edsgar Dijkstra)以及其他许多人一起)说过,过早优化是编程中一切邪恶的根源。因此,对于大多数开发人员来说,仅凭速度并不是选择使用边缘计算平台的足够令人信服的理由。对于大多数应用程序来说,这样做是不成熟的优化,也就是说。“万恶之源”那么,还有什么比速度更重要呢?

虽然最小化网络延迟不足以让大多数开发人员迁移到新平台,但几乎所有无服务器平台都有一个特有的延迟来源:冷启动时间。冷启动是指应用程序在特定服务器上首次执行时需要多长时间才能运行。冷启动会带来伤害,因为它们会使应用程序变得不可预测和不一致。有时,如果无服务器应用程序命中的是代码很热的服务器,那么它可能会很快;但有时,当需要启动新服务器上的容器并将代码从磁盘加载到内存中时,它就会变慢。不可预测性真的会损害用户体验;事实证明,人类更喜欢一致性,而不是速度。

冷启动问题并不是边缘计算平台独有的。冷启动引起的不一致是所有无服务器平台的祸根。它们是您不必维护和部署自己的实例而支付的税款。但是,边缘计算平台实际上会使冷启动问题变得更糟,因为它们将计算工作负载分散到更多位置的更多服务器上。因此,当请求到达时,代码不太可能在任何特定服务器上处于热状态。

换言之,平台的分布式程度越高,出现冷启动问题的可能性就越大。要在大多数无服务器平台上解决这一问题,开发人员必须创建可怕的黑客攻击,比如从世界各地向他们自己的应用程序执行空闲请求,以使他们的代码保持热度。雪上加霜的是,传统的云提供商对这些一次性请求收费,或者对他们自己陈词滥调的预热/“保留”解决方案收取更高的费用。这太荒谬了!

我们知道冷启动很重要,所以从一开始,我们就努力确保工人的冷启动时间不超过5毫秒。与AWS Lambda等其他无服务器平台相比,这一点非常有利,在这些平台上,冷启动可能需要长达5秒的时间(比Worker慢1000倍)。

但我们想做得更好。因此,本周,我们将宣布,工人现在支持零纳秒冷启动。因为,除非有人发明了时光机,否则不可能花比这更短的时间,我们相信,工人现在拥有所有无服务器平台中最快的冷启动。这使得Cloudflare Workers成为一致性之王,甚至击败了传统的集中式无服务器平台。

但是,再说一次,在马修的开发者需求层次中,虽然一致性比速度更重要,但在选择计算平台时,还有其他因素比一致性更重要。

如果您必须在快速的平台和便宜的平台之间做出选择,那么在其他条件相同的情况下,大多数开发人员都会选择便宜的平台。只有当开发人员发现用户体验受到损害,甚至比速度升级的成本还要高时,他们才愿意开始为速度支付额外费用。在此之前,便宜是快节奏的。

在很大程度上,边缘计算平台因速度更快而收取额外费用。例如,通过AWS的[受保护的电子邮件]处理的请求的成本大约是通过AWS Lambda;处理的请求的三倍,而Basic Lambda已经贵得离谱了。这在某种程度上似乎是有道理的-我们都认为我们需要支付更高的价格才能更快-但这是一个定价基础,它将始终使边缘计算成为一种利基产品,仅为那些对网络延迟极其敏感的有限应用程序提供服务。

但是边缘计算并不一定要更昂贵。事实上,它可以更便宜。要了解这一点,请看一下从边缘提供服务的成本。如果你很了解当地的互联网服务提供商,比如Cloudflare的网络,那么在本地传输带宽可能比在世界各地回传带宽的成本要低。在边缘运行时,可以额外节省电力和主机代管成本。我们可以利用这些节省来帮助将Cloudflare Workers平台的价格保持在较低水平。

但真正的成本制胜来自更高效的架构。早在90年代初,当我在我的大学担任网络管理员时,当我们想要添加新的应用程序时,就意味着要订购一台新的服务器。(我们从Gateway购买了服务器;我认为他们的印有奶牛印记的纸板托运箱很有趣。)。然后出现了虚拟机(VM),您可以在同一台服务器上运行多个应用程序。实际上,每个应用程序的开销降低了,因为您每个应用程序需要的物理服务器更少。

VMS催生了第一个公共云。然而,云提供商很快就开始寻找进一步降低管理费用的方法。Containers为在同一台机器上运行多个客户的工作负载提供了一个更轻的选择,DotCloud(后来成为Docker)领先,几乎所有其他人最终都会效仿。同样,容器战胜虚拟机的优势在于降低了每个应用程序的开销。

在Cloudflare,我们知道历史不会停止,所以当我们开始建造工人时,我们问自己:容器之后会发生什么?答案是分离出来的。隔离是浏览器用来保持进程分离的沙箱技术。它们速度极快,重量极轻。这就是为什么,当你访问一个网站时,你的浏览器可以获取它以前从未见过的代码,并几乎立即执行它。

通过使用隔离,而不是容器或虚拟机,我们能够使计算开销比传统的无服务器平台低得多。这使我们能够更高效地处理计算工作负载。反过来,我们可以将这种效率节省的成本转嫁给我们的客户。我们的目标不是比[电子邮件保护]便宜,而是比Lambda便宜。便宜多了。

最初,我们希望工人的定价非常简单,而且具有成本效益。我们不像其他无服务器提供商那样按请求、CPU时间和带宽收费,而是按请求收费。很简单。权衡的是,我们被迫施加最大CPU、内存和应用程序大小限制。我们在过去三年中看到的是,开发人员想要使用Worker构建更复杂、更复杂的应用程序--其中一些突破了这些限制。因此,本周我们将取消限制。

明天,我们将宣布一个新的Worker选项,它允许您按照其他无服务器提供商使用的相同定价模式运行更复杂的计算机工作负载,但价格更具吸引力。我们将继续支持我们的简化选项,以供那些可以在以前的限制内生活的用户使用。我特别兴奋地看到开发人员将如何利用我们的技术来构建新的应用程序,所有这些都比其他遗留的集中式无服务器平台成本更低,性能更好。

更快、更一致、更便宜是很棒的,但即使仅有这些也不足以赢得大多数开发人员的工作负载。那么,还有什么比成本更重要呢?

开发人员很懒。我直接知道这一点,因为当我需要编写程序时,我仍然会选择一种我知道的值得信赖的语言,比如Perl(不要评判我),即使它速度更慢、成本更高。我并不孤单。

这就是为什么有了Cloudflare Workers,我们知道我们需要与开发人员会面,因为他们已经很熟悉了。这从支持开发人员熟悉和喜爱的语言开始。我们之前已经宣布支持JavaScript、C、C++、Rust、Go甚至COBOL。本周,我们将宣布支持Python、Scala和Kotlin。我们希望确保您不必学习一门新语言和一个新平台即可享受Cloudflare Workers带来的好处。(我仍然在争取Perl支持。)。

轻松还意味着在技术操作等事情上花费更少的时间。这就是无服务器平台的优势所在。能够简单地部署代码,并允许平台随负载进行上下伸缩,这真是不可思议。我们在Cloudflare Workers Like Discorde的长期用户中看到了这一点,在过去的三年中,它的使用率增长了几千%,Worker平台已经自动进行了扩展,以满足他们的需求。

然而,无服务器平台的一个挑战是调试。由于作为开发人员,在本地复制整个无服务器平台可能很困难,因此调试您的应用程序可能会更加困难。当将代码部署到平台需要长达5分钟的时间时,这一点就变得复杂起来,就像使用AWS的[电子邮件受保护]一样。如果您是一名开发人员,您知道等待代码部署和测试是多么痛苦。这就是为什么对我们来说,在不到15秒的时间内将代码更改在全球200多个城市的整个网络中部署到我们的整个网络中是至关重要的。

我们内部做出的最重要的决定之一是实施我们所说的贝佐斯规则。它要求两件事:1)Cloudflare工程师为自己构建的新功能必须尽可能使用Worker构建;以及2)我们为自己构建的任何API或工具都必须对第三方Workers开发人员可用。

构建健壮的测试和调试框架需要开发人员的投入。在过去三年中,Cloudflare Workers开发工具包根据使用我们平台的数十万开发人员的反馈而显著成熟,其中包括我们自己的团队,他们使用Workers快速构建了Cloudflare Access和Gateway等创新的新功能。历史表明,任何平台的第一个、也是最好的客户需要是构建该平台的公司的开发团队。

Wrangler是提供、部署和调试Cloudflare Workers的命令行工具,基于我们自己团队的广泛反馈,它已经发展成为一种强大的开发体验。除了是最快、最稳定、最实惠的平台之外,考虑到Cloudflare Workers背后的发展势头,我感到兴奋的是,它正迅速成为最容易使用的无服务器平台。

一般来说,最容易使用的平台都会赢。但有一件事甚至胜过易用性,我预测,这将被证明是边缘计算的真正杀手级功能。

如果您是个人开发人员,您可能不会过多考虑法规遵从性。但是,如果您在一家大银行、保险公司、医疗保健公司或任何其他有意义地触及敏感数据的公司担任开发人员,那么您会经常考虑合规性问题。您可能希望使用某个特定的平台,因为它快速、一致、便宜且易于使用,但是如果您的CIO、CTO、CISO或总法律顾问说“不”,那么它将重新开始。

在云计算平台(包括无服务器平台)上运行的大多数计算资源都是由在合规性是基本要求的公司工作的开发人员创建的。到目前为止,这意味着要确保平台遵守GDPR(欧洲隐私准则)等政府法规,或者拥有认证,只要它们遵守行业法规,如PCI DSS(接受信用卡就需要)、FedRAMP(美国政府采购要求)、ISO27001(安全风险管理)、SOC 1/2/3(安全、机密性和可用性控制)等等。

但是,传统的云计算解决方案无法满足的监管要求也面临着新的风险。各国越来越多地寻求法规,以确保其法律适用于其公民的个人数据。确保你遵守这些法律的一种方法是完全在该国境内存储和处理一个国家公民的数据。

欧盟、印度和巴西都是拥有或正在考虑对其公民个人数据主张合法主权的法规的主要市场。中国已经对许多类型的数据实施了数据本地化规定。不管你认为似乎需要本地数据存储和处理的法规是不是好主意-我个人认为它们是会扼杀创新的糟糕政策-我的感觉是,它们背后的势头足够重要,在这一点上,它们很可能是不可避免的。而且,一旦少数国家开始要求数据主权,几乎每个国家都很难阻止他们效仿。

风险在于,这样的规定可能会让开发人员失去无服务器计算所获得的大部分效率收益。如果要求整个团队在不同辖区的不同云平台之间进行协调,以确保合规,那将是一场噩梦。

这就是边缘计算的杀手级功能。随着各国政府实施新的数据主权法规,拥有一个具有单一平台、跨越所有受监管地理位置的网络,对于寻求在本地保留和处理以遵守这些新法律并保持高效的公司来说,至关重要。

虽然法规刚刚开始出台,但Cloudflare工人已经可以在全球100多个国家当地跑步。这使我们能够帮助开发人员在他们认为合适的时候满足数据主权要求。我们将继续构建工具,为开发人员提供满足合规义务的选择,而不必牺牲云所带来的效率。

Serverless的最终承诺是允许任何开发人员说“我不在乎我的代码运行在哪里,只要让它变得可伸缩即可。”越来越多地,另一个承诺将需要是“我确实关心我的代码在哪里运行,我需要更多的控制来满足我的遵从性部门”。CloudFlare Workers可让您两全其美,即时扩展,位置遍及全球100多个国家/地区,并具有精确选择所需内容的粒度。

最精彩的部分?我们才刚刚开始。在接下来的一周里,我们将讨论我们对无服务器的愿景,并向您展示我们如何

.