top of page

Telegram 无服务器架构绕过服务器,并赋予 Telegram 更多控制权

Telegram 推出了一种无服务器架构,首次将机器人代码、存储和部署迁移到自己的基础设施上。开发者可以编写 JavaScript 模块,通过一条命令完成部署,并让 Telegram 在隔离的 V8 环境中处理传入请求。

这听起来只是一个普通的托管功能。实际上,Telegram 是在试图取代支撑 Telegram 机器人和 Mini Apps 的大部分外部云技术栈。Telegram 让部署变得越容易,开发者就越没有理由接入 AWS Lambda、Cloudflare Workers、Deno Deploy 或持续运行的虚拟服务器。

代价则是控制权。Telegram 无服务器架构通过将执行、数据和平台 API 置于同一家运营方的掌控之下,免除了基础设施工作。开发者能够更快地将产品投入生产,但也必须接受一个在限制、可移植性、安全模型和长期条款方面基本未经验证的运行时环境。

Telegram 无服务器架构将后端迁入 Telegram 内部

重要的变化并不是 Telegram 支持无服务器代码,而是它现在亲自运营应用后端。

Telegram 的无服务器文档介绍了一个面向机器人和 Mini Apps 的托管环境。开发者可以编写标准 JavaScript 模块,无需打包容器或维护传统的服务器进程。

该服务在轻量级 V8 隔离环境中运行代码。隔离环境是一种受限的执行上下文,可以将某个应用的内存与共享同一运行时的其他代码分隔开来。

开发者可以使用 npx tgcloud push 部署项目。这条命令似乎旨在取代多个常见步骤,包括服务器设置、容器打包、端点部署和手动扩缩容配置。

Telegram 还将运行时部署在其 Bot API 和内置数据库附近。这种邻近性是其宣传主张的核心,因为大多数机器人请求始于 Telegram 更新,并以调用 Bot API 告终。

在此次发布之前,Telegram 负责消息层,而开发者负责应用层。一个典型的生产级机器人需要 Webhook 端点、服务器或函数托管服务、密钥管理、日志和持久化存储。

Telegram 自己的机器人教程此前曾说明,开发者需要自行实现和维护数据持久化。其托管章节还介绍了如何将应用迁移到远程计算机,并可选择将其打包到容器中。

新模式将这些职责集中到了 Telegram 平台之中。机器人可以接收事件、运行应用逻辑、查询存储的数据并作出响应,而无需将请求发送到独立管理的后端。

以个人通知机器人为例。它可能会接收命令、读取已保存的偏好设置、调用外部服务,并发送格式化后的响应。在旧模式下,Telegram 送达更新后的每一个步骤都依赖于开发者选择的基础设施。

在 Telegram 无服务器架构下,事件处理程序和数据库访问可以留在 Telegram 内部。只有对外部服务的请求需要离开该平台。

Mini App 可以采用相同的架构来执行绝不能在交付给浏览器的代码中运行的服务器端操作。这些操作包括验证用户数据、保护 API 凭据、记录交易以及执行访问规则。

这一区别非常重要,因为 Mini Apps 的界面运行在 Telegram 客户端内部。客户端 JavaScript 无法安全地保存机器人令牌或其他长期密钥,因为用户可以检查下载的代码。

托管后端为这些应用提供了受保护的执行层,无需每位开发者在其他地方自行搭建。它还在经过身份验证的 Telegram 活动与应用逻辑之间建立了更直接的桥梁。

然而,“无服务器”并不意味着服务器消失了。Telegram 拥有并运营这些服务器,而开发者通过受限的编程接口与之交互,而不是直接操作底层机器。

这种职责划分改变了故障处理的责任归属。Telegram 负责资源配置、运行时可用性、扩缩容和隔离。开发者仍需负责应用行为、数据处理、依赖项选择和恢复逻辑。

因此,此次发布改变了运营边界。Telegram 不再只是机器人流量的来源和目的地,也正在成为处理这些流量的场所。

真正的目标是外部机器人托管技术栈

Telegram 正通过让通用云平台的灵活性在小型机器人和 Mini Apps 面前显得多余,向这些平台施压。

开发者早已在无服务器产品上运行 Telegram 机器人。AWS Lambda、Cloudflare Workers、Deno Deploy、Google Cloud Functions 及类似服务都可以接收 Webhook,并按需执行应用代码。

