1: 精通使用Linux/unix操作系统,熟悉shell脚本编程,熟悉python脚本编程 并熟悉TCP/IP、HTTP等协议
2:了解linx内核,能够初步定位处理linux内核相关故障
3:负责维护的服务器有800+,有批量服务器运维经验
4:熟悉k8s相关生态环境 能够独立完成业务的容器化改造 helm部署 cid流程 监控 日志采集等各种设计
5:熟悉prometheus监控告警体系,能够独立设计prometheus监控指标 并能够独立设计各种grafana展板
5:熟悉ELK日志接入流程,能够熟练应用elk日志监控系统进行故障排查
10:熟悉CI CD 流程,能够独立为项目设计端到端的devops cicd 流水线 ,提升项目效率。尤其熟悉gitlab 和argo
12:熟悉python编程 能够通过python设计各种自动化脚本 如自动发送阿里云资源产品成本信息脚本,自动根据特殊请求清理oss存储的脚本, 熟悉flask web开发框架。
仿真容器平台项目 2019.09-至今
项目职务: 仿真容器平台规划设计搭建
项目描述: 通过kubeadm原生方式搭建仿真容器k8s平台, 设计k8s平台的promethues监控告警规则,设计规划k8s平台日志采集和查看方案, 设计规划k8s平台各种业务监控展板展示, 通过helm方式部署业务到k8s平台,独立设计helm chart包。
个人开发容器平台项目 2019.06-至今
项目职务: 运维工程师
项目描述: 本项目共有3个TKE集群,集群1和集群2主要运行statefullset类型资源供公司员工申请个人开发容器,集群3主要运行job类型资源 运行公司蓝盾后台的CI CD流水线job任务。
3个TKE集群的网络方案均为全局路由 + 策略路由 + 弹性网卡,通过tke-eni-ipamd, sip , uip这几个对象来提供静态ip的功能。 每个node节点上面都有如下的daemonset类型资源:
Kube-proxy(服务发现和注册,没有使用kube-proxy进行服务转发而是通过ipvs模式进行服务;流量转发)
Kube-router(主要用了此对象的network-policy功能)
Ip-masq-agent(通过此资源实现对集群外部的访问时snat的操作)
tke-cni-agent tke-eni-agent(网络相关插件)
金光openstack私有云平台项目 2017.09-2018.10
项目职务: 技术负责人
项目描述: 项目采用中兴通讯自研云平台tecs(基于openstack实现)进行部署,其中负责自动化安装的daisy组件和负责提供web界面服务的horizon组件都是通过docker容器方式进行部署,后端存储驱动为devicemapper,网络为host模式组网,各个容器内的进程start,stop等都是通过进程管家--supervisord这个安装在容器内的后台进程负责管理。
本项目共有46台物理服务器,其中2台服务器做为主备控制节点,通过开源的双机监控软件placemaker, pcs实现了集群监控和双机热备,其余44台服务器全为计算节点,后端存储为走FC协议的磁阵系统,通过cinder组件来提供块存储服务。整套系统共启虚机245套,虚机之上运行不同的集群业务。在neutron服务方面,每个计算节点都启用openstack-ovdk-agent代理服务通过dvs技术来提供二层网络服务,neutron的其他服务全部部署在主备两个控制节点上。cinder组件的相关服务cinder-api, cinder-schedule, cinder-volume 全部部署在两个主备控制节点上,在运行时只有主节点的相关服务为启动状态,备节点为关闭状态。
通过python语言开发站点维护工具 2017.03-2017.05
项目职务: python开发
项目描述: 本项目是通过框架编程的思想实现,基本的实现思路如下:
通过命令调用入口函数:python ./NodeBKit.py --sitelist ./list.csv --task ./task_name.py,入口函数获取外部命令传递的sys.argv[1:]参数,其中主要有两大类型参数一个是--sitelist list.csv 一个是--task task_name.py,当外部参数传入后先进行初步的准备工作创建相关的输出目录和日志准备等,接着通过一个for循环来调用已经编写好的静态钩子函数statick_hook_dict['hand_sitelist'](list),statick_hook_dict['hand_task'](task_name), 这两个静态钩子函数通过字典进行保存,通过一个for循环语句加上入参的判断就能够完成调用,而函数statick_hook_dict['hand_sitelist'](list)作用就是把外部输入的站点list列表信息通过csv.reader()方法进行处理后把有用的信息给存放在一个列表中方便后续循环调用,函数statick_hook_dict['hand_task'](task_name)的作用就是通过外部的输入的具体的task_name来完成要处理的task函数的动态注册,也就是回调函数的动态注册---主要是通过eval()函数来实现了外部输入的参数变量到要调用的函数的动态注册过程taskHookDict[task_name] = eval(task_name + '.main'), 通过如上的动态注册后,后续就能够非常方便的通过taskHookDict这个字典类型的数据结构来回调函数task_name.main()。
如上所有的对入参处理的准备工作完成后,主调程序就会在调用do_task(task_name, sitelists)函数进行相关处理,在这个函数内部会为每个站点生成一个站点对象实例,且调用站点对象实例的handing_task()方法 而这个方法又会回调前面完成的动态注册函数task_name.main(), 这样就实现了所有站点对象的共同操作都能够在站点类中完成代码编写,而具体对外的各种应用场景能够通过对task_name这个API接口函数的编程来实现上层逻辑应用。
基于蓝盾平台建立的CI CD流水线案例,此流水线是在腾讯自研的蓝盾平台上进行创建,此平台的基本思路和思想和外部常用的 Jenkins是完全一致的。
1:pass mysql资源申请 申请资源时可选一主一从 或者一主两从节点, 建议再申请一个只读实例(所有外围只读服务都从只读实例获取数据) 另外若有异地灾备需求,可再申请一个异地灾备实例(注异地灾备实例在主实例正在进行DTS传输时无法创建) 申请后可登陆腾讯云控制
为腾讯公司搭建confluence协同办公系统,共4台APP节点+2MYSQL数据库系统+NFS共享存储,目前此系统的规模和容量情况如下: 页面数有 300万(每个月增长50万) 空间数8000 共享存储大小为600G(基本每个月增长100G) 数据库实
本项目脚本能够自动获取阿里云资源所有产品的每天详细消费信息,并通过报告形式发送到飞书群,方便每天能够及时查看到阿里云资源的实际消费情况,通过每天的消费报告信息能够及时发现异常 从而降低阿里云资源的不合理消费风险。 本项目可通过在服务器上通过crontab方式部署 也可通过在服务器
通过此argo workflow流水线 设计使得系统能够同时并发3000到5000 job进行相关计算任务
本项目通过kubeadm 独立部署k8s系统,并独立部署promethus告警监控系统 设计promethues告警规则,设计promethues自定义抓取指标, 设计grafana各种业务展板,设计和实施ELK日志采集系统。