专业技能


  • 熟悉 Kubernetes,有丰富的运维和开发经验
  • 熟悉云监控,熟悉 prometheus、grafana、jaeger、APM,有监控平台搭建经验
  • 熟悉 Istio 服务网格、Envoy,有上层应用开发经验
  • 熟悉 CI/CD、Gitlab CI、docker,有交付系统设计和开发经验
  • 熟悉 Linux 操作、能编写 Shell 脚本,熟悉 tcpdump、iptables 等排障工具
  • 熟悉 Nginx 配置和 Lua 插件开发,有防火墙系统和降级系统开发经验
  • 熟悉阿里云平台和服务如 RDS、ECS、OSS、SLS、FC、ACK、SLB
  • 熟悉微服务架构,配置中心、服务发现,有传统应用微服务化经验
  • 熟悉 C# 和 Go,同时对 Java、JavaScript、Python、Lua、Vue 有开发经验
  • 英语读写能力较强,有 CET4
  • 热爱开源,跟进社区动态,有开源社区贡献如 OpenTelemetry

工作经历


xxxx公司 2015.9 ~ 2023.2

  1. 基于 Istio 的全链路流量治理系统 为实现微服务治理,基于 Istio 的流量治理功能,抽象出一个符合内部架构的流量泳道概念。我作为唯一开发人员开发了 Kubernetes operator 和后台系统用于管理 CRD,实现对 Kubernetes 和 Istio 资源的操作。 同时开发了一个 Envoy 的 Wasm 插件实现了无侵入的流量标签透传,开发人员可无需任何代码修改即可接入,为此对 Envoy 的 WASM host 进行了修改,重新编译 Envoy 和 Istio。 最终实现了一套全链路流量治理系统,包含灰度发布、熔断限流等功能,从流量入口生成的标识信息可以层层传递到内部的服务。同时在运维系统中提供了易用的页面给开发人员使用。

  2. 服务于开发人员的自助运维系统 为解决微服务化过程中的开发和运维效率问题,基于 GitLab + Kubernetes 搭建了一套 CI/CD 系统,同时基于 ASP.NET Core+Vue 自研了一个自助运维系统,服务于技术研发团队。 我作为主力开发人员完成整个后端代码开发。CI/CD 包含了自动化的单元测试,自动部署代码到测试集群,自动推送标签到运维系统用于生产环境发布。运维系统包含了生产环境发布审批、Apollo 配置中心集成、Pod 的 CPU、内存、网络监控和实时日志查看等功能。 系统模块化方便扩展,后续包含了防火墙管理,服务网格管理等功能。目前已服务于整个研发团队的上线发布流程及开发人员的日常排障过程。

  3. 基于 Nginx 的防火墙+负载降级系统 为解决网站安全和稳定性问题,我作为主力开发人员基于 OpenResty 平台使用 lua 开发了一套防火墙+负载降级系统。包含请求分析、规则拦截、黑白名单、响应重写、动态 CC 防护、被动负载降级、主动后端防护等功能。 另外配套一个后台管理系统,可以对所有规则进行修改,配置由 Nginx 自动拉取实时生效。 开发过程中通过火焰图和 JIT 日志查找并解决了 LuaJIT 由于 JIT 中断导致的性能问题,以及通过 EVALSHA 的方式解决了高并发下 Redis 连接数和带宽问题。为了动态分配流量到后端和缓存,使用了加权移动平均法对后端响应时间进行预测。 目前四个实例稳定支持整个集团亿级日流量,减少前端报错 90% 以上。

  4. 可观测性基础设施 为解决线上可观测性问题,针对内部 C#+Java 多技术栈情况,使用 dd-trace + opentelemetry-collector + prometheus 作为数据搜集,Grafana 作为数据展示,jaeger 作为 APM 分析端构建了一套完整的可观测性基础设施,实现 metrics+logging+tracing 三要素分析。 为满足内部需求,对 dd-trace 的 Java 和 C# agent、opentelemetry-collector 等开源组件进行了定制化开发,实现了运行时 trace/statsd 数据采集开关、自定义传播头等功能,涉及到 javaagent 修改、aspnet core 代码注入。 同时结合 Kubernetes 的动态准入控制,通过控制容器 entrypoint,实现了自动化注入 APM agent、控制日志格式和等级,开发人员无需修改代码即可接入。