服务
关于
CloudProse博客

2018年10月8日,星期一

无服务器是一种罕见的技术,它使业务领导者像工程师一样兴奋。这是因为(惊奇!)根本不是关于技术的。从本质上讲,无服务器的运动是 您的业​​务流程和文化的根本转变 使您的业务重新定位于建筑价值,而不是固定重量和“保持开灯”状态。在这篇文章中,我将在Trek10上重点介绍我们在为客户构建无服务器系统时实现价值的一些关键方式。

无服务器的承诺:事半功倍,事半功倍

我倾向于听到客户争相谈论的无服务器的第一业务优势是 缩短了上市时间。

无服务器速度是iRobot这样的商店的速度 少于十名工程师即可管理数百万台连接的设备。在Trek10中,我们通常仅用几个专门的工程师就可以在几天或几周内构建大型系统,这将使我们花费数月的时间才能与使用任何其他技术的大型团队一起构建。那不是因为我们很棒(尽管我们想认为我们是 很棒),但是因为技术抽象使我们能够专注于构建仅为客户提供真正独特价值的代码和配置。

即使付出了高昂的代价,所有这些速度也会令人着迷。有时使我们的客户震惊的是无服务器系统的价格负担。

补充工具栏:YADS(还定义了无服务器)

在我们可能用来描述这一运动的所有名称中,“无服务器”可能是最糟糕的:它是时髦的字眼,不具有信息性,并且可以创建参数。因为是的-我们明白了,无服务器中仍然有服务器。当我在整个帖子中使用术语时,我将指的是落在下图中心的最佳位置的技术,如下图所示:

在评估“无服务器”技术时,您必须注意两个方面: 运作模式编程模型。编程模型(功能,事件驱动,无状态计算)以AWS Lambda等“功能即服务”提供程序为代表。这种运营模式-永远不用为闲置支付费用,也不管理任何基础架构-不仅可以应用于FaaS,还可以应用于多种技术。可以将Firebase或AWS AppSync等“托管后端即服务”视为。

请注意,一项技术可以单独利用编程模型的一部分(想到“像Kubeless和knative之类的”自托管FaaS”选项),也可以利用部分运营模型(如对AWS托管的Elasticsearch服务进行收费的托管服务),但是,您越靠近图表中心的最佳位置,您将从下面将要讨论的“无服务器”优势中受益匪浅。

无服务器如何降低您的总拥有成本

使用率

从根本上讲,无服务器的成本可以归结为 利用率。您可能已经看到了数字-传统的本地数据中心服务器往往只是 使用了15%到30%。 (我们甚至听说过,大多数大型EC2用户也难以达到这一利用率!)换句话说,这意味着您的服务器成本中有70%至85%是无负担的。浪费。

假设您有时间重新构建应用程序的架构,然后将其作为功能运行,则可以在理论上消除利用率图,从而使成本随规模线性增加。多年来,我们已与Trek10客户共享此图:

绿色虚线表示与扩展服务器容量相比,无服务器模型可节省成本。同样重要的是,请记住,上面的EC2与Lambda的直接比较有点像是苹果到橘子。您会在Laada之类的FaaS中获得大量附加服务:

  • 排队 用于异步调用
  • 高可用性 区域内
  • 节流
  • 本机REST API (人们往往会错过这一点-但是,如果您控制客户端,则可以直接调用Lambda的API,而无需API网关)。

所有这些事情将使您在“传统”云架构中花费更多的钱。在FaaS中,它们只是每次调用费用的一部分。 AWS Lambda的前总经理Tim Wagner估计,转用FaaS的收益 在4:1和10:1之间的成本压缩 用于典型的企业工作负载。

比萨问题

这是无服务器的直接经济论据,通常就足够了。但这确实提出了我认为的“披萨问题”。您可能会说:“我得到的是运行功能而不是服务器,或者为某些其他托管服务支付额外费用,可能会节省少量资金。就像买一片披萨。但是,从规模上看,无服务器的意义就如同购买八片披萨而不是整个馅饼。标记杀死了您。当然,运行服务器更经济吗?”

就目前而言,这一点可能是正确的。 (网站 服务器。哈哈 有一个不错的计算器,可以帮助您找到Lambda函数比EC2实例花费更多的确切拐点。)但是在Trek10中,我们发现在秤的相对侧称量函数和服务器是一种幼稚的方法看无服务器成本。那是因为基础设施支出只是冰山一角, 总拥有成本或TCO。

服务器的人力成本

不久前,我正在帮助某人做出有关新服务的日志记录栈的决定。他们进行了数学计算,发现他们每年可以在Datadog或Splunk之类的托管服务上花费10万美元。或者,他们可以使用像Elasticstack这样的开源软件来滚动自己的日志记录堆栈,将其托管在自己的AWS账户中的EC2上,每年在基础设施和存储上花费约6万美元,节省40%。