这些平台提供的不仅仅是函数运行能力。它们还提供部署流水线、日志、环境变量、数据库、队列、存储产品、访问控制,以及与更广泛云服务的连接。

这种灵活性也带来了设置工作。开发者必须创建账户、选择区域、配置公共端点、存储机器人令牌、注册 Webhook,并连接持久化存储。

故障可能跨越多个管理边界。Telegram 或许正确送达了更新,但云路由、函数权限、数据库连接或部署配置仍可能阻碍响应。

Telegram 的方案缩短了这条链路。该公司已经知道哪个机器人收到了更新,以及哪个 Telegram 账户控制着它。其运行时可以将该身份直接关联到已部署的代码。

最终形成的更像是一个集成式应用平台,而不是通用云。它围绕 Telegram 事件、Telegram 身份验证、Bot API 和 Mini App 请求进行了优化。

Cloudflare 采用了类似的 V8 基础,但覆盖范围广得多。该公司的 Workers 运行时模型描述了数千个应用如何在分布式网络中共享运行时进程。

Cloudflare 表示,隔离环境启动速度很快,因为它们在现有环境中运行,而不是为每个函数启动单独的虚拟机。Telegram 似乎正在为更狭窄的应用类别采用相同的通用执行模式。

AWS Lambda 采用了另一种常见的无服务器模型。其执行环境会初始化托管运行时、调用函数,并可以为后续请求复用该环境。

区别在于集成程度。Lambda 将 Telegram 更新视为众多外部事件中的一种。Telegram 则可以将该更新视为具有内置身份和 API 访问权限的原生平台操作。

Deno Deploy 也通过其部署平台提供托管式 JavaScript 和 TypeScript 执行。它的优势是可跨 Web 使用场景移植,而 Telegram 的优势是与单一消息环境的连接更加紧密。

这使得竞争压力并不均衡。Telegram 不太可能取代复杂应用所需的通用云,但它可以让许多简单的机器人项目不再使用这些云服务。

提醒机器人、审核助手、调查工具、内容通知工具或轻量级支持工作流可能只需要事件处理和存储。而这些项目恰恰最容易被独立基础设施拖累。

大型系统则有不同的需求。它们可能依赖私有网络、专用数据库、长时间运行的任务、事件队列、区域控制或详细的可观测性。

Telegram 尚未证明其服务能够取代这些组件。其眼下的目标似乎是开发者原本会为普通机器人创建的第一个后端。

此举也给围绕 Telegram 与外部提供商对接而构建的托管教程、机器人模板和部署服务带来了压力。当官方工作流简化为一条命令时,它们的价值便会下降。

即使功能尚未完全对等,便利性也能推动采用。开发者通常会选择配置决策最少、能最快将可用应用交到用户手中的路径。

当编码智能体能够生成大部分初始 JavaScript 时,这一优势会进一步增强。如果智能体可以生成一个模块,并通过一条命令完成部署,那么基础设施知识便不再是实验的前提条件。

Telegram 因而可以在开发者与其他云提供商建立关系之前吸纳这些项目。一旦代码和数据进入其环境,日后迁移所需的工作量可能会超过一开始就选择外部托管服务的成本。

一条命令之所以可行,是因为 Telegram 掌控了整条链路

这种部署捷径源于垂直整合,而不是对无服务器计算的重新定义。

Telegram 机器人通常连接多个独立系统。Telegram 生成更新,通过 Webhook 或轮询接口发送更新,然后等待开发者的后端进行处理。

该后端会验证请求、加载数据、应用业务逻辑并调用 Bot API。每个网络边界都会引入配置、延迟、凭据,以及另一个潜在故障点。

Telegram 无服务器架构折叠了这条路径的大部分环节。平台可以在事件离开 Telegram 控制的基础设施之前,将传入事件与已部署的模块关联起来。

随后,V8 隔离环境提供了一个执行 JavaScript 的轻量级场所。V8 是 Chromium 和 Node.js 使用的 JavaScript 引擎,不过每个基于 V8 的平台都会开放不同的运行时 API。

最后这一点非常重要。“纯 JavaScript”并不保证与 Node.js 完全兼容。模块可能仍会依赖不可用的软件包、文件系统访问、原生扩展、网络协议或进程级行为。

内置数据库消除了另一个集成边界。简单机器人需要持久化状态来保存用户偏好、对话进度、权限、计划操作或 Mini App 创建的记录。

