受腾讯云 Serverless 团队之邀,Tim Wagner 在 Techo 开发者大会上为中国开发者发表了Keynote演讲,演讲中 Tim 发表了对 Serverless 技术的最新洞见和趋势解读。Tim Wagner 是 AWS Lambda的创始人,作为业界最早的 Serverless 实践者,他无愧于 Serverless 教父之位。
本文内容整理自 Tim Wagner的演讲实录,由腾讯云 Serverless 团队进行翻译、校对和整理。下面就让我们一起再次回顾一下,Serverless教父的这次精彩的主体演讲。本文约3700字,阅读时间约 9 分钟。
原作者:Tim Wagner,翻译&校对:王俊杰、刘传
大家好,我是Tim Wagner,Vendia CEO和联合创始人,我的整个职业生涯都在努力让软件和应用程序更容易开发。
早在2013年,我就找到AWS的高管团队探讨一个想法,是否能够通过将确保程序运行的大部分复杂性工作从开发者转移到云提供商,从而使得在云上创建应用程序变得更加简单。云提供商已经拥有大量的专业知识、出色的运维工具和大量专业人员,致力于保持服务器和存储服务全天候不间断平稳运行。让开发者不必担心扩缩容、容错或基础设施维护,这会使软件构建变得容易得多。
基于这个想法,AWS Lambda诞生了。尽管我们没有使用Serverless这个词,但它是云计算领域出现Serverless的开端 —— 一种无需考虑服务器和容器便可大规模运行代码的方式。今天我想分享一些洞察,关于云,尤其是Serverless的发展方向。
在此之前,我们需要先回顾一下云计算的历史发展。我将云计算分为三次浪潮。
第一次大约从2006年到2014年,主要是特征是在企业数据中心之外托管服务器。
对于那些较早的云使用者,我们称他们为探索者,当时颠覆性的变化是虚拟机能够在10分钟之内运行起来。在这次浪潮中几乎不涉及Serverless,这些探索者寻求的是迁移的兼容性,而不是云所带来的新功能,而这意味着云服务与传统服务器托管服务的差异尽可能小。此外,这些探索者通常都是分布式系统专家,在许多情况下,他们都会带着自己的原有的流程和运维团队来处理扩展、容错和操作维护等问题。
第二波浪潮,建立在第一波基础之上。比方说,AWS Lambda是完全基于现有服务(例如EC2和S3)构建的第一个服务,而不是直接使用裸金属硬件构建的。第二波浪潮直到我们创造出那些新的云计算技术和云计算能力,才算真正开始。
第二波开发者实际上和以往已经有所不同。他们不再专注于纯粹的系统迁移,他们愿意学习和采用新技术、新的做事方式,实现更快的上线速度、更高的开发效率、更高的安全性或更好的客户体验。包括 Serverless计算、Serverless队列、Serverless数据库、Serverless BLOB存储,云服务上将这一套技术提供给开发人员。这些开发者我们称他们为“定居者”吧,他们有更简单、更方便的工具,而不是一切都从绘制草图开始。
这还永远改变了云服务商和开发者之间的关系。云服务商不再只是原始的基础设施租赁公司,他们现在会关注每个开发者应用程序的业务细节。这是一个巨大的观念转变和新的职责。因为现在云服务的性能和功能,不仅直接影响到人们可以在云上构建什么,还包括这些应用程序的运行情况,以及它们满足客户期望的程度。
第二波浪潮里的开发者与云服务商达成了一项至关重要的默契 —— 开发者愿意学习这些新的技术,并修改代码去适配这些新的服务,以获得更好的收益。比如,更低的成本、更简单的模式(如事件处理、自动扩缩容),不再需要考虑配置容量或关注服务器健康程度,所有这些都是对开发者改变软件编写方式的驱动力和优势。这些优势推动了Serverless的成功。如今,财富500强企业几乎都表示在使用Serverless服务,而且越来越多的开发者自接触云便从Serverless开始。
那么下一步是什么?今天我们正处于这一激动人心的新阶段的开端:我称之为第三次云技术浪潮。
这些新浪潮下的开发者再一次看起来跟之前的开发人员完全不同。第三次浪潮里的开发者,好比成长于云时代的 “城市规划师” 。如今,进入这一行业的开发者,可能永远不会真正看到服务器。他们中的许多人永远不会看到数据中心或用到运维方法论。对他们来说,云原生这个术语甚至没有任何意义 —— 因为他们一开始就处在云原生的时代。总的来说,这些开发者都是实用主义者,有大量的专业软件工程师,用云提供的工具就可以完成他们的工作。
是什么在驱动云计算的第三波浪潮呢?
这一切,都是为了可以更加容易和方便的使用云服务去编程。熟悉的工具和框架消除了无差别的繁重工作。标准的部署流程,能够使开发者在跳槽时,都能将从一家公司学习的技术应用于其他公司。这些技术标准,也使在不同环境中的技术复用成为可能。进一步,云为开发者创造了解决方案,而不仅仅是给他们提供新技术。
这些对于 Serverless 意味着什么?
首先,意味着需要非常广泛的用例。Serverless 最开始只有几个用例,比如事件处理。最初,像冷启动这样的问题,限制Serverless在低延迟场景中的应用。所以,要在第三次浪潮中取得成功,Serverless技术必须消除冷启动等问题,并可以更快速的进行扩容。目前已经看到云厂商解决了这些问题,最新一代的Serverless计算方案,现在几乎可以满足任何应用需求。
其次,第三波浪潮中的Serverless需要与现有工具和框架无缝衔接搭配使用。比如,支持容器镜像等标准。这并不意味着让开发人员再次面临运维服务器和容器的挑战,这只意味着应用程序构建和部署工具需要标准化和可移植性。
最后,第三波浪潮需要满足开发人员的实际需求:支持现有的语言和框架,并为代码和配置提供跨云的标准(好比 docker 映像),以帮助开发人员在不同的环境中保留和复用他们的技术和代码。我们已经看到该领域的每个云提供商都提供了惊人的、变革性的产品,这使得Serverless 的应用更加简便,并能够逐年产生更多的 Serverless 应用案例。
Serverless的未来是什么?基于我已经谈到的两个令人兴奋的趋势,我可以给你们两个预测。
首先,我们都听说一个坏消息 —— 摩尔定律已经失效!计算机芯片并没有真正变得更快,内存密度也没有大幅提高 —— 至少没有以过去的速度增长。计算机性能每隔几年翻一番的想法已经结束了,不是吗?
云计算取决于三大要素,不仅仅是CPU、内存,还有网络。云数据中心的联网速度仍在逐年以惊人的速度变得更快,这对Serverless来说真的是个极好的消息。在联网速度很慢的年代,云上的高性能计算的本质上取决于服务器,其工作方式基本上与10到15年前相同。比如,你在云上拥有几台多核CPU和大内存的大型实例,如果你现在正在计算密集型业务:例如机器学习或者蒙特卡洛模拟计算,那么您可能会以完全相同的方式进行,即分配这些强健的服务器实例,然后在上面运行计算密集型任务。
但随着网络相对于CPU和内存变得更快,情况突然发生了变化。突然之间,分布式存储和分布式计算与传统大型计算实例开始竞争。开发者开始考虑,在哪里可以轻松获得大量的计算资源—— 答案就是 Serverless 云函数。
为什么是 Serverless 函数? 在过去的50年里,分布式计算研究人员专注于基于服务器的模型,拥有无限的时间和有限的资源。 Serverless计算彻底颠覆了这一切,开发人员现在拥有无限的资源,但时间有限。,这就需要大量新的算法和新的研究。
在过去的几年里,Serverless 领域的研究呈爆炸式增长。关于Serverless存储、Serverless计算、以及图像处理和线性规划等 Serverless 应用的论文有很多,大学已经开展了越来越多的研究来探索这一新的范式,这从根本上是由摩尔定律在网络空间中依然有效所驱使的。而Serverless 云产品也因此越来越好,这是一个令人异常兴奋的时期,这将导致 Serverless 技术在第三次云计算浪潮中得到更多的采用,基于 Serverless 现在每个开发人员在云中部署代码时,都可以获得一台易于使用、易于编程的“超级计算机”。
再谈谈我的第二个预测,我将从一个棘手的问题开始——如果 Serverless 这么棒,为什么我们仍然在使用服务器?比较中肯的答案是,状态管理和共享仍然很困难。半个世纪以来,程序员一直在努力解决,如何构建一些跨公司、跨地区、跨账户、跨云、跨技术栈应用程序的问题。Serverless 计算使其中一些模式成为可能,例如同步事件处理、更简单有效的编程方法,但是它还没有解决所有这些挑战和问题。
为什么会这样呢?尽管 Serverless 有很多优点。Serverless计算仍然存在挑战:这些服务通常只在一个云上运行,一般的 Serverless 函数都没有内置的数据模型和持久化存储,这让你的应用程序跨不同地区、或跨云工作仍然非常棘手。目前当这些问题出现时,开发人员会使用一些不同的工具和方法来去解决。
现在证明区块链的基础技术——分布式账本,实际上可以解决其中的一些难题。分布式账本天生就是去中心化的,它们通过使用复制和同步的数据存储跨越云、区域和帐户,并提供易于编程的数据模型和ACID事务,就像传统的SQL数据库一样。
第一代区块链作为一个软件平台并不是很有效。每个节点都在单个服务器上运行,从而将其计算、内存和网络资源限制为极少的数量,并很难与其他云服务集成,也不能处理大型文件或多媒体等重要的实时数据。
我创办Vendia公司的原因之一,就是利用这两类技术之间令人兴奋的交集。
通过使用Serverless 服务重建分布式账本,我们可以在每个节点中放置一台超级计算机,从而解决困扰第一代区块链技术的性能、集成和部署挑战。
通过将易于编程、一致数据模型的分布式账本附加到Serverless函数中,我们可以使客户访问Serverless 编程模型,该模型能够跨越公司,云,地理位置甚至技术栈。
这种技术标准之下,开发人员能够以前所未有的灵活性、可扩展性和简单性创建可移植的跨云应用程序。这样的创新正在推动新一代Serverless应用程序的发展,这些应用程序将最好的服务与最好的传统应用程序结合在一起。
Serverless 自出现以来经历了令人惊讶的增长速度,Serverless技术的未来看起来从未像现在这样光明。Serverless 将为每个开发者提供了超级计算机般的性能,提供有状态、更轻便的应用程序支持、以及链接万物的能力。这将推动云计算的新浪潮即将到来,帮助我们比以往任何时候都更快、更好地为客户提供更多价值。
One More Thing
立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 👉 serverless/start
欢迎访问:Serverless 中文网!