近期经历
邮件归档平台
CTO 兼高级全栈开发工程师
负责一套全面的企业级邮件归档与合规平台,为多个全球客户提供服务。平台在 AWS 云基础设施与本地部署环境中运行,每天处理数百万封邮件。
关键技术: TypeScript, Node.js, Go, Java 21, Spring Boot 3.5, React, Next.js, MongoDB, MySQL, Kafka, Kubernetes, Helm, Ansible ELK, Prometheus, Grafana, AWS, Docker, Cypress, Redis, Prisma, SAML 2.0, OAuth2
基础设施与 DevOps
Kubernetes 部署: 为平台所有服务创建了 50+ Helm Chart 配置。实现自动伸缩策略、Pod Disruption Budget 以及网络策略,以确保安全的服务间通信。
AWS 基础设施: 使用 CloudFormation 模板与 Ansible Playbook,在多个 AWS 区域构建自动化部署流水线。管理 VPN 网关、IAM 角色、安全组与 Route53 DNS 配置。
CI/CD: 实现 Azure Pipelines 用于自动化测试与容器构建。支持 Jest 与 Mocha 的并行测试执行、代码覆盖率报告以及多阶段部署流水线。
监控: 集成 Prometheus 指标采集、Grafana 仪表盘与 ELK Stack 进行日志聚合。实现服务健康检查与告警策略。
Docker 开发环境: 设计了用于本地开发的完整 docker-compose 配置,包括:
- 带有 mongosh 健康检查的 MongoDB 副本集
- 带自定义排序规则(collation)设置的 MySQL/Percona 数据库
- 带 Topic 初始化的 Kafka/Zookeeper 集群
- 带 Bucket 创建的 MinIO(兼容 S3)服务器
- 具备依赖编排的多服务架构
- 开发工具:kubectl proxy, mongo-express, kafdrop, MySQL clients
Docker 容器镜像: 使用多阶段构建为以下组件构建并优化容器镜像:
- Node.js 服务: 基于 Alpine 的镜像,包含 TypeScript 编译、使用
node-prune进行体积优化,并采用 distroless runner 以尽量缩小运行时占用 - Go 服务: 基于 Devcontainer 的镜像,包含用于 Kafka 连接的 librdkafka 依赖
- Ubuntu 基础镜像: 自定义镜像,预配置 Node.js、Java JDK、AWS CLI 与开发工具
Ubuntu 基础容器: 构建并维护一个 Ubuntu 22.04 基础镜像,包含 Node.js、Java JDK 24、AWS CLI、ZooKeeper、etcd、Kafka 与开发工具,以确保一致的构建环境。
CloudShell 容器: 构建 Azure Cloud Shell 的基础与工具容器,包含 PowerShell 7 与多种 Azure SDK,用于微软云管理工作流。
VS Code Dev Containers: 为多个服务配置开发容器环境,支持远程开发、SSH 直通与扩展管理。
数据库与数据管理
MongoDB: 采用副本集的文档存储以实现高可用。使用 mongodump/mongorestore 实现自动备份与灾难恢复流程。
MySQL/Percona: 面向结构化数据的关系型数据库;通过 myloader/mydumper 实现 Percona 的备份与恢复工作流,以高效完成数据迁移。
CouchDB: 用于分布式数据存储的集群化文档存储,支持多节点部署。
数据库迁移: 开发 MySQL 与 MongoDB 集群之间的数据迁移工具,支持大规模数据传输,并基于类生产数据集进行集成测试。
Claude Code 开发环境(ralph-agent)
个人项目 - AI 开发环境
创建了一个基于 Docker 的开发环境,针对使用 Claude Code 的长时间运行 AI Agent 任务进行了优化。具备非 root 用户配置(支持 SSH 与 Git 直通)、通过 NVM 自动管理 Node.js 版本,以及兼容 VS Code 远程开发。
关键技术: Docker, Ubuntu 24.04, Node.js, VS Code Remote
概述
具备构建可扩展、多租户企业级 SaaS 平台的丰富经验,覆盖全技术栈。擅长微服务架构设计、构建健壮的 CI/CD 流水线,并管理复杂的云基础设施部署。在认证系统、事件驱动架构与现代前端框架方面有扎实积累,注重可维护、测试完善的代码库。
技术概览
| 技术 | 用途 |
|---|---|
| TypeScript | API 主要开发语言(Fastify, Express)、前端(Next.js, React)、共享类型库(@cryoserver/types) |
| Node.js | 10+ 微服务的后端运行时 |
| Go | 用于高性能邮件传输的 SMTP 服务 |
| React | 面向客户与内部管理后台的 UI 框架 |
| Next.js | 面向客户 UI 的 React 框架 |
| MongoDB | 用户与配置数据的主要文档存储 |
| MySQL/Percona | 面向结构化数据的关系型数据库,配合 Prisma ORM 使用 |
| CouchDB | 面向分布式数据的集群化文档存储 |
| Redis | 会话缓存 |
| Kafka/KafkaJS | 微服务之间的事件驱动消息传递 |
| Kubernetes | 生产环境部署的容器编排 |
| Helm | 50+ Kubernetes Chart 配置的软件包管理器 |
| Ansible | 基础设施供应与配置管理(AWS, Azure) |
| Docker | 全部服务的容器化,多阶段构建 |
| AWS SDK | 与 S3、IAM、Cognito 等 AWS 服务集成 |
| OAuth2/JWT | API 认证与授权 |
| Cypress | 前端应用的端到端与组件测试 |
| Prisma | 用于 MySQL 迁移的类型安全数据库 ORM |
| Zod | TypeScript 类型的运行时校验 |
| MUI (Material UI) | Next.js 应用的 UI 组件库 |
| Puppeteer | PDF 生成 |
| Node-RD Kafka | Node.js 服务的 Kafka 客户端 |
| Solr | 搜索索引与查询服务 |
| Prometheus/Grafana | 指标采集与可视化 |
| ELK Stack | Elasticsearch、Logstash、Kibana,用于集中式日志 |
| Azure Pipelines | 自动化构建与部署的 CI/CD |
| Playwright/MCP | 面向 AI 驱动 UI 测试的浏览器自动化 |
| llama.cpp | 用于实验性 CLI 工具的本地 LLM 推理 |
| Shibboleth SP | 用于 SAML 2.0 联邦的 Apache 模块 |
| ZooKeeper | Kafka 与 Solr 集群的协调服务 |
| MinIO | 用于本地开发的 S3 兼容存储 |
| Maven | Java 项目构建工具,配合 Surefire 测试 |
| TurboRepo | 用于管理多个 Next.js 应用的 Monorepo 工具 |
