部署(deployment) 安全与工程
别名:
单机部署
把产品运行到生产环境的过程。单机部署的最小骨架是进程管理(常驻、崩溃自愈、开机自启)、结构化日志轮转与反向代理(TLS 终结、路由、限流)。见[第 23 章](/chapters/23-conclusion/)。
单机部署的最小骨架:三件套
对 Node 后端(HTTP/SSE 服务)+ 可选 Web 前端的 Agent 产品,第 23 章给出单机部署的最小骨架:
- 进程管理:让服务在后台常驻、崩溃自动重启、开机自启。Linux 上是
systemd的 service 单元(Restart=always),个人服务器上也有 PM2 之类。要点:把服务的生命周期交给进程管理器,而不是用nohup node app.js &这种「野进程」方式拉起——后者一断连就没了,崩了没人拉起来; - 日志:进程管理器的标准输出重定向到文件(
journald或日志文件),配上按大小/天数的轮转(logrotate)。日志要打结构化的(JSON 行、带 trace id),并且——接第 23 章的主题——打日志前先过密钥脱敏; - 反向代理:服务默认监听
localhost:3220,对外暴露时在前面架一层反向代理(Nginx / Caddy),做三件事:TLS 终结(HTTPS,否则 API key 在网络上裸奔)、域名与路径路由、可选的简单限流。
产品的监听地址与端口做成配置(HOST / PORT),正是为了部署时能随时改、能被代理转发,而不用动代码——config 与部署在这里接上了。
思维模型
「服务不裸奔、崩溃能自愈、日志能找得到、流量走加密」——这一层不深讲(systemd 单元怎么写、Nginx 配置怎么写是运维知识,随时可查),要带走的是部署的思维模型。
生产差距清单
把 v10 产品放到真实生产环境还差:多租户与隔离、鉴权与授权、密钥轮换与保管、弹性与限流、监控与告警、数据备份与恢复、安全加固、审计合规。LangChain 官方的 Going to production 指南把生产化拆成 scope 记忆、配置凭据、可观测、评估、权限与部署几个维度——生产差距清单里没有一个是我们「不会」的,全部是「已经写过零件、只是没拼到生产形态」。