通过 Serverless 架构构建更好的软件


咱们软件东西行业为开发者供给的支持还很不到位,无法协助他们构建更好的软件。

尽管在曩昔 30 年中,咱们开发软件的方法现已发生了巨大变化。就可用的技能和东西而言,咱们确完成已获得了巨大进步。

但这些开展对开发者的出产功率实践上有什么效果呢?
使构建软件变得更简单了吗@ n W | k
更廉价了吗?
更敏# n M捷了吗?

在曩昔 6 年的职业生涯中,我一直在尝试构建能进步开发 ` 6 o A者出产功率的p } (东西(先是在一家草创公司,后来在 CircleCI,现在在 Serverless)。在o A ` z v [寻觅这些问题答案的过程中,我发现答案基本上是 否定 的。

尽管既有的一些东西确实有助于咱们开发更强壮的软件,但它们只是在渐进式地进步出产功率。作为一个行业,咱们依然面对着相同的基本问题:软件开发极端困难,: S A g ?成本高昂。

云服务便是明证

一个典型的例子便是「云」。「云」的一个重要特点是让h 7 1 # B其他人管理咱们的服务器,而让开发人员能够愈加专心于代码。

这是一个非常好的想法。正是由于该价值主张,曩昔十年间出现了很多的云服务,而 Amazon 的市值也已达到V ) – 5 1.19 万亿美元(截至 2020.04)。

通过 Serverless 架构构建更好的软件

然而,尽管云服务将软件开发人员从处理物理服r F w d o E – Z `务器的作业中解放了出来,却没有消除处理服务器中令人头疼的许多根本要素,例如预配、缩放、维护和调试等。

关于咱们这个行业(包括我自己)所创造的许多技能,相同如此。

尽管 CI/CD 渠道有助于简化软件的测验和布置(尤其是关于团队协作的状况),可是它们依然需求编写测验、装备环境以及处理出错的生成容器。GitHub 为咱们供给了更好的软件协作开发用户体会,但它并没有从根本上消除团队在复杂代码根底上进行协作时所面对的问题。

总之,咱们行业获得的大多数进步都是渐进式的。 咱们未能明显地` ; I a让软件开发变得更简单、更廉价和更| m x敏捷,而这是咱们希2 R , F望完成的终究状况。

构建更优软件的途径

通过 Serverless 架构构建更好的软件

答案很简单,即 Serverless(无服务器);或许更切当地说,d % i l在 Serverless 技能的稳健性方面持续投入。

Serverless 是Y J j P E : }在运用开发过程中尽可能将底层结构笼统* 2 g出来,当时主要的体现方式是云函数 等函数即服务 (FaaS) 产品/服务。

这些产品/服务以及更广泛的 Serverless 服务非常风趣,因为它们能明显地进步出产功率。

也便是,使创立高度自定义式东西的能力大众化、通过x E 代码复用消除作业冗余、使数据拜访愈加简p V L o O 3 9 p单。

简化东西定制

就软件开发东西而言u N v ( ) R 6,咱们和任何潜在的 SaaS 客户都面对着相同的问题:自行构建还是购买?

出资构建完全满足咱们需求的东西,然后再花很多精力进行维护?或许选用第三方产品/服务,但不可避免地会包括一些并非咱们希望的附带作业流?这两种办法都不抱负;两种方p 4 p 5 R x v * @案都会导致软弱、昂贵且易出错的问题,并且不能协助咱们高效地开发高质量软件。

最抱负的状况是,咱们能够选用一种有强壮开放源代码社区或许商业公司供给支持的东西,并且这种. s # F n 7 e G东西能够轻松完成高度# E q _ o j : j自定义V : 1 x

该答案好像清楚明了,但咱们现阶段依然无法做到。不断增加的开放式 API 尽管打下了一Y G K A z [ {定的根底w = X z,但距轻松自 Z P A ? _ a 2定义大多数东西还非常悠远。

不过,Serverless 具5 h x , N有让这种抱负状况变成实际的潜力。

如果您的源管理、CI/CD 和项目管理体系全都能统一地揭露事情,使您能够通过布置到任何所选渠道的 Serverless 函数轻松处理这些事情,那真的) 1 – I S 8 S是一种非常抱负的状况。

尽管距离这一方针还很悠远,但 Auth0 Extend 和 CNCF CloudEvents 等项目正在朝着这个方针尽力。

简化代码复用

作为开发人员,最令人懊丧的事莫过于日复一日E q & g @ J v地编写重复代码。

通过 Serverless 架构构建更好的软件

要是咱们能够重复运用一条条代码来构建不同的运用,然后将编码的时刻集中到能够带来共同价值的事务逻辑上,那该有多好啊!

现在,Serverless 架构本质上是微服务架构:具有常见功用的函; F K u C 7 &数组。这些函数组一起布置,并同享 API 网关等根底结构资源。

我信任,跟着 Serverless 东西的开展,这些服W x ) W [务将变得更小更详细,并且包括更广泛的o N J o m _ ] –用例M ; n X `(例如,一个函数可用于布置和装备特定根底结构,或执行负载测验)8 q A o P。跟着这些服务变得q S 4 A 更小更详细,除原始开发人员以外的其他人也[ o w _ 1能够更简单地同享、装备和# 4 G G运用这些服务U N e e 4 z @ ^

这终` . ;究将使咱们步入一个新的时代:那时,揭露和在组织内部暗里同享、布置和复用微服务将变得非常简单。

这会大大下降咱们重复作业的时刻,使咱们能够更专心于共同的功用和事务价值。

当时已有一些项目向这方面尽力,例如 Standard Lib。未来这方面的开展值得等待!

简化Q n 2 & _ C数据拜访

现在,J 8 m A n Z i一切数字事务都会发生和收集海量的数据。这些数据是非常宝贵的资源。尤其值得注意的是,咱们能够运用这些数据来为用户构建更强壮的功用。

通过 Serverless 架构构建更好的软件

这种海量数据伴跟着一Q Y 5个问题:这些数据以各种不同的格式存放在各种不同的当地,难以得到运用} A g %

事情驱动架构(Serverless 架构通常构建于该类架构之上)能够以事情方式. P = ( 2 a S揭露一切数据。而这些事情能够直接通过 Serverless 函数得到运} v x P {用。

尽管这种通用, 4 Y = ` ,架构形式还不成熟,但如果一切F H M n k数据都能以事情的方式存在,且能* Y _ N s | 3够通过托管在任意位置的函数进行处理,咱们就能够解决现在面对的数据可移植性和拜访方面的许多挑战。

终究,咱们的开发功率将明显进步。

总结

关于开发人员来说,当下是一个激动人心的时代。咱们很有可能会见证到咱们目前可用的东西完成前所未有的根本改进。

X , 7 q J s 2们每个t U / _ X人都有责任持续寻求8 ! z & { F并推进这一改变。

传送门:

  • GitHub: github.com/serverless
  • S % s网:serU % ) . H 0 gverless.com

欢迎拜访:ServerB H 9 c [ N 2 3less 中文网T ; 1 (,您能够在 最佳实践 里体会更多关于 Serverless 运用的开发!

发表评论

提供最优质的资源集合

立即查看 了解详情