无服务器解决了什么问题?
无服务器解决的问题并非技术问题(除非你为 AWS、Azure 等无服务器供应商工作)。它远比技术问题重要得多,因为它直接影响你正在构建的产品的商业价值。
怎么做?让我试着给你讲个故事。但在开始之前,我想提醒你,无服务器不是这个故事的主角,但它是故事的英雄之一,我保证!
2018年,我们最终决定打造一款简单的产品,让我们无需复杂昂贵的人力资源系统就能管理公司员工的休假。我们团队有15个人,我们需要一款功能单一的简单工具。
我们尝试过一些简单的东西,但我觉得我们做得不够,因为当时对我们来说一切都太复杂、太昂贵了。在探索构建这个工具的想法时,我们与其他中小企业的朋友交流了。他们也遇到了同样的问题,其中一些人告诉我们,他们很想使用类似的工具。于是,一个想法在我们脑海中闪过——这可能会成为一个真正的产品!
但为了解决这个问题,你需要充分理解它。为了简单起见,我将仅展示单个用户旅程的基础知识。
认识一下安娜吧;她是快速发展的智能家居维护初创公司 Sonic Screwdriver 的一位优秀经理。除了许多其他工作之外,安娜还需要管理团队的休假情况。这包括了解哪些员工没有上班、跟踪剩余和已使用的带薪休假天数,以及管理休假申请。此外,她还需要规划未来的休假和团队容量,管理星际团队的休假政策,以及其他许多职责。
为了随时掌握用户动态,安娜使用了一系列产品,例如日历、电子表格、各种沟通渠道等等。这个过程需要大量的手动工作。而且,日历和电子表格并不总是能及时提供信息。你经常会在需要最终 PSD 文件的时候,发现同事已经“呼呼”了。而此时,他们已经在地球另一边的海滩上享用莫吉托了。
嗯,这定义了一个问题,但要解决它,我们需要分析它并采取行动。为此,我们使用Wardley 地图,这些地图可以帮助我们呈现业务运营的格局。如果我们将之前的价值链放入 Wardley 地图中,它看起来类似于下图。
Y轴代表价值链,上层是客户可见的部分,下层是他们不可见的部分。X轴代表组件的演进。万物皆始于起源;例如,电的概念自古以来就已存在。然后,人们开始构建定制解决方案,并在某个时刻转化为产品。最终,事物成为商品或公用事业,例如,如今电无处不在,我们只需按实际用量付费。
如果我们想构建一个休假管理应用程序,该应用程序将成为 Anna 的产品,并且地图开始看起来类似于下图。
对于安娜来说,我们的应用只是地图上的一个点,它下面的所有内容对她和她的团队来说完全不可见。但对于我们来说,这个点是另一张巨大的地图,它包含组件、价值链、依赖关系等等。我们需要管理它下面的内容,也就是价值链中的内容。
当你创业时,你的能力和预算是有限的(尤其是像我们一样白手起家)。你需要非常谨慎地选择你的战场。每个解决方案都可能引发下一个问题。
对 Anna 来说,能够及时收到通知并同步团队日历,还是知道你的应用拥有一个漂亮的数据中心更重要?这是一个显而易见的问题。但我们可以问一些不那么明显的问题,例如,Anna 关心我们优秀的框架还是 Kubernetes?我不这么认为。我不关心 Dev.to 技术栈,而且我是一名程序员。
那么,我们该怎么做才能腾出时间去做安娜关心的事情呢?我们可以外包一些职责。但我们应该外包什么呢?休假追踪?我们的业务逻辑?不,这才是我们业务的核心。不过,我们可以尝试外包其他所有事情,比如用户管理(我们通过 Slack 或 Microsoft Teams 进行),发送电子邮件(MailChimp,或者更好的 customer.io),基础设施等等。
等一下,我刚才说的是基础设施吗?
是的,故事的主角——无服务器——来了。我们先来看地图。
与其他任何事物一样,计算技术也在不断发展,并移至我们进化轴的最右侧。随着计算技术成为商品,服务器也随之商品化,操作系统也随之商品化。你的基础设施中运行着哪种操作系统?只要它能正常工作,谁会在乎呢?我们不再需要手动安装任何东西。一个东西的商品化会拉动许多其他东西,并开启新的机遇。
无服务器如何适应这一形象?
无服务器是指您将来无需再操心的所有事情。您需要发送请假申请吗?Slack 或 Web 应用会将其发送到某个 API 端点,您的提供商会在后台触发一个函数来执行您的业务逻辑。该函数会将请假申请数据保存到某个数据库,然后发送通知。然而,所有这些事情都将完全由我们管理,并且大部分都对我们隐藏,即使我们是开发人员。
除非你怀旧,想找点乐子,否则你可能不会再组装新的电脑硬件了。你为什么要组装基础设施?其他人比我们(或者至少是我)做得更好,而且在大多数情况下,我们构建的产品的业务逻辑并不关心基础设施。
但如果我们希望无服务器也能实现这一目标,我们就需要为不断发展的新生态系统采用新的编码最佳实践。
这是否意味着无服务器尚未准备好?
完全不是!我们的产品从一开始就在无服务器上运行。上个月我们处理了超过 1300 万个请求,基础设施费用约为 100 美元(我撒谎了,因为我们有积分,所以一分钱都没花)。鉴于近 500 个团队满意地使用我们的产品,我可以说无服务器已经准备就绪。我相信很多人也会同意这一点,包括Codepen、MindMup等众多产品。
如果我们不需要照看基础设施,我们就可以专注于对 Anna 和其他使用我们应用的优秀用户来说至关重要的事情。同样,我们可以看看我们的地图,专注于那些仍然为他们定制的东西。
但地图仅仅是个开始,正如 Wardley 地图的创始人 Simon Wardley 所说,所有地图都不完美。你需要不断改进,并与使用你产品的人进行沟通,因为最终,没有他们,你就没有产品。
顺便说一句,如果您遇到与我们相同的问题,或者您想查看结果,请查看我们的产品:Vacation Tracker。
在我们结束之前,你可能会问,那么容器呢?它们也在尝试解决同样的问题吗?无服务器比容器更好吗?如果是,为什么?
我认为容器和无服务器都将引领我们走向应用开发的未来。这个未来是什么?我不知道;这取决于我们所有人。
也许我们会通过与计算机对话来构建应用程序,或者其他完全不同的方式,我们拭目以待。但我 100% 肯定,这不需要我们管理基础设施。
这种演变将具有显著的惯性,主要来自你、我以及其他早期采用如今已成为标准的事物的人。但就像所有其他情况一样,无论我们的观点如何,技术都会不断发展。
如果你选择容器或无服务器,你将离光明的技术未来更近一步。目前,无服务器可能并非适用于所有用例,但我见证了该生态系统在过去五年中发生的惊人演变。我也遇到了许多比我更聪明的人,他们致力于将其提升到一个新的水平。另外,请记住,使用无服务器,你会稍微偏向沃德利地图的右侧,可能就在那堵巨大的惯性墙后面。所有事物都在慢慢地向右侧倾斜。谨慎选择你的战场,打造优秀的产品。
文章来源:https://dev.to/aws-heroes/what-problems-does-serverless-solve-1fg6