标签: 生产部署
-
A Tour of Go 第三门社区语言 de-DE 已正式上线。从开始推进到完成 TranslationUnit 质量审核、Locale Surface Review、production 部署和最终验收,这一轮粗略投入约 16 小时。 但这 16 小时并不是从零开始完成一门语言的全部成本,而是建立在此前数百小时的项目开发、质量流程、服务器基础设施和第二门语言标准化工作之上的增量成本。de-DE 真正值得复盘的,是第三次完整执行以后又暴露出了哪些历史流程债、哪些人工操作已经可以交给工具,以及为什么下一门语言的目标可以进一步压缩到 8 小时以内。
-
在 A Tour of Go 多语言翻译项目中,广告接入没有直接将 AdSense 代码写入公开源码,而是沿用已有的生产配置注入机制,实现从 AdSense 专用配置到通用 HTML 注入架构的重构。 本次调整新增独立 TOUR_AD_HTML 注入链路,将广告内容通过 systemd 环境变量提供,由 Go 服务读取并渲染到 HTML 。公开源码和发布包只保留注入位置,不包含具体广告平台配置。 通过这一设计,项目实现了广告逻辑与具体平台解耦,同时保持源码公开、生产配置独立的架构,为未来更换广告平台或扩展其他 HTML 注入场景提供基础。
-
在完成 A Tour of Go 简体中文 103 个正式课程页面的 ChatGPT 全量重译、语义审核和 canonical promotion 之后,本轮继续完成最终生产上线验收。当前生产环境已经切换到正式 release 20260818-zh-CN-45f4cad,103 个正式课程路由全部返回 HTTP 200,7 个 article endpoint 的 production origin 与 EdgeOne 公网响应达到 7/7 exact match,同时新的 ChatGPT 译文标记存在、旧版译文标记已经消失。真实 Run 与 Format 请求也均返回 HTTP 200,并得到预期执行和格式化结果;/socket 等不应公开的路径继续保持 404。结合 EdgeOne 的 HIT 与 Age 结果,本次发布在没有执行全站缓存刷新的情况下仍然确认公网已完整返回新 release,因此后续更适合采用“先验收、发现 stale URL 后再 targeted purge”的缓存处理方式。至此,103 页 ChatGPT 重译从翻译、审核、正式提升到生产上线和公网验收的完整链路正式闭合。
-
A Tour of Go 新的 ZgoCloud Playground 执行节点搭建完成后,本文继续记录生产端 Run / Format 的实际切换过程:从代码审计、统一 Playground 基础地址、生产与本地运行模式隔离,到 release manifest、自动部署脚本和生产发布同步更新。上线后还遇到了 EdgeOne 缓存旧 /tour/script.js,导致浏览器继续请求旧 /_/compile 的问题;定向清除缓存后,Run 与 Format 最终成功切换到 ZgoCloud,并通过桌面浏览器和手机真实网络环境验收。
-
本文记录 A Tour of Go 多语言翻译项目一次生产发布故障如何推动自动部署流程落地。一次看似普通的手机端 CSS 发布,因为 release 目录权限异常导致 go-tour.service 出现 status=203/EXEC,生产站点一度返回 502。问题恢复后,项目开始整理 production 自动部署脚本,并在第一版过度复杂、达到 722 行后主动做减法式重构,最终收敛为约 494 行,只保留 staging、权限归一化、SHA-256、原子切换、连续健康检查和失败回滚等核心机制。首次真实部署中还观察到 systemd 已显示 active、但 localhost 首次仍为 HTTP 000 的现象,进一步验证了连续应用层健康检查的必要性。
-
A Tour of Go 多语言翻译项目在完成 103 个简体中文课程页面后,进一步补齐项目首页、Logo/favicon、公共 Footer、备案信息、GitHub 与开发记录互链,并完成正式 production bundle 构建、权限规范、独立实例验收、原子切换、回滚保护及公网验证。发布过程中还排查了 EdgeOne 新旧缓存混用问题,并重新设计了 site-metadata.json 的职责,将开发态元数据与生产发布元数据彻底分离,避免“发布后回写发布时间”形成循环。