本土方法似乎赢得了胜利,对吧?没那么快。托管服务的“水线以上”成本很可能会更高,但是本土化方法的总体拥有成本才刚刚开始。请考虑以下问题:

  • 假设您的DevOps工程师需要三个月的时间来定制,自动化,测试和部署ElasticStack解决方案到生产中。那是多少工程时间,所有这些时间要花费多少? (提示:与托管服务相比,它可能已经超过了每年节省的费用。)
  • 部署系统后,您将承担基础设施安全和维护的职责。当下一个Spectre或Meltdown错误出现时,必须有人修补这些服务器。有人将不得不解决磁盘空间问题和配置错误。这些债务将花费您多少时间和金钱?
  • 本地解决方案(顺便说一句,对于您的DevOps团队而言,这没有什么问题,几乎可以保证,它比由其工作完全是该技术领域专家的人们创建的托管服务要差得多)将具有脚本和配置必须记录并保持最新的文件。换句话说,它吸引了技术债务。您的团队需要多少认知开销?

最后,最重要的是,您的团队在处理上述问题上所花费的所有时间还可以做什么?您聘请他们成为您独特业务需求的领域专家。关于该日志记录堆栈,没有什么独特之处(从AWS借来的术语没有区别)。您的团队为什么不将他们宝贵的时间和专业知识集中在为企业创造价值上?

补充工具栏:我如何知道要外包哪些问题?

建立与购买之间的演算似乎不胜枚举,但是在Trek10上,我们已经成功实现了Simon Wardley独特的,可自由访问的业务映射方法。创建业务环境的地形图表示可以帮助您确定外包哪些服务,将哪些服务保留在内部以及更多其他内容。 看看这个!

话语锁定

如果这篇文章开始听起来不太像无服务器的情况,而更像是在可能的情况下采用托管服务的论点……那么,那是有意的,符合无服务器的定义(有人会说 “全方位服务”),我上面已经解释过了。但这也增加了供应商锁定的丑陋幽灵。合理地询问,当我们依赖云提供商或其他第三方作为业务基础架构的关键组件时,会造成什么风险。如果他们提高价格,弃用服务甚至倒闭该怎么办?

我已经解决了锁定问题 最后 因此,在此之前,我不会在此详细介绍它,而是要说:您需要弄清楚真正的最大风险是什么。您是否与AWS等值得信赖的供应商合作,该供应商在降低价格和维护服务方面表现出悠久的历史?还是在竞争让您落后的同时,您仍然紧盯传统技术?

无服务器对所有人有意义吗?

不会。请记住,无服务器化不仅仅是一个技术问题。更重要的是 转变您的组织.

我所说的关于维护传统系统所需的工程时间的所有内容?同样,将旧系统迁移到无服务器也可能要花费大量时间。如果您拥有已经获利且结构合理的产品,也许现在不是时候动摇了。如果您的工程团队在使用无服务器技术进行生产之前需要大量培训,那么也许不要在下一个紧迫的期限内着眼于无服务器架构。

但是,将头埋在沙子里并没有任何长期优势。无服务器的经济优势很难忽视,越来越多的公司开始接受它。您是否知道90%的AWS最大客户使用Lambda?还是那个拥有60年历史的信用评分巨头FICO使用无服务器来减少他们的云支出 一到两个数量级 ?可能是你。它 应该 是你

那我该如何开始呢?

与拥有大量旧系统的大型企业相比,在初创公司或未开发产品中,无服务器采用的情况将有所不同。我喜欢Verizon的Rajdeep Saha 不得不说 建立无服务器的文化,坚持一个大公司。我将根据自己的经验添加一些技巧:

  • 确定您组织中喜欢学习新技术的工程师。给他们一个挑战,以使用无服务器实现新流程或功能。让他们给您(和他们自己)一个惊喜 太快了 它在一起。
  • 尝试建立无服务器代理以减轻现有旧系统的负担。这可以为您立即带来好处,同时为将来的迁移打开了方便之门。
  • 即使您无法摆脱环境中的每台服务器,而且实际上是“无服务器的”,也请尝试在任何可以“减少使用服务器”的地方。一旦基础设施(甚至代码)无法提供独特的价值,我们就必须习惯它。现在是时候摆脱那些无法使您的业务脱颖而出的基础架构业务了。

而且,当然,您可以 关注Trek10 寻求任何帮助。我们很乐意 和你聊天 关于无服务器可以帮助您以及您的工程团队构建有用内容的方法。建设愉快!

作者
福雷斯特Brazeal Trek10 191210 171202
阿甘(Forrest Brazeal)