1. 拥有4年阿里云公有云运维经验,成功领导超过10个项目与阿里云产品(高防,waf,cdn,oss,SLB等)无缝集成,提升网站安全防护能力,提高业务系统负载能力,简化运维管理,降低成本。
2. 具备丰富的线上故障处理能力,曾多次解决生产环境中的各类技术问题(包括数据库死锁,业务容器异常,kafka异常等问题,linux服务器/windows服务器异常等问题)。
3. 在k8s环境运维方面拥有深厚经验,领导公司业务项目从ECS Docker环境迁移至k8s,利用K8s与Istio构建服务网格,显著提升API响应速度,并通过Prometheus与AlertManager搭建高效的监控告警系统,确保核心服务SLA达到99.95%的高标准。
4. 推动DevOps与自动化流程,基于Jenkins设计了涵盖Dev、Test、Prod等多环境的自动化部署流水线,大幅降低发布失败率,从15%降至3%,有效提升发布效率与质量。
5. 开发了一系列Golang跨平台运维工具,包括但不限于监控工具实现SSL证书到期预警、支持URL探针异常检测,以及备份工具支持MySQL/gitea/公司网盘数据的增量备份,备份成功率100%,显著减少人工操作时间。
6. 熟练掌握nginx、iis等Web应用的部署与反向代理配置,以及使用filebeat、kafka、zeekoop、clickhouse等工具进行业务日志的高效采集与处理。
一.业务系统从docker单机部署环境迁移至k8s集群
业务背景:
1. 当前系统最初部署时,是通过 MySQL实例+Redis实例+ ECS(单台) 存在如下问题:
● 单点风险高:单台 ECS + 单实例 MySQL/Redis,存在单点故障风险,且硬件资源无弹性。
● 并发能力差:午间高峰流量冲击时,Nginx 反向代理 + 手动扩容无法快速响应,业务延迟飙升,并且业务高峰需提前预估资源,突发流量仍可能导致服务雪崩。
● 运维成本高:人工干预扩容、配置同步等操作耗时,且业务增长后维护复杂度指数级上升。
● 后续经过开会讨论,决定使用阿里云ack(k8s)完成项目从docker容器化部署转向使用k8s部署,依靠k8s HPA功能,对pod进行自动扩缩容,保障业务快速增长,高并发情况下的系统稳定运行。
改造过程:
1.分析当前项目需求: 当前项目是使用docker进行单节点部署,在业务高发的时候,单节点承受能力不足,因此选定k8s,依赖应用支持自动扩容特性,解决某个时间点高并发的问题,
2.应用选型: 由于业务主要是部署在阿里云,优先选择阿里云ack k8s托管集群作为基础应用,指定NAS作为系统文件存储,使用负载均衡(ALB,CLB)作为流量入口
3.业务应用优化: 将docker部署的应用程序及第三方应用根据其特性分别将其转换为k8s支持的StatefulSet,Deployment的yaml为文件
4.构建基础应用:将docker部署的nacos,clickhouse,rabbimq,filebeat,kafka等应用在ack里面进行部署及配置
5.根据生产环境复制MySQL实例,redis实例
6. 优化Jenkins CI/CD 流程实现sts,deploy文件一键部署
7. 测试进行全方位测试,没有问题,提交测试报告
8. 确定上线时间,发布公告,切换数据库,redis链接,发布终版程序,切换域名解析
9. 试运行,没有问题,投入正式生产
二.docker环境下微服务部署
项目背景:
随着saas平台用户量的增长,原本部署的单节点存在性能下降,响应延迟,可扩展性差等特点,公司决定将业务进行模块化拆分,分成多个小型,独立部署的服务,每个服务负责特定的功能,因此需要从单一的nginx反代方式部署过滤到微服务方式部署。
技术栈:
基础应用 docker ,微服务新增应用 fabio+consul ,第三方应用 nginx+mysql+redis+mondb+mqtt,日志系统 filebeat+kafka1+zookeeper++kafka-ui+clickhouse
改造过程:
1.指定统一流量入口 业务系统从单节点改造为微服务后,所有后端的应用流量统一从网关进入,因此选定fabio+consul替代nginx完成微服务注册及自动发现,fabio作为后端流量入口。
2.优化业务系统的yaml文件,根据服务名指定日志存在目录,使日志系统能覆盖所有业务应用。
3.优化Jenkins发布服务,从以前的统一发布变成单模块发布,每次发布只发布指定服务,减少服务依赖,降低业务影响。
4.添加fabio应用监控,用于解决个别服务发布失败后及时进行告警
三.运维告警系统编写
项目背景:
在阿里云监控跟prometheus监控不满足要求的情况下,实现自定义监控功能。
技术栈:
golang高级开发语言+gin框架+MySQL+ClickHouse
项目功能:
•1.距离https证书到期30天时,进行钉钉告警
•2.URL探针检测异常时,及时进行钉钉及电话语音通知告警
• 3.线上程序端口检测异常时,及时进行钉钉及电话语音通知告警
•4.检测fabio负载均衡异常时,进行钉钉告警
实现过程:
•1.把上述需求进行整理,构思编写框架
•2.部署需使用到的第三方应用,有MySQL,ClickHouse
•3. 根据需求设计表,覆盖上面需求场景即可
•4.获取阿里云语音通知SDK,并配置阿里云语音通知功能
•5.查看钉钉官方告警文档,获取钉钉告警通知使用方法并创建钉钉群,设置关键词,获取钉钉告警地址
•6.根据最初的构思进行程序编写及测试
•7.内部部署并发布开源版