乐趣区

关于serverless:Laf-v10-发布函数计算只有两种30s-放弃的和-30s-上线的

原文链接:https://forum.laf.run/d/178

个别状况下,开发一个零碎都须要前端和后端,仅靠一个人简直无奈胜任,须要思考的个性和性能十分多,比方:

  • 须要一个数据库来存放数据;
  • 须要一个文件存储来寄存各种文件,比方图片文件;
  • 后端须要提供接口供前端调用;
  • 重要组件须要思考高可用、灾备、监控、弹性伸缩等等。

这对于没有后端根底的同学来说,几乎是个噩梦!

那么是否存在一种新模式,能够让开发者只专一于业务呢?

目前解决这个问题最支流的计划就是 Serverless 架构,也就是所谓的 无服务器计算 。开发者只须要专一于代码品质和代码逻辑,不须要关怀基础设施,也不须要关怀后端服务,所有都由 平台 给你主动分配资源。

但这个 平台 从哪来?

毕竟 Serverless 只是一个 架构和形象理念,要想落地,还得实现一个真正的产品。

这样的产品其实国内有很多,也就是所谓的 云开发 服务。这一类服务将开发一个残缺的利用须要用到的数据库、存储、CDN、后端函数、动态托管、用户登录等等性能全副集成到了一起,研发人员仅须要调用这些服务即可。

目前,云计算和整个互联网市场正逐步 从增量市场转向存量市场 ,营收和 净利润 才是 KPI,在这个背景下,降低成本和进步利润至关重要。基于开源的云计算生态逐步崛起,为市场提供了更具竞争力的抉择,每家企业都能够解脱供应商锁定自在到处运行,无需放心供应商的开张、产品下线或价格上涨等问题。最蹩脚的状况下,企业甚至能够自行部署一套零碎,并针对本身需要定制一些高级性能。

Laf 就是这样一个齐全开源的云开发平台。

它提供了开箱即用的云函数,云数据库,对象存储等能力,是一个一站式开发平台,让你能够像写博客一样写代码。

与各大云厂商的云开发平台相比,Laf 也不遑多让,而且还有很多云厂商不具备的 外围劣势

  • 开源更凋谢 :齐全遵循 Apache License 2.0 开源协定,如果你看好 Laf 的开发模式,也 能够本人部署一套,并对外提供商业化服务。
  • 部署更简略:永恒反对私有化部署,即便不应用云服务,也能够无缝迁徙到本人的服务器上。
  • 申请更迅速:Laf 的 runtime 机制让利用启动更快,且「无冷启动工夫」,绝对于传统的 Serverless 架构来说,响应更迅速。
  • 开发更简略:依靠于更好的一站式开发体验,开发者无需再关怀利用部署、服务器运维等事件,登录即可开发,1 分钟上线利用。
  • 性价比更高:实践上 1000 万次 调用,仅需 5 元,且不限度 database 的调用次数(PS: 这个不是很想提,看怎么组织下,咱们的确费用更低,然而怕前面调整会有问题,次要想表白的是,咱们比腾讯或者阿里的费用更低。。差不多 1/2 的价格,算上 db、oss 调用费用,甚至能够做到 1/7 左右,然而这个是底价,咱们不想压这个价格,还是想往上抬一抬)

除此之外,Laf 还提供了很多额定的优良能力:

  • WebIDE:在线写代码,欠缺的类型提醒、代码主动实现,像写博客一样写函数,顺手公布上线。
  • WebSocket:利用反对长连贯,业务无死角。
  • CLI 工具:可能进行本地开发,并同步至 Web 端,让你应用相熟的工具进行开发,无需适应新的工具。
  • 前端“直连”数据库:通过 laf-client-sdk + “ 拜访策略 ” 能够在保障平安的状况下前端间接操作数据库,即便只凋谢最小的 Read 权限也可节俭 30%~ 50% 的接口,让你在还原 UI 的同时棘手搞定逻辑。
  • 社区生态:大量“家养”的开源贡献者,他们依靠于开源的劣势,为 Laf 奉献了许多优秀作品,例如 VS Code 本地开发插件和基于 ChatGPT 的主动生成代码插件。

还有个十分重要的一点就是 Laf 是运行在 Sealos 云操作系统之上的,所有的扩大工作都能够在 Sealos 云操作系统中进行,例如在 Sealos 上运行 AI 引擎并通过 Laf 进行调用,实现完满交融。