此前,开发者必须自行选择并保护这种存储。他们还必须管理凭据、连接限制、迁移、备份,以及本地环境与生产环境之间的部署差异。

Telegram 可以通过在与函数相同的项目上下文中开放存储来简化常见场景。这种设计减少了设置工作,尤其适合数据模型较小的应用。

它还可以减少密钥处理工作。平台可以提供对 Telegram 服务的授权访问,无需开发者在多个控制面板和部署系统之间传递敏感凭据。

不过,更短的路径并不会免除应用安全义务。开发者仍须验证输入、限制访问、分离可信与不可信数据,并保护外部服务的凭据。

Mini Apps 使这一点显得尤为重要。后端必须在服务器端验证从 Telegram 客户端收到的数据,才能将其视为真实数据。

内置运行时可以通过公开经过验证的平台上下文,使正确验证变得更容易。Telegram 的公开资料仍需明确说明运行时究竟会验证哪些内容,以及开发者必须自行检查哪些内容。

该架构还可能缩短 Bot API 操作的响应时间,因为执行发生在靠近 Telegram 自身系统的位置。在独立基准测试针对不同地区的代表性应用完成验证之前,这项优势仍只是平台方的说法。

延迟不只与物理距离有关。运行时调度、数据库访问、外部 API 调用、速率限制和冷启动执行路径,都可能影响用户看到响应的速度。

简单的事件驱动代码应该非常适合这种模式。函数可以检查更新、读取一条小型记录、调用一项服务,然后返回一个 Telegram 操作。

需要持续占用 CPU 时间的工作负载则不太适合。媒体转换、大模型推理、大规模爬取和长时间运行的自动化任务,通常需要专用计算资源或异步任务基础设施。

同样的限制也适用于开放的网络连接。无服务器事件处理程序可以高效处理离散请求,但持久会话和持续后台工作需要不同的生命周期保障。

Telegram 仍然可以支持混合设计。无服务器函数可以对请求进行身份验证并处理 Telegram 特有的逻辑,同时将高开销工作发送到外部系统。

这种安排既保留了部分便利性,又不必强迫所有工作负载都进入托管运行时。它还在平台原生代码与可移植业务服务之间建立了清晰边界。

因此,其机制非常直接。Telegram 通过接管事件传递、执行位置、平台身份、API 访问和存储集成,为开发者节省时间。

这种集成本身就是产品。V8 isolates 和命令行部署是赋能技术,但二者本身都不独特。

便利性带来了新的锁定与安全问题

Telegram 通过将基础设施选择转化为平台依赖来消除这些选择,这使可移植性和治理成为核心风险。

第一个不确定因素涉及运行时限制。开发者需要明确了解执行时间、内存、模块大小、并发请求、出站网络、软件包支持和数据库容量的具体规则。

如果没有这些限制,团队就无法可靠判断哪些工作负载适合放在 Telegram 上。原型可能运行正常,而生产工作负载却会遭遇开发期间看不到的限制。

第二个不确定因素是可观测性。生产团队需要可搜索的日志、错误追踪、部署历史、使用指标,以及平台拒绝或延迟请求时的清晰指示。

只有开发者能够在部署后诊断代码,一条命令完成部署的流程才真正有用。发布时的简单不应导致事故期间的不透明。

第三个问题是数据控制。内置数据库会引发有关存储位置、保留期限、备份、导出、删除、加密以及平台运营方访问权限的问题。

当机器人处理客户支持、健康信息、金融活动、职场通信或身份记录时,这些问题会变得更加严峻。组织可能承担超出消费级平台默认控制范围的法律和合同义务。

Telegram 的文档必须区分应用隔离与组织合规。V8 沙箱可以隔离正在执行的代码,但无法回答记录存储在哪里,或管理员如何审计访问。

安全性也取决于沙箱本身。Isolates 可以降低运行不受信任代码的开销,但共享运行时需要针对逃逸尝试和侧信道攻击进行严密防护。

Cloudflare 的文档指出,isolates 可能因资源限制或可疑行为而被逐出。它还建议开发者不要依赖可变的全局状态,因为 isolate 可能不会持续可用。

除非 Telegram 公布了更强的保障,否则开发者应假定存在类似的生命周期不确定性。持久化应用状态应存放在持久存储中,而不是全局 JavaScript 变量里。

