运维简历之项目经验
前言
运维新手(包括应届毕业生,还有培训班刚出来,以及工作经验一两年内的运维新人)写简历的时候最难写的就是项目经验,因为日常工作中基本上都是打杂,或者没有工作经验。下面就是给大家用来写在简历上的项目经验,选其中的三到四个写上,并且在面试之前多加练习,就可以成为你真正的项目经验了。
记住一点:项目经验是无法背调的,只要是你面试能回答出来面试官对你项目方面的问题,那就是你的“真实经历”。
项目一:服务器上线
负责公司新服务器上线搭建系统环境及软件环境
1,根据现有配置部署工具(ansible+playbook)
2,结合应用系统环境需求定制部署模版(系统环境初始化、系统优
化、服务软件安装、配置模板) 制作一键执行脚本 playbook,使用
roles 细化不同模板中的不同任务
3,在新批量部署的服务器上部署 LNMP 环境、编制 Nginx 配置文
件并批量化部署;
4,自动化部署实施完成服务器上线
5,根据定制的检测模板对自动化部署效果进行检验
注意点:
php现在很少用了,你可以改成java,java的项目安装包一般是jar包(直接使用java 命令运行)或者 war包 (部署在tomcat),别说跑docker,那个一般不用ansible部署,使用k8s或者cicd,你不会就别给自己加难度。
nginx安装和常规配置很简单,几十分钟就能学会
ansible playbook能学会就是加分项,但是有难度,你写上了这个,那就多学学,面试肯定会问你,没掌握好那就老老实实的说是其他运维工程师写的,你只是使用或者就说不说批量部署。
项目二:web 架构调整
web 服务器架构调整(从单点到集群的设计)
需求:解决网站多个项目 web 服务器单点故障的问题
职责:
1 ,研究多种负载均衡方案 主要针对 lvs+keepalived 及
nginx+keepalived 进行研究
2,编写新架构方案实施项目书与实施日程
3,新系统部署与日常维护把公司原来的多数单点服务器变成了集群,提升了网站的稳定性与高并发的应用场景
注意点:
最起码你要学会nginx和lvs怎么样配置,还有后端健康检查怎么配
负载均衡的算法你花个半小时好好了解一下,没几种,使用场景也都有差异,记下来不会浪费你太多时间的。
如果你还想更进一步的话,去了解一下动静分离,那个是大加分项,并且也不难
如果你还想更更进一步的话,去了解一下无状态拆分,还有session一致性保持。因为并不是所有的web服务前面加上负载均衡就能横向扩展的,有的服务还会有状态数据(缓存,数据,文件等等),需要拆分出来才能横向扩展。session一致性的话自己去查,也很简单,这里就不赘述。
项目三:EFK 日收集审计
服务器日志审计项目提出与实施
1,出于安全权限控制从而实施对所有用户日志记录方案
2,搭建 EFK 日志收集管理系统
3,通过 EFK 实现对所有服务器系统、用户、服务进行日志审计并将记录集中管理
4,实施后让所有运维和开发的人员都根据自己角色在 Kibana 查看相应日志,管理员管理所有日志,实现安全对服务器日志的收集、分析、审计。
注意点:
EFK换成ELK都可以,往往也会问你为啥选EFK,所以你如果能记住两者的区别和优缺点,记不住就说领导决定的就行(新人要求没那么高)
这个安装部署挺麻烦的,但是能学会那是真的超大加分项,自己量力而行
会问到你公司的一天的日志量有多大,建议回答10G~40G,然后因为日志量不大,所以不会对网络带来多大影响,太小了会怀疑真实性,太大了那不是新人可以独立实施管理的,也会问你如何做不会影响正常的业务数据流量,那样你回答也麻烦
项目四:批量分发
实现全网服务器数据批量分发与批量管理
需求:
公司服务器逐渐增多,因此管理起来很麻烦,于是提出解决批量分发
管理解决方案,进行全网服务器数据分发与管理
职责:
1,针对 ansible 配置自动化工具及 ssh key+rsync 两套分发管理方案研究,最终选择简单易于维护并且强大的 ssh key+rsync 方案
2,找一台 IDC 内网服务器,作为分发机器,对固定普通用户做 sshkey认证(注意不是 root),需要 root 权限,通过 sudo 来控制,减少安全隐患。
3,对于分发机进行安全配置,例如,去掉外部 IP,开启防火墙。实施完毕,运维管理的效率提高了很多,因此得到了公司的嘉奖。
项目五:用户安全管理
服务器用户权限管理改造方案与实施项目
需求:解决公司 root 权限泛滥问题
职责:
1,提出权限整改解决方案,改进公司 root 权限泛滥的现状
2,召集大家开会商讨并确定方案后推进实施
3,实施后使得公司的权限管理更加清晰了(总结维护),从根本上降低了内部操作等不规范及安全隐患的发生。
3.1,管理用户权限 通过 sudo 来管理权限的,不论是运维还是开发,一般都不会给 root 权限,只有核心级开发或者研发总监或以上级别的才可能给相应服务器级别的权限;对核心运维或者运维总监才会给root 权限
3.2, 规划服务器的时候对普通用户规划 普通用户是根据项目来的,在不同公司它的项目产品线不一样。公司只有十几个产品线,为每一个项目建立一个普通用户,因此不论 nginx 还是 tomcat都是跑在普通用户下。
3.3,公用服务权限规划 公共服务也运行在普通用户下
总的来说是这样的,运维做运维的事情,开发做开发的事情。运维负责网络系统,只要系统没有故障,只要网络没有故障,只要系统资源还够用,那么运维的职责就到位了。而公司的理念是项目负责制,也就是说每个项目的责任人是开发,运维大概占 30%-40%的责任。的开发占 60%的责任。当进程上线的时候,这个服务是由普通用户跑的。它的每个站点目录都是普通用户的权限,也就是 700 的权限普通用户,这个是最安全的。无论是项目的启动,停止,以及代码上线,日志收集,日志分析都是通过进程跑的普通用户实现的。在管理这个项目的时候,可以把开发的用户加到这个项目组里面,这样负责相应项目的开发人员就有对应项目的所有权限。
项目六:数据备份
全网服务器数据备份方案提出及负责实施
需求:为公司数据做一个完整的备份系统
职责:
1,针对公司重要数据备份混乱状态和领导提出备份全网数据解决方案
2,通过本地打包备份,然后 rsync 结合 inotify 应用把全网数据统一备份到一个固定存储服务器,然后在存储服务器上通过脚本检查并报警管理员备份结果
3,定期将云主机的数据备份公司的内部服务器,防止地震火灾等问题导致的数据丢失。
项目七:数据库主从
MySQL 数据库实现主从同步,及完整备份解决方案
1,进入公司之前前任运维丢失数据,因此老大很重视数据安全这方
面
2,因此我提出并上线了 MySQL 数据库备份方案和 MySQ 主从架构方案
3,方案主要是在从库上开启 binlog 及按天分库分表全备,推送到备份服务器
4,将备份的数据定期恢复到测试库给开发使用
5,制定人工更新数据库的流程及制度
注意点:
mysql主从同步还可以加上读写分离,算是一个不错的加分项
主从同步和读写分离,备份和备份恢复都可以在自己的虚拟机上做实验,网上都有教程,不难,但是要记住命令,尤其是怎么样算是同步成功了
数据库的管理制度能记住那是大大的加分项
项目八:LNMP 架构优化
LNMP 架构优化方案
1,公司使用 LNMP 架构,优化较少,运行效果不佳
2,我提出了 LNMP 架构的优化方案
3,方案主要是 Linux 系统优化,nginx 服务优化,php 服务优化,MySQL 优化
4,优化完成后,LNMP 架构性能有很大提高。