GitHub 链接:https://github.com/labring/laf

Laf 自去年 11 月份公布 0.8 版本以来,用户数量始终都在一直上涨,预览版本短短几天就吸引 2000+ 注册用户,撑持 3000+ 线上利用。到现在 Star 数量曾经冲破了 3.5k。

期间有很多优良的开发者基于 Laf 开发出了很多乏味的产品,比方:

  • ChatMind:与 AI 对话生成思维导图。这是两个大学生的作品,外围性能仅用一天就开发实现,上线当天用户过万。
  • ICP Query Extension:一款不便 icp 备案查问的 Chrome 插件。
  • 一起听播客:跟你的好友一起实时操作播放器、在线听播客。
  • 中大猫谱:这是一个微信小程序,用来拍照记录中山大学校园内猫猫的成长轨迹。
  • 小报童导航:这也是一个微信小程序,用来发现优良的专栏。

除此之外,还能够用 Laf 来开发各种管理系统和电商利用,甚至区块链利用。咱们的企业级客户聚道云就抉择了将 Laf 托管在专有集群中,利用 Laf 为其提供函数计算解决方案。总的来说,Laf 的实用场景十分宽泛,大到企业官网和信息化建设,小到集体博客、微信小程序,实践上能够开发任何利用!

明天咱们正式公布了 1.0 版本,这是 Laf 的一个里程碑版本,带来了很多重量级的更新。可视化界面面目一新,优化了用户操作流程和交互设计,进一步晋升了用户体验,从创立利用到上线第一个函数仅需 1 分钟

Laf v1.0 的公布,离不开各位社区小伙伴的悉心奉献与鼎力支持,无论是性能研发、功能测试、需要倡议、企业最佳实际,抑或是提供 Bug 修复、国际化翻译以及文档奉献,这些来自开源社区的奉献都为 v1.0 的公布和推广提供了极大的帮忙,咱们将在文末向这些小伙伴予以特地致谢!

开发敌对的函数界面

为了进步开发者的开发效率,Laf 提供了一种可视化的函数界面,让开发者能够在不来到平台的状况下进行代码编写、调试和部署,从而疾速实现业务需要。这样开发者能够更加专一于代码逻辑和品质,在同一平台上实现所有工作,而无需切换到其余工具和平台,从而大大提高了开发效率。

随着 Vue3 的公布,许多前端我的项目须要进行从 Vue2 到 Vue3 的降级。然而,在 UI 组件库方面,Vue 的可选项较少。相比之下,React 的 UI 组件库更加丰盛和成熟。

因而,Laf v1.0 抉择了 React 作为次要技术栈,包含 Chakra-UI、Tailwind 和 React-Query,这些技术栈能够帮忙开发者更加高效地构建用户界面。例如,Chakra-UI 提供了丰盛的 UI 组件库,Tailwind 提供了可定制化的 CSS 款式,React-Query 则提供了数据管理和缓存等实用功能。

Laf v1.0 依然应用 TypeScript 作为开发语言,以及 Vite 作为构建工具,大大提高了开发效率和 UI 定制化的便利性。而且函数界面减少了动静布局,能够随便拖动或暗藏相干面板。

与 v0.8 相比,v1.0 还新增了申请办法设置,能够设置函数的申请类型,例如 GET/POST 等等,同时还反对 Params、Body 以及 Headers 的调试参数。

除此之外,还优化了汇合页面的展现,能够一站式实现数据管理、拜访策略等性能,大大提高了开发效率。

随着开发效率的进步,很多利用的开发周期甚至能够压缩为 分钟 级,且具备高度复用性,如各种三分钟系列:

  • 3 分钟将 ChatGPT 接入 Siri
  • 3 分钟搭建一个 ChatGPT Web 演示网页
  • 3 分钟写一个待办事项 App
  • 3 分钟将 ChatGPT 接入飞书机器人
  • 1 分钟应用云函数生成图形验证码

这里并非编写一个仅供娱乐的示例,而是真正具备线上服务能力。最重要的是,这三分钟并非仅编写代码,还包含将代码在线上运行!写完即公布,点击保留,关机走人。

后端框架降级

在 Laf 0.8 版本中,咱们应用 Express 进行开发。然而,在我的项目规模逐步增大的状况下,保护和合作方面会面临一些挑战。因而,Laf v1.0 便迁徙到了 NestJS。因为 NestJS 反对 TypeScript,因而具备更好的类型安全性和编译时谬误查看等长处。此外,NestJS 的模块化开发格调使得我的项目构造更加清晰,易于保护。