可移植性则是另一个问题。基于标准 Web API 编写的代码,比围绕专有数据库调用和 Telegram 特定执行上下文构建的代码更容易迁移。

Telegram 的原生集成越实用,迁移成本就越高。这是熟悉的平台交易:便利性与依赖性同步增长。

开发者可以通过将核心业务规则与 Telegram 适配器分离来降低这种风险。在可行的情况下,事件解析、Bot API 调用和平台存储应置于范围明确的接口之后。

团队还应记录数据模式、外部依赖和替代部署路径。一个可搜索的工程知识库可以在运维知识与某一位维护者绑定之前保留这些决策。

导出能力将是一项重要考验。如果开发者可以轻松提取数据库记录,并在其他地方重新部署兼容模块,Telegram 的锁定效应仍将处于可控范围内。

如果导出受限,或者原生 API 主导应用的每一层,那么离开该平台就意味着重写。对于实验而言,这种结果尚可接受,但对于围绕机器人建立的企业而言则风险很高。

条款和技术 API 一样,也能有效造成锁定。Telegram 控制着服务可用性、可接受用途、资源分配以及未来任何商业条件。

当前的便利性并不保证未来能够在规则不变的情况下永久访问。对于中断会影响客户或收入的应用,开发者需要制定备用方案。

此外还存在集中化风险。在 Telegram 外部托管机器人,可以让应用后端在某些平台事故期间保持可用,尽管用户仍然依赖 Telegram 作为交互界面。

将一切都运行在 Telegram 内部会消除这种隔离。任何影响平台执行、存储或账户访问的故障,都可能导致整条应用链路失效。

外部托管也有自身的故障模式,因此这并不是简单反对集成的论点。关键在于团队是否希望独立控制恢复和部署。

Telegram 还需要说明版本管理方式。运行时 API、数据库行为和 JavaScript 兼容性都会不断演进,而应用需要可预测的迁移周期。

通用云平台已经花费多年时间构建兼容性政策、部署回滚、分阶段发布和运维工具。Telegram 凭借更强的集成进入这场竞争,但其作为计算服务提供商的公开记录要短得多。

因此,开发者应将早期部署视为受控评估。低风险机器人可以揭示运行时行为,同时避免将关键操作完全置于一个尚不熟悉的平台内。

这种谨慎做法并不意味着拒绝该服务。它只是承认,开发者体验可以在几分钟内完成评估,而可靠性和治理则需要数月的证据。

Telegram 的赌注不只是机器人托管

Telegram 正试图成为存在于其对话中的服务的默认应用平台。

机器人过去是连接到 Telegram 的扩展。Mini Apps 将界面移入了 Telegram,但其业务逻辑通常仍运行在外部基础设施上。

新的运行时将后端带入同一环境。Telegram 现在可以提供一条从发现和界面,到执行、存储、身份、消息和支付的集成路径。

这条路径类似于大型应用平台所采用的模式。开发者获得分发渠道和托管服务,而平台则获得对架构和用户关系更大的影响力。

对 Telegram 而言,战略收益在于留存。依赖 Telegram 托管代码和数据的 Mini App,独立作为传统 Web 应用存在的理由会更少。

该平台还可以提高开发一致性。官方运行时模式可能取代由 webhook 主机、机器人框架、数据库和部署脚本组成的各种零散组合。

这种一致性有助于新手。开发者可以先专注于机器人的行为,而无需学习虚拟服务器、容器、网络路由和云权限。

它也有利于 AI 辅助开发。当部署目标具有明确约定、清晰接口和可重复执行的命令时,编码系统的表现会更好。

提示词生成 JavaScript 处理程序的可靠性,要高于设计整套生产级云架构。npx tgcloud push 为生成的代码提供了一个明确的去处。

这可能催生一波小型个人机器人。例如研究提醒、日历提醒、服务器通知、文档摘要、价格追踪器和私人工作流助手。

这些项目经常无法上线,因为部署成本相对于其价值显得过高。Telegram 瞄准的正是本地可以运行的代码与持续可用的服务之间的这一缺口。

Mini Apps 带来了更大的机遇。商店、游戏、支持门户、预订工具和社区服务即使界面相对简单,也需要受保护的后端逻辑。

官方后端减少了交付这些产品所需的供应商数量。它还可能让 Telegram 原生身份验证和交易更容易得到正确实现。

