无服务器已成为最近的一个流行语,并有充分的理由。它有可能完全改变开发人员编写代码的方式。他们可以简单地编写一系列事件触发器,同时让云供应商担心提供完成作业所需的任何数量的计算资源。它代表了程序开发方式的巨大转变,但很难找到使用这种方法从头开始构建的公司,因为它是相当新的。幸运的是,一家帮助客户在公司内部管理软件即服务的创业公司是一家决定做到这一点的公司。联合创始人兼首席技术官AaronWhite表示,当他正在建造Blissfully的早期版本时,他发现他需要快速的计算能力来提供组织正在使用的所有SaaS产品的列表。
他认为他可以留出一堆服务器来提供所需的爆发力,但这需要大量的管理费用。在这一点上,他是一个孤独的程序员,试图证明他的SaaS管理理念是可能的。当他看到无服务器与传统虚拟机的优缺点时,他开始认为无服务器是一种可行的方法。他在此过程中学到的是,无服务器为公司提供了许多优势,这些公司采用Blissfully等突发方法,根据需要进行扩展和缩小。但它并不完美,并且在管理和工具方面存在问题,并且处理他必须在飞行中学习的扩展能力的优缺点,特别是在他使用这种方法时尽早进入。
幸福是一种服务,无服务器很有意义。它不必管理或支付它没有使用的服务器。它根本不必担心底层基础设施。这将取决于云提供商,它只会在发生爆炸时支付爆发费用。无服务器实际上是用词不当,因为它并不意味着没有服务器。它实际上意味着您不必设置服务器来运行您的程序,这是一个非常令人兴奋的转变。在传统编程中,您必须提前编写代码并设置所有底层硬件,无论是在数据中心还是在云中。使用无服务器,您只需编写代码,云提供商就可以为您处理所有这些问题。它在实践中的工作方式是程序员设置一系列事件触发器,因此当某个事件发生时,云提供者会看到这一点并按需提供必要的资源。大多数云供应商都提供此类服务,无论是AWSLambda,AzureFunctions还是GoogleFunctions。
在这一点上,怀特开始考虑无服务器,以免他考虑管理和维护基础设施以及所有这些。"我开始思考,让我们看看我们能走多远。我们真的可以完全做到无服务器的一切,如果是这样,那么在实践中你必须减少大量传统的DevOps式工作。还有很多,但那是一开始的想法,"他说。
但是有一些问题,特别是他早就进入无服务器。对于初学者来说,怀特需要找到能够以这种方式工作的开发人员,并且在2016年推出时,没有大量的人拥有无服务器技能。怀特表示,他并不是在寻找直接经验,而是那些善于学习并且足够灵活处理新技术的人,无论他们如何实现这一点。
一旦他弄清楚了基础知识,他就需要考虑一下这在结构上是如何运作的。"挑战的一部分是弄清楚你在哪里划分不同的无服务器功能之间的界限?您如何看待您想要将一个功能与另一个功能的功能重叠多少?你想怎么拆分?你可能会过于具体,当然,你可以过于宽泛。因此,就你希望如何分割你的代码库以这种方式工作而言,会有很多判断调用,"他说。他这么早就采用无服务器方法面临的另一个挑战是缺乏围绕它的工具。怀特找到了无服务器公司正确的方式,这帮助他建立了一个基本的开发框架,但他缺乏良好的日志工具,并表示该公司现在仍然在努力解决这个问题。"DevOps不会消失。这仍然在某个服务器上运行(即使你不控制它),你也会遇到问题。"他称之为"冷启动问题"。
幸运地使用AWSLambda,并且由于他们的客户需要资源,因此亚马逊没有留出一组专用资源来等待此类事件。如果它需要冷启动服务器,那可能会导致延迟。为了弥补这一点,Blissfully运行一个持续pingLambda的工作,以便它始终准备好运行实际的应用程序,并且没有与从头开始相关的延迟时间。另一个问题可能是相反的问题。你可以比你准备好处理的速度快得多,这对于一个小团队来说可能是一个问题。他说,在这种情况下,你想要限制通话的速度,这样你就不会花费超出你能承受的费用,而且它不会超出你团队管理它的能力,"我想,在某种程度上,这实际上加速了你遇到问题,你通常会在你真正考虑它们之前规模更大,"怀特说。
另一件事是,一旦Lambda完成所有工作,它可以比外部API处理更快地移动数据,这可能需要限制器实际减慢速度。"过去我从未遇到过这样的问题,因为我提供了如此多的计算资源,以至于谷歌因为速度过快而大吼大叫。对Google而言过快需要花费很多精力,但Lambda并不需要花费太多精力。当它决定调整任何资源时,你可以对其他API做一些严重的外向损害。"这意味着他和他的团队实际上必须尽早考虑建立复杂的限速方案。至于成本,怀特估计,由于他已经建立并建立了服务,他的成本要低得多。
"我们现在的成本非常低,远低于基于服务器的基础设施。我们的计算模式非常突发。"这是因为它每天重新解析一次SaaS数据库,或者客户第一次注册时,在两者之间,使用量与数据交互相当低。"所以对于我们来说,这对于无服务器来说是完美的,因为我真的不需要保持容量,这将是纯粹的浪费。"