NestJS 还提供了许多实用功能,如内置的 Swagger 文档生成器。这个生成器能够依据代码主动生成 API 文档,使得前后端合作更加顺畅和高效。

在 Laf v1.0 中,ORM 框架抉择了 Prisma。Prisma 是一种古代的 ORM 框架,提供了弱小的数据建模和查问性能,同时也具备更好的可维护性。通过应用 Prisma,Laf 能够更加高效地操作数据库,简化数据管理和保护过程。

重构外围性能

除了上述更新之外,Laf v1.0 还对外围性能进行了重构,次要包含以下两个方面:

1️⃣ 对 Node Runtime 进行了降级,剥离了原先内置的 WebSocket 模块,改成对立的 Cron 模式。这种模式使得 Runtime 更加轻量,同时也进步了程序运行的稳定性和可靠性。

2️⃣ 对数据库的用户界面和交互进行了优化,通过简化界面设计和加强用户交互性,咱们省去了繁琐的二级乃至三级页面,不论是老手还是新手都可能更加高效地实现数据的查问、批改和治理等操作。

3️⃣ 云存储方面,在存储文件的根底上,咱们还减少了动态网站托管,公布之后间接调配一个二级域名上线(同时反对自定义域名),无需关怀简单的 CI/CD、Docker 或 K8s 等技术,有了 Laf 老夫只须要一把梭,真正的涵盖从开发到上线的所有步骤,正如咱们口号所说 life is short you need laf,开发者应该把工夫节省下来关注更重要的事件。

4️⃣ 反对 ESM 模块的引入。开发者能够引入一些只反对 ESM 的 NPM 包,例如 ChatGPT 等。这大大增加了应用程序的可扩展性和功能性。同时,ESM 还反对模块级别的作用域,这使得代码更加清晰、易于保护。

例如,能够在函数界面引入驰名的 chatgpt-api NPM 包。首先在 NPM 依赖面板中点击右上角的 +

而后输出 chatgpt 并回车进行搜寻,抉择第一个搜寻后果,保留并重启:

重启之后,自定义依赖项中便呈现了 chatgpt。

当初咱们来试试调用 ChatGPT 的 API 来与 ChatGPT 进行对话,先写个函数:

import cloud from '@lafjs/cloud'
export async function main(ctx: FunctionContext) {const { ChatGPTAPI} = await import('chatgpt')
  const api = new ChatGPTAPI({apiKey: cloud.env.CHAT_GPT_API_KEY})

  let res = await api.sendMessage('“鸡你太美”指的是中国大陆哪位男艺人?给你个提醒,他喜爱唱、跳、篮球、Rap')
  console.log(res.text)

  return res.text
}

将上述函数代码增加到 WebIDE 中,点击右上角的「运行」,即可调试运行。

将来布局

Laf 的利用开发上线周期极短,基本上都是以分钟 / 小时 / 天来计算的。恰逢 AI 崛起,每天对于 AI 的信息应接不暇,明天的信息还没消化完,今天又有新的来袭。能够预感,将来 AI 利用肯定会爆炸式增长,很多传统的形式都将会被彻底颠覆。在这个浪潮中,必然会有很多新的 AI 利用须要被开发进去,而 抉择应用函数计算来开发 AI 利用的公司必然在竞争中胜出,因为在这个浪潮中兵贵神速。应用函数计算能够依照分钟或小时来计算开发进度,而传统的公司可能仍在迟缓地进行迭代和上线,必然会在竞争中落后。

所以接下来 Laf 将会重点聚焦于如何让 AI 能力疾速落地,疾速开发各种 AI 小利用,打造 AI 能力生态,帮忙 AI 浪潮下的企业在竞争中疾速胜出。

致谢

以下是参加 Laf 1.0 代码和文档奉献的贡献者 GitHub ID。如果名单中有脱漏,请您与咱们分割。名单中的排名并无先后之分。


欢送对 Laf 感兴趣的小伙伴退出咱们的微信交换群,入群形式:增加 wx 好友 cloud-native-yang,而后发送暗号 laf 即可入群。

咱们还开明了中文论坛,旨在让各位社区小伙伴独特探讨 Laf 及相干技术之钻研、应用技巧之分享,及对遇到问题者之支援。欢送来泡吧!!

🌐 论坛地址:https://forum.laf.run/

退出移动版