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

我们软件工具行业为开发者提供的支持还很不到位,无法帮助他们构建更好的软件。

尽管在过去 30 年中,我们开发软件的方式已经发生了巨大变化。就可用的技术和工具而言,我们确实已经取得了巨大进步。

但这些发展对开发者的生产效率实际上有什么作用呢?
使构建软件变得更容易了吗?
更便宜了吗?
更迅速了吗?

在过去 6 年的职业生涯中,我一直在尝试构建能提高开发者生产效率的工具(先是在一家初创公司,后来在 CircleCI,如今在 Serverless)。在寻找这些问题答案的过程中,我发现答案基本上是 否定 的。

虽然既有的一些工具确实有助于我们开发更强大的软件,但它们只是在渐进式地提高生产效率。作为一个行业,我们仍然面临着同样的基本问题:软件开发极其困难,成本高昂。

云服务即是明证

一个典型的例子就是「云」。「云」的一个重要特点是让其他人管理我们的服务器,而让开发人员能够更加专注于代码。

这是一个非常好的想法。正是由于该价值主张,过去十年间涌现了大量的云服务,而 Amazon 的市值也已达到 1.19 万亿美元(截至 2020.04)。

image

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

对于我们这个行业(包括我自己)所创造的许多技术,同样如此。

虽然 CI/CD 平台有助于简化软件的测试和部署(尤其是对于团队协作的情况),但是它们仍然需要编写测试、配置环境以及处理出错的生成容器。GitHub 为我们提供了更好的软件协作开发用户体验,但它并没有从根本上消除团队在复杂代码基础上进行协作时所面临的问题。

总之,我们行业取得的大多数进步都是渐进式的。 我们未能显著地让软件开发变得更容易、更便宜和更迅速,而这是我们希望实现的最终状态。

构建更优软件的途径

image

答案很简单,即 Serverless(无服务器);或者更确切地说,在 Serverless 技术的稳健性方面继续投入。

Serverless 是在应用开发过程中尽可能将底层结构抽象出来,当前主要的体现形式是云函数 等函数即服务 (FaaS) 产品/服务。

这些产品/服务以及更广泛的 Serverless 服务非常有趣,因为它们能显著地提高生产效率。

也就是,使创建高度自定义式工具的能力大众化、通过代码复用消除工作冗余、使数据访问更加容易。

简化工具定制

就软件开发工具而言,我们和任何潜在的 SaaS 客户都面临着相同的问题:自行构建还是购买?

投资构建完全满足我们需求的工具,然后再花大量精力进行维护?或者采用第三方产品/服务,但不可避免地会包含一些并非我们期望的附带工作流?这两种办法都不理想;两种方案都会导致脆弱、昂贵且易出错的问题,并且不能帮助我们高效地开发高质量软件。

最理想的情况是,我们能够采用一种有强大开放源代码社区或者商业公司提供支持的工具,而且这种工具可以轻松实现高度自定义。

该答案似乎显而易见,但我们现阶段仍然无法做到。不断增长的开放式 API 虽然打下了一定的基础,但距轻松自定义大多数工具还非常遥远。

不过,Serverless 具有让这种理想状态变成现实的潜力。

如果您的源管理、CI/CD 和项目管理系统全都能统一地公开事件,使您能够通过部署到任何所选平台的 Serverless 函数轻松处理这些事件,那真的是一种非常理想的情况。

虽然距离这一目标还很遥远,但 Auth0 ExtendCNCF CloudEvents 等项目正在朝着这个目标努力。

简化代码复用

作为开发人员,最令人沮丧的事莫过于日复一日地编写重复代码。

image

要是我们能够重复利用一条条代码来构建不同的应用,然后将编码的时间集中到可以带来独特价值的业务逻辑上,那该有多好啊!

如今,Serverless 架构本质上是微服务架构:具有常见功能的函数组。这些函数组一起部署,并共享 API 网关等基础结构资源。

我相信,随着 Serverless 工具的发展,这些服务将变得更小更具体,并且涵盖更广泛的用例(例如,一个函数可用于部署和配置特定基础结构,或执行负载测试)。随着这些服务变得更小更具体,除原始开发人员以外的其他人也可以更容易地共享、配置和使用这些服务。

这最终将使我们步入一个新的时代:那时,公开和在组织内部私下共享、部署和复用微服务将变得十分容易。

这会大大降低我们重复工作的时间,使我们能够更专注于独特的功能和业务价值。

当前已有一些项目向这方面努力,例如 Standard Lib。未来这方面的发展值得期待!

简化数据访问

如今,所有数字业务都会产生和收集海量的数据。这些数据是非常宝贵的资源。尤其值得注意的是,我们可以使用这些数据来为用户构建更强大的功能。

image

这种海量数据伴随着一个问题:这些数据以各种不同的格式存放在各种不同的地方,难以得到利用。

事件驱动架构(Serverless 架构通常构建于该类架构之上)能够以事件形式公开所有数据。而这些事件可以直接通过 Serverless 函数得到利用。

尽管这种通用架构模式还不成熟,但如果所有数据都能以事件的形式存在,且能够通过托管在任意位置的函数进行处理,我们就能够解决如今面临的数据可移植性和访问方面的诸多挑战。

最终,我们的开发效率将显著提高。

总结

对于开发人员来说,当下是一个激动人心的时代。我们很有可能会见证到我们目前可用的工具实现前所未有的根本改进。

我们每个人都有责任继续追求并推动这一改变。

传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • 未来属于 Serverless 引言 用户已经云这个概念很多年了,但是最近,用户可能已经听说了更多关于 Kuber...
    fossilman阅读 1,824评论 0 1
  • 『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来。』 或许,Google Trends...
    君临天下夜未央阅读 637评论 0 3
  • 前提 若二叉树的节点存在权值,则二叉树的叶子节点的带权路径长度为该叶节点的权与路径长度(根节点到叶子节点)的乘积。...
    元气蛋蛋阅读 506评论 0 0
  • 我也有过那么一段,不顾一切留住某个人的日子,后来我发现世界其实真的很大,没有刻意的见面,就真的没有见过了,因此你终...
    啊啦小姐的橱窗阅读 151评论 0 0
  • 原来当你遇到一个愿意倾诉 渴望依赖的人之后 随之而来的 便是孤独 思念 焦虑 猜疑 你对他有所需求 有所期待 而他...
    Z悟空阅读 283评论 0 0