Mark Stratmann
About Me Background Image

关于我

我是个电脑迷,而且已经当了非常、非常久了。

近期经历

邮件归档平台

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 流水线,并管理复杂的云基础设施部署。在认证系统、事件驱动架构与现代前端框架方面有扎实积累,注重可维护、测试完善的代码库。

技术概览

技术用途
TypeScriptAPI 主要开发语言(Fastify, Express)、前端(Next.js, React)、共享类型库(@cryoserver/types)
Node.js10+ 微服务的后端运行时
Go用于高性能邮件传输的 SMTP 服务
React面向客户与内部管理后台的 UI 框架
Next.js面向客户 UI 的 React 框架
MongoDB用户与配置数据的主要文档存储
MySQL/Percona面向结构化数据的关系型数据库,配合 Prisma ORM 使用
CouchDB面向分布式数据的集群化文档存储
Redis会话缓存
Kafka/KafkaJS微服务之间的事件驱动消息传递
Kubernetes生产环境部署的容器编排
Helm50+ Kubernetes Chart 配置的软件包管理器
Ansible基础设施供应与配置管理(AWS, Azure)
Docker全部服务的容器化,多阶段构建
AWS SDK与 S3、IAM、Cognito 等 AWS 服务集成
OAuth2/JWTAPI 认证与授权
Cypress前端应用的端到端与组件测试
Prisma用于 MySQL 迁移的类型安全数据库 ORM
ZodTypeScript 类型的运行时校验
MUI (Material UI)Next.js 应用的 UI 组件库
PuppeteerPDF 生成
Node-RD KafkaNode.js 服务的 Kafka 客户端
Solr搜索索引与查询服务
Prometheus/Grafana指标采集与可视化
ELK StackElasticsearch、Logstash、Kibana,用于集中式日志
Azure Pipelines自动化构建与部署的 CI/CD
Playwright/MCP面向 AI 驱动 UI 测试的浏览器自动化
llama.cpp用于实验性 CLI 工具的本地 LLM 推理
Shibboleth SP用于 SAML 2.0 联邦的 Apache 模块
ZooKeeperKafka 与 Solr 集群的协调服务
MinIO用于本地开发的 S3 兼容存储
MavenJava 项目构建工具,配合 Surefire 测试
TurboRepo用于管理多个 Next.js 应用的 Monorepo 工具