01服务02案例03方法04技术笔记05联系
RUBE中文ENDEFR
← 返回首页

关于系统本身,而不是流行术语的工程笔记。

这些内容来自真实项目中反复出现的问题:如何确定系统边界、如何在不稳定连接下保持数据一致,以及如何把基础设施推进到可持续运行。

为什么 IT 项目不应该从技术栈开始

技术选型很重要,但它不应该是第一个架构决定。如果在理解业务流程之前就先决定数据库、框架或部署方式,项目很容易开始服务于工具,而不是服务于业务目标。

我通常先画出流程和数据关系:谁创建数据、数据在哪里变化、什么是事实来源、哪些操作对时间敏感、哪些部分可以独立工作,以及哪些能力必须在单个组件故障后继续存在。

这样技术栈就会成为需求的结果,而不是起点。它能减少偶然依赖,让升级更可预测,也能用业务能够理解的指标讨论架构:处理时间、维护成本、可用性、恢复能力和未来扩展。

Offline-first 不只是“没有网络也能用”

对于现场、GIS 和分布式系统而言,断网时仍能打开应用只是最明显的一层。真正的复杂度出现在同一个对象可以在两个独立副本中同时发生变化的时候。

系统需要提前定义对象标识、版本、变更日志、同步规则,以及哪些冲突可以自动解决。用户还必须能够理解两个版本为什么不同,以及系统最终会采用什么决策。

因此 offline-first 更应该被视为数据模型和项目生命周期的一部分,而不是额外的界面模式。只有从一开始就这样设计,系统才能在网络不稳定时继续工作,同时保持数据可控。

自有通信基础设施:安装服务器之外还需要考虑什么

部署消息服务器只是企业通信体系的一小部分。进入 production 后,还会遇到身份管理、客户端、语音和视频、数据存储、备份、监控与升级等问题。

迁移也是独立的一层。迁移用户、房间、消息历史和附件需要冻结源状态、分批执行,并在整个组织切换之前验证每一批结果。

自有通信体系真正的价值不在于“安装了某个软件”,而在于对数据与运行的控制:组织知道信息在哪里、服务如何恢复、谁负责访问控制,以及系统将如何继续演进。

1C 不只是业务配置:稳定性从基础设施开始

遇到 1C 性能或稳定性问题时,人们常常首先检查业务配置,但真正的原因可能位于其他层:Linux 服务器资源、PostgreSQL 参数、磁盘子系统、后台任务、锁、网络或某个客户端工作站。

因此,我把 1C 服务器视为一个完整的生产系统:应用服务器、数据库、备份、日志、更新、资源监控以及客户端工作站都应属于同一个可运维体系。

这种方法要求先测量瓶颈出现在哪里,再决定应该修改什么。这样可以让支持工作更可预测、恢复过程可验证,并避免业务增长后不断依赖零散的临时调优。

LET'S BUILD THE SYSTEM

有一个值得从系统角度分析的问题吗?