战略风险在于,Telegram 将需要承担开发者通常对云提供商提出的期望。可靠性、透明的限制、安全响应、数据工具和支持,现在都会影响应用能否成功。

消息平台可以承受一定程度的功能不一致,而不至于失去所有用户。但当未记录的行为破坏生产代码时,计算平台将面临更严重的后果。

因此,Telegram 必须用证据建立信任,而不能只依靠便利性。稳定的文档、清晰的服务限制、事故报告、导出工具和可预测的兼容性政策都很重要。

第三方框架也会影响采用情况。开发者会关注成熟 Telegram 库、本地测试工具、类型定义和部署自动化是否提供支持。

如果这些工具接纳该运行时,Telegram 就能围绕其托管层建立生态系统。如果兼容性仍然有限,经验丰富的团队可能会继续使用外部基础设施。

云提供商不太可能立即推出 Telegram 专用产品。它们现有的优势在于广度,并且可以继续服务 Telegram 的聚焦型环境无法处理的工作负载。

更可能的竞争在于谁能成为默认起点。Telegram 希望开发者从其云内部开始,只有当应用超出其能力范围时才向外迁移。

此前的默认顺序正好相反。开发者从独立后端起步,并将 Telegram 作为其中一个渠道接入。

这种逆转正是此次发布的重要意义。Telegram 不只是在简化机器人托管,它正在改变从第一行部署代码开始,究竟由哪个平台掌控应用。

三个信号将表明这种模式能否成立

接下来的考验是,Telegram 能否将富有吸引力的发布流程转变为可信赖的生产平台。

第一个信号是完整的运维文档。开发者需要公开发布的资源限制、支持的 API、数据库行为、数据导出流程、安全边界和运行时兼容性规则。

详细的限制将增强 Telegram 的说服力,因为团队可以在部署前评估工作负载。缺失或频繁变化的限制,则会让该服务只能用于实验。

第二个信号是独立的生产环境证据。开发者应关注真实机器人在响应延迟、错误率、隔离故障、数据库可靠性和部署恢复方面的表现。

一次成功的演示还不够。重要的证据将来自能够应对持续流量、不规则峰值、外部 API 故障和模式变更的应用。

公开的事故沟通与原始正常运行时间同样重要。一个可信的计算服务应当解释故障原因、指出受影响的组件,并告诉开发者如何降低问题复发的可能性。

第三个信号是生态系统的采用情况。常见机器人框架、测试工具和开发环境的支持,将表明 Telegram serverless architecture 不仅能支撑官方示例。

可移植性工具尤其具有意义。数据库导出、本地模拟、标准 JavaScript 接口和有明确文档的迁移路径,都将减轻对供应商锁定的担忧。

相反的结果同样具有参考价值。如果实用应用在每一层都需要专有 API,Telegram 就将创造一个便捷但封闭的开发孤岛。

开发者应关注 Telegram 如何定位混合应用。明确支持调用外部服务和连接外部基础设施,将表明其采用灵活的平台策略。

对外部连接的限制则意味着一个控制更严格的环境。这种模式仍然可以取得成功,但它会改变企业和受监管团队的风险评估。

Telegram 还必须明确该产品的成熟度。开发者需要知道哪些功能具备生产环境保障,哪些仍处于实验阶段。

该公司的下一轮文档更新可能比再次发布功能公告透露更多信息。围绕数据、回滚、兼容性和服务事故的政策,将表明 Telegram 对其云服务责任的重视程度。

目前,最适合的用例是计算需求适中、数据模型简单且风险较低的 Telegram 原生应用。这一特征适用于许多个人机器人、社区工具、原型和功能聚焦的 Mini Apps。

关键服务应保留退出路径。保持核心逻辑的可移植性,维护数据导出能力,避免不必要地依赖专有接口,并保留外部部署方案。

Telegram serverless architecture 让首次部署变得容易得多。尚未解决的问题是,当项目需要审计、迁移或恢复时,同样的集成是否仍会让人觉得有帮助。

评估该平台的开发者应构建一个有代表性的工作流,测试其故障场景,并记录每一项 Telegram 特有的依赖。然后,他们应将结果与外部 serverless 部署进行比较。

决策不应取决于“hello world”能多快上线,而应取决于真实用户到来后,应用是否依然易于理解、可观测、可恢复且可移植。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page