专栏首页Tencent Serverless 官方专栏通过 Serverless 架构构建更好的软件

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

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

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

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

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

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

云服务即是明证

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

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

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

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

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

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

构建更优软件的途径

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

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

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

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

简化工具定制

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

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

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

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

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

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

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

简化代码复用

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

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

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

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

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

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


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

简化数据访问

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

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

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

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

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

总结

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

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

One More Thing

3 秒你能做什么?喝一口水,看一封邮件,还是 —— 部署一个完整的 Serverless 应用?

复制链接至 PC 浏览器访问:https://serverless.cloud.tencent.com/deploy/express

3 秒极速部署,立即体验史上最快的 Serverless HTTP 实战开发!


传送门:

GitHub: github.com/serverless 官网:serverless.com

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

原文链接:https://serverlesscloud.cn/blog/2018-02-23-serverless-path-building-better-software/

原文作者:NickGottlieb

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深入浅出Serverless:1 Serverless基础

    yeedomliu
  • 使用Serverless模式开发部署前端和Node.js

    什么是Server模式?前端、后端现在都可以使用Serverless模式进行开发和部署吗?

    Peter谭金杰
  • Serverless(无服务)基础知识

    链接 | juejin.im/post/5d42945ff265da03a715b2f0

    五月君
  • Serverless当打之年

    当前大多数公司在运营应用产品时,无论是选择公有云还是自建的数据中心,都会面临服务器数量预估、存储容量规划和数据库的选型等问题。同时需要在基础设施之上部署依赖软件...

    zouyee
  • Serverless简介

    Serverless的全称是Serverless computing无服务器运算,又被称为函数即服务(Function-as-a-Service,缩写为 Faa...

    xiangzhihong
  • Serverless 开发实战之Nodejs

    抗击疫情,腾讯云在行动。Serverless(无服务架构)被誉为下一代云计算技术,自概念推出以来,因为能带来研发交付速度提升与成本的降低在业内异常火爆。将随着 ...

    可可爱爱没有脑袋
  • 当我们在聊Serverless时你应该知道这些

    作者:竹涧 原文地址:https://yq.aliyun.com/articles/574222

    Nealyang
  • Serverless 开发实战之Nodejs:三分钟开发新冠病毒疫情查询网

    随着 Serverless 生态的不断成熟,越来越多开发者使用 Serverless 架构构建自己的业务,Serverless 的典型适用场景有哪些?怎样借助...

    腾讯云serverless团队
  • 4000字8分钟带你理解Serverless架构

    我们要上线一个系统,需要考虑的是需要多少台服务器或者多少容器资源,还有多大的存储,以及上线之后运行的过程中当需要扩容的时候,到底需要新增多少资源,而且流量高峰之...

    王新栋
  • 深入浅出Serverless:2 Serverless与相关技术

    yeedomliu
  • 孔令飞:Serverless DevOps最佳实践

    11月9日,云+社区技术沙龙“高效智能运维”圆满落幕。本期沙龙围绕运维展开了一场技术盛宴,从AIOps、Serverless DevOps、蓝鲸PaaS平台、K...

    云加社区技术沙龙
  • 腾讯云 Serverless CI/CD 自动化部署实战

    本文将为大家讲解 Serverless 工作原理、架构优势和 Serverless 应用的开发流程,以及如何使用 Serverless CI/CD 能力进行自...

    腾讯云serverless团队
  • TLC 大会专访王俊杰老师,与 Serverless 技术专家聊聊云原生

    “王俊杰,腾讯云 Serverless 技术布道师,十余年互联网研发经验。负责 Tencent Serverless 技术在全栈应用开发的方案设计工作。主要研...

    腾讯云serverless团队
  • Serverless是怎么“无”服务器工作的

    很早就关注serverless了,刚开始关注serverless,不是因为它是新技术,也不是有什么特性吸引我,只是因为他们宣传serverless是“无服务器”...

    李俊鹏
  • 从 Serverless 看软件效能提升 | 深度好文

    以下内容来自「云+ 社区技术沙龙 - 云原生专场:《从 Serverless 看软件研发效能的变革》」,深度好文,预计阅读需 35 分钟。 分享嘉宾 杨政权,...

    腾讯云serverless团队
  • 2017 年会是 Serverless 爆发之年吗

    中小型公司,尤其是互联网行业的创业公司,本身并没有太多的技术人员,如果设计系统时需要考虑诸多的技术问题,例如 Web 应用服务器如何配置、数据库如何配置、消息服...

    Debian中国
  • Serverless.com CEO首次访华!探讨无服务器技术落地

    2019年11月6日-7日,由腾讯云主办的首届Techo开发者大会将在北京嘉里大酒店召开。本次大会将聚集来自全球5000多位开发者,并邀请超140位业界大咖围...

    腾讯技术工程官方号
  • Serverless.com CEO首次访华!探讨无服务器技术落地

    2019年11月6日-7日,由腾讯云主办的首届Techo开发者大会将在北京嘉里大酒店召开。本次大会将聚集来自全球5000多位开发者,并邀请超140位业界大咖围...

    腾讯云serverless团队
  • Serverless国内发展的纵向观察

    云计算正在各领域持续深化其影响力,同样,各领域下日益变化的需求,也在倒逼云计算不断进行自我优化。 2008 年可以说是大家比较公认的云计算元年,因为在这一年中...

    腾讯云serverless团队

扫码关注云+社区

领取腾讯云代金券