- 姓名: 吴飞群
- 出生年月: 1990年7月
- 籍贯: 河北邯郸
- 邮箱: feiqun.wu@gmail.com
- 电话: 17600466728(同微信)
- Github: https://github.com/wufeiqun
- 期望职位: 运维开发工程师 / 运维工程师
- 统招本科 2009.9-2013.6 河北科技大学
- 熟悉主流云厂商的服务, 能根据公司实际情况开发DevOps运维平台,支持业务合理有效使用公有云
- 擅长各类中间件服务的运维工作, 比如MySQL/Redis/Rocketmq/ElasticSearch等
- 熟悉Prometheus/OpenTelemetry/Grafana/ELK等常见
监控报警和日志等方案 - 熟练掌握Jenkins/Gitlab/Nexus等CICD工具, 并且有能力根据公司需求自研CICD工具
- 10年Linux运维经验,具备丰富熟练的故障排查解决经验
- 熟悉Docker/Kubernetes及相关云原生技术, 完整经历过多家公司的容器化项目落地
- Java, 可以独立使用Java开发DevOps运维平台 (主编程语言)
- Golang/Python, 自动化工具/爬虫/数据处理等场景会用到
- Shell, 运维自动化/排产线上问题会用到
- Vue3, 能够熟练使用Vue3进行各种后管系统的开发, 比如CMDB/运维平台等
- SpringBoot, 熟练使用
- Django/FastAPI, 熟练使用
- Vben Admin, 熟练使用
- 崇尚
DevOps文化和理念, 擅长通过构建各类DevOps工具不断提高整个团队的的效能 - 认可
终身学习的理念, 计算机技术/人工智能技术等日新月异, 只有保持终身学习才可以跟上时代 - 喜欢
平等自由/实事求是的工作氛围 - 坚持
技术服务业务的理念, 擅长结合公司实际情况将新技术落地
对技术有兴趣, 热爱探索新技术, 从一个非科班出身到熟练掌握Linux/Network/Python/ Java/Kubernetes等技术,都是自己在工作中以及下班后自学的
以解决公司实际问题为第一原则, 做过运维/运维开发/后端开发等岗位, 全链路问题排查经验非常丰富
除了做好自身的工作外, 我还积极帮助同事解决问题, 有责无界;在我待过的公司中, 我能做到让周围大部分的同事有问题第一个能想到的就是我
医药魔方是一个拥有50人左右技术团队的ToB小企业, 我在公司独立负责运维部分的所有工作, 包括监控报警, CICD, 日志, 成本控制, 云资源使用等等, 把公司从手工敲命令上线/没有任何监控报警/日志等现状到拥有完善的运维自动化平台/监控平台/日志平台等, 都是我独自主导完成, 极大地提高了公司的研发效率/稳定性, 我在整个过程中也得到了很大的成长.
刚来公司的时候, 公司没有运维, 也没有使用Jenkins, 都是后端同学敲命令进行CICD, 非常低效且不规范, 经常因为发布而出问题.
我来公司以后, 结合前几年的运维工作经验, 我独自开发出了以应用为中心, 围绕应用全生命周期进行设计的运维平台, 包括CMDB/CICD等功能, 相比较于开源的Jenkins, 自研的平台具有易扩展和良好的用户体验等优势, 实现了开发者一键发布的功能, 极大低提高了开发团队的交付效率.
公司的后端服务都是SpringBoot, 开始都是部署在虚拟机上, 经常出现资源的抢占问题, 服务之间互相影响等, 服务器的使用率也不太均衡, 后来公司打算使用Kubernetes.
我的职责如下:
- 结合公司的实际情况做出容器化的技术选型
- 开发DevOps运维平台, 支持容器化部署, 让开发人员自助发布, 屏蔽底层技术细节
- 维护整个Kubernetes集群的稳定性
最终将公司的后端服务全部容器化, 节省了30%的服务器成本, 并且提高了整个公司服务的稳定性
采用Prometheus+夜莺的监控报警方案, 结合自研的运维平台, 实现服务上线自动添加监控报警, 保证了业务稳定运行.
采用EFK方案采集虚拟机+容器内的日志, 并给开发人员提供日志查询等功能.
入职每日优鲜的时候, 公司刚进行完融资, 业务也都刚刚起步, 我参与了每日优鲜运维团队平台化的整个过程, 我主导并参与的项目有:
- 参与了公司CICD发布平台的开发维护, 技术栈为SpringBoot+Vue
- 使用Django开发了运维CMDB平台, 建立了运维统一的基础数据平台
- 搭建LDAP并实现了OTP二次验证, 保证公司内部登录的安全性
- 基于ansible开发了运维异步任务平台, 将运维内部大部分手工任务变成了自动化任务, 提高了整个运维团队的效率
- 使用SpringBoot+Vue完成了成本控制系统的开发, 将每个团队的成本使用可视化, 对公司的成本控制起到了很大的辅助作用
项目背景:
公司发展初期, 由于没有统一的内部认证系统, 每个子系统都自己开发了自己的用户体系, 做了大量的重复的工作, 而且用户信息散落在各个系统内部也不安全, 这时候公司需要一个统一的账号权限系统.
我的工作:
我作为项目负责人完整参与并主导了每日优鲜的账号权限体系的迭代, 从最初的烟囱式逐渐到平台化的整个过程, 主要如下:
- 负责行业调研和架构设计, 包括单点登录, RBAC功能权限, 数据权限, 网关鉴权等
- 项目前后端的开发
- 推广接入
结果: 最终顺利实现公司内部系统权限的对接, 并且在做该项目的时候, 多次获得了公司文化案例的表彰
运维平台是以应用为核心的综合管理平台, 主要有CMDB, 应用管理, CICD, 容器管理, 配置中心管理等功能
运维平台是运维和开发沟通的桥梁, 平台开发采用的技术栈是Python+Django+jQuery+Bootstrap做为运维平台的核心开发者, 我在此项目:
- 独自负责运维平台整体架构的设计, 将运维平台进行分层设计, 通过API集成到运维平台中.
- 整理研发团队需求并落地整合到运维平台中
- 整合阿里云各个产品的接口到运维平台中并结合项目进行管理
- 整合其它第三方接口到平台
参与调研新型监控技术Prometheus, 并进行了二次开发, 接入到了运维平台, 方便了公司研发人员的接入.从基础系统(服务器), 业务的核心指标(QPS/RT), 基础资源(MySQL/Redis)等全方位接入监控系统, 并且优化了报警的级别和通知的方式, 支持企业微信/钉钉/短信/电话等. 大大提高了故障的通知处理速度.保障了业务的稳定性.
通过这个项目我的收获:
- 技术上学会使用Prometheus这一项监控技术, 包括Prometheus的数据模型, 查询语言promQL, 和grafna的整合, 监控的添加等.
- 心态上认识到要不断学习新技术, 并根据公司具体场景落地.比如通过Prometheus我接触到了CNCF社区.
之前运维的报警都是通过配置钉钉来通知的, 为了提高报警的多样性和易用性, 我开发了推送中心服务, 该服务集成了各种第三方消息发送的方式, 包括企业微信/短信/语音/邮件/钉钉等.项目采用SpringBoot开发, 并通过MQ来异步削峰.
通过这个项目我学会了:
- 熟练掌握了SpringBoot的项目开发
- 掌握了MQ的使用
包括
- 制定日志规范, 包括日志级别, 保存路径, 自动切割等
- 搭建ELK日志平台
- 推广业务方接入
- 后期维护等等
为了更进一步地优化研发/测试/上线流程和提高服务器资源利用率, 我们团队引入了k8s, 将服务逐渐容器化. 在这个过程中我主要负责:
- 根据公司目前的上线部署流程, 更加平滑地引入容器化部署到运维平台上.
- 负责编写整合k8s的API到运维平台部分代码
- 培训研发人员关于容器的基础知识
- 解决容器化过程中遇到的一些问题
项目收获:
- K8s的整体架构和各个主要组件的作用
- 熟练掌握了K8s中Service/Deployment/Pod的相关概念和yaml配置文件的编写
- 了解Docker的底层技术namespace/cgroup等
- 经历了SpringCloud微服务的容器化迁移的踩坑过程
参与了电商网站的爬虫项目, 基于Scrapy框架进行分布式爬虫,利用Xpath,BeautifulSoup等库进行数据清洗,并解决验证码登录,Javascript混淆等各种反爬措施。
独立负责后端商品库相关接口的设计和编写.
项目收获:
- 学会使用
flaskweb框架开发项目 - 学会了采用
gunicorn,gevent来提高flask的并发性能 - 学会了Python操作
Mysql,Redis等
参与中兴海外利比亚电信运营商运维项目,项目上有1000台左右服务器需要维护,包括日常检查,数据报表展示,基础服务的安装配置等等.
项目收获:
- 从开始的手工安装系统到后来的工具化我认识到自动化的重要性,同时自己的shell编写能力大大提高, 学会了常见的Linux命令top/vmstat/netstat等
- 学会了常见的大型软件比如
Nginx,MySQL等软件的安装和配置 - 学会使用Python编写简单的监控脚本, 比如CPU/内存等的监控
- 由于是在国外,经常要跟运营商的客户打交道,这也提高了我的英语听说读写能力,当然已经习惯看英文的技术文章。
在学生会网络部的时候为了给大家提供交友娱乐的平台, 我们搭建这个校园校内网, 提供FTP文件共享, BT服务, 论坛功能等, 从购买硬件到安装操作系统,从安装LNMP,到搭建Discuz等我都有深度参与.
项目收获:
- 经过这个小小的项目,我熟练掌握了linux基础知识,以及TCP/IP相关的知识.
- 培养了一定的问题排错能力和团队协作能力,另外我还意识到兴趣是最好的老师.
- 干货 | Yelp是如何使用Docker的? 由于公司打算使用docker, 所以调研了docker相关的技术, 顺便翻译了一篇文章给了dockerone社区
- 一下科技容器化落地实践 在Dockerone微信群中分享我们一下科技的容器化落地方案
- https://github.com/wufeiqun/blog 坚持了写技术博客, 把工作中遇到的问题都会总结到博客里面