跳到主要内容

开发运营

让平台持续在线的基础设施与发布工作:从托管云迁移到自托管 Kubernetes 的生产环境迁移,全程无停机记录;部署在 Cloudflare 之后的 Docker 化服务,推送即发布的 CI/CD,以及通过应用商店审核的移动端发布。备份、TLS 与监控是工作本身的一部分,而非额外项。

Webanion brand logo

一套自托管的家庭实验室:支撑整个工作室,每天维护

工作室自己的基础设施,运行在自托管的 Kubernetes 集群上,于 2026 年 2 月规划,此后每天维护:网站、CMS 和 MCP 服务器,以及它负责维护的客户平台,都通过 Cloudflare 隧道提供服务;每个数据库每晚导出并校验;指标和告警规则推送到手机;家门之外有一个宕机监控;还有一个容器镜像仓库和一个 npm 仓库;一个私有控制台把合并、运行、镜像、Pod 和节点汇集在同一个页面上。

Md Moniruzzaman Image

Md Moniruzzaman

Webanion brand logo

托管 CI 成了最慢的一环,于是构建搬回了家

构建和部署从 GitHub 的托管 runner 搬到了家中的一个 runner 池。过去每次运行都从一台全新机器开始,发布还要等排队、等故障恢复;现在由一台构建机在线时承接每个任务,常开服务器上的备用 runner 则由一个看门狗看守,一旦拿不准,它优先保证还能继续发布。镜像进入私有容器镜像仓库,工作室的程序库进入私有 npm 仓库,两者都在自家环境内,每次运行的记录也会归档,留存时间超过 GitHub 的保留期。最慢的部署从八分二十四秒缩短到三分零五秒,CI 也快了三分之一。

Md Moniruzzaman Image

Md Moniruzzaman

9月 24, 2026

Webanion brand logo

一个节点变成了集群,没有任何应用需要改动

第二台可随时关机的机器加入了一个正在运行的单节点集群,没有改动任何应用。常开服务器保存控制平面、每个数据库和卷以及每个服务的第一个副本;构建机在 taint 之后承担构建任务和无状态服务的第二个副本,它休眠时这些副本会等待,而不是退回常开服务器。工作结束时它自行关机,有任务进入队列时再回来;一个控制台展示每个节点、每个工作负载和每段可用时间;常开服务器上的每一项 CPU request 都经过测量,使其预留从可分配量的 84% 降到 56%。

Md Moniruzzaman Image

Md Moniruzzaman

9月 22, 2026

fully booked brand logo

Fully Booked:零停机迁移到自托管 Kubernetes

Fully Booked 此前运行在托管云基础设施上,账单逐月上涨,整套技术栈也无人真正拥有。我们把整个平台迁移到自托管的 Kubernetes 集群,全程没有让用户经历一分钟的停机。切换覆盖 DNS、入口网关、数据库和发布流水线,并分阶段推进:只有当某一层在新集群上得到验证之后,流量才会转移过去。那一周使用这款应用的人都没有察觉发生了什么,而这正是目标所在。每月的账单变成了自有硬件,如今同一个集群还承载着平台每周的版本发布。

Md Moniruzzaman Image

Md Moniruzzaman

6月 23, 2026

+1
Dominic Dormer
fully booked brand logo
Fully Booked Digital Ocean Deployment
DevOps 工程
2 年 3 个月
fully booked brand logo

Fully Booked - Docker 化部署,使用 DigitalOcean 和 Cloudflare

Fully Booked 以五个 Docker 服务的形式上线,部署在 Cloudflare 后面的一台 DigitalOcean droplet 上,让一个很小的团队也能运营一个托管定金的市场平台。一个仓库构建所有镜像,一个 compose 文件和一个 Makefile 把发布简化为 pull、build 和 up,Caddy 代理负责证书和安全头,Playwright 在服务器上渲染每一份报价单和发票的 PDF。由于各服务从一开始就相互独立,后来无需重建就迁移到了自托管的 Kubernetes 集群。

Md Moniruzzaman Image

Md Moniruzzaman

6月 24, 2025

+1
Dominic Dormer
fully booked brand logo
Fully Booked App store and Play Store Deployment
DevOps 工程
2 年 3 个月
fully booked brand logo

Fully Booked:应用商店和 Play 商店部署

Fully Booked 运营商应用已上架 App Store 和 Google Play,并持续通过审核,让英国小巴运营商可以用手机经营自己的业务。商店页面每张截图讲一项好处,把商业价值讲清楚;合规直接内建在产品中,包括应用内删除账户,以及与应用实际收集的数据相符的隐私声明;链接可直接打开应用;发布采用分阶段推出,确保任何一次更新都不会打乱运营商的工作日。

Md Moniruzzaman Image

Md Moniruzzaman

6月 24, 2025

+1
Dominic Dormer
27 Pearls App Logo

27 Pearls:移动发布和商店提交

一款已完成的 27 Pearls 应用,在为期一周的合作中成为 App Store 和 Google Play 上获批的商店页面,没有经历任何一轮拒审。这一周包括发布构建与签名、围绕学生收益撰写的商店文案、覆盖每种必需设备尺寸的截图、与应用实际收集的数据相符的隐私声明,以及一个可用的审核账号。这款应用至今仍在 Google Play 上。

Md Moniruzzaman Image

Md Moniruzzaman

5月 05, 2023

Dr. Kris Valenza

我构建的其他领域

MCP 服务器把真实平台开放给 AI 助手,Agent 流水线在人工审批关卡之后完成真正的编辑工作,还有让这一切在生产环境持续运转的基础设施。它们作为系统构建,经过认证、限定范围并被审计,从来不是演示品。

基于 React Native 与 Expo 构建的 iOS 和 Android 应用,作为其背后平台的一个组成部分:与网站共用同一套后端、认证和数据模型,并以同一节奏在应用商店发布。这里的作品包括面向英国小巴与大巴运营商的预订平台和工作共享网络,历时十八个月交付的旅行者求助应用,面向学生的生活技能应用,本地体育应用,一款经销商开票工具,以及一个粉丝平台。

基于 Electron 与 React 的桌面软件,服务于留在本机上的工作:支持离线运行,打包适配 Windows、macOS 和 Linux,并在有平台时像其他客户端一样接入平台后端。本栏目的示例是 Keyboard Tracker,一款自带报告生成器的员工活动追踪工具。

基于无头 CMS、使用 React 与 Next.js 构建的 Web 平台及其前台网站:支撑企业日常运营的管理后台、客户门户、一家合作社的账本与贷款系统,以及加载迅速、便于搜索引擎和 AI 爬虫读取的公开网站。无论规模大小,都采用服务端渲染、多语言本地化,并持续度量。

可嵌入的组件,把平台带到别人的网站上。借助 Prebooked 小部件,小巴或大巴运营商可以在自己的网站上直接提供预订,由背后的 Fully Booked 平台支撑,客户无需离开页面即可完成预订。安装轻便,并与它所扩展的产品保持同样的标准。

平台周边那些既不是应用也不是网站的部分:gm-libs,用于认证、数据、界面和后台任务的可复用 TypeScript 软件包,Webanion 的每个前端和后端都以它们为起点;以及一个产品的设计历程,从交互式 Figma 原型及其 UI/UX,到把它推向市场的视觉素材和教程视频。