运维面试必看的22个项目经验(真实) 学会薪资翻倍

征服bug 2024-07-06 12:07:02 阅读 84

项目一:服务器上线

负责公司新服务器上线搭建系统环境及软件环境

1,根据现有配置部署工具(ansible+playbook)

2,结合应用系统环境需求定制部署模版(系统环境初始化、系统优

化、服务软件安装、配置模板) 制作一键执行脚本 playbook,使用

roles 细化不同模板中的不同任务

3,在新批量部署的服务器上部署 LNMP 环境、编制 Nginx 配置文

件并批量化部署;

4,自动化部署实施完成服务器上线

5,根据定制的检测模板对自动化部署效果进行检验

项目二:web 架构调整

web 服务器架构调整(从单点到集群的设计)

需求: 解决网站多个项目 web 服务器单点故障的问题

职责:

1 ,研究多种负载均衡方案 主要针对 lvs+keepalived 及

nginx+keepalived 进行研究

2,编写新架构方案实施项目书与实施日程

3,新系统部署与日常维护把公司原来的多数单点服务器变成了集群,提升了网站的稳定性与高并发的应用场景

项目三:EFK 日收集审计

服务器日志审计项目提出与实施

1,出于安全权限控制从而实施对所有用户日志记录方案 ELK2

2,搭建 EFK 日志收集管理系统

3,通过 EFK 实现对所有服务器系统、用户、服务进行日志审计并将

记录集中管理

4,实施后让所有运维和开发的人员都根据自己角色在 Kibana 查看

相应日志,管理员管理所有日志,实现安全对服务器日志的收集、分

析、审计。

项目四:批量分发

实现全网服务器数据批量分发与批量管理

需求:

公司服务器逐渐增多,因此管理起来很麻烦,于是提出解决批量分发

管理解决方案,进行全网服务器数据分发与管理

职责:

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,制定人工更新数据库的流程及制度

项目八: LNMP 架构优化

LNMP 架构优化方案

1,公司使用 LNMP 架构,优化较少,运行效果不佳

2,我提出了 LNMP 架构的优化方案

3,方案主要是 Linux 系统优化,nginx 服务优化,php 服务优化,

MySQL 优化

4,优化完成后,LNMP 架构性能有很大提高。

项目九:zabbix 全网监控

全网服务器监控解决方案实施

需求:到公司后,没有任何监控系统,每次故障无法报警,每次故障对公司

的网站都造成了很大的影响,因此我用自己已经掌握的监控技术,以

及查询资料撰写解决方案,提交给公司领导,以改善服务器报警不及

时的问题,最大限度的保证公司网站故障及时处理

职责:

1,根据需求选定最流行的监控软件 zabbix 进行研究。

2,根据不同服务器不同维度及具体需求定制模版进行监控实时报警

3 , 编辑监控脚本,实现服务自定义监控,根据业务类型和峰值规律

设定相应的报警标准及处理规范

4,实施完毕后,做到了大部分的故障报警都能及时有效的汇报给运

维人员,为网站的稳定争取了时间

项目十:堡垒机安全

搭建 jumpserver 跳板机管理混乱账户

软件环境: CentOS6.5

开发工具: jumpserver

项目描述:

在投入工作的几个月里,我发现公司的服务器运维管理中对于服务器

账号的管理十分混乱,有的运维甚至有好几个工作账号,而且能随时

登陆 root 账户。因此,每当有运维工作人员调岗或离职,服务器的

所有账户密码都会被重新改变一次,不仅费时费力,密码也不好记忆,

十分的麻烦。于是,几经思考,我向领导建议启用开源型的跳板机jumpserver 来改善目前混乱的状况。

职责:

部署一台服务器为 jumpserver 跳板机 用 xshell 登陆跳板机进行授

权测试

项目效果:

实现了全网服务器的安全管理,通过堡垒机解决了人员登录服务器混

乱现象,并针对不同服务器不同人员权限分配实现了有序安全的服务

器管理,为所有人员对服务器的登录及操作做到了有迹可查,避免了

操作人员的不安全操作,让大家形成了规范及安全的操作意识,针对

人员流动通过专属 ssh-key 完成高效的管理及变更。最大程度保障了

有权可用、规范安全登录即操作服务器。

项目十一:ansible 自动化

项目需求:

随着 devops 发展。自动化运维愈发重要,随着公司业务增长服务器

集群数量持续增加,依靠运维人员人肉运维成本极高且效率低下,因

为公司需要一套服务器自动化管理平台,完成服务器上线初始化、应

用软件部署、配置管理分发、程序代码部署等批量操作。经过研究以

及考虑到公司服务器数量及维护成本等,选用 ansible 作为自动化管

理平台。

解决方案:

1、搭建 ansible-master 节点,将公司所有云主机都加入到 ansible集群分组管理。

2、负责不同服务器主机组的初始化 init、软件 install、配置分发、

代码部署等 palybook 的编写管理。

3、负责日常批量化操作 playbook 测试、审核以及实施部署等。

4、负责设计编写自动化运维规范及流程准则。

5、负责日常自动化产生的问题修正、机器增减主机组同步管理、公

钥分发等。

6、梳理 ansible 不同主机组的系统环境、软件安装、相应配置文件

的变化,从而及时更新之前的 playbook 和 roles 等栈文件的更新修

正。

7、负责运维支撑服务 elk、zabbix 等服务的 ansible 批量部署、配

置分发、日志收集模板、监控脚本更新部署等。

项目十二:存储优化

改善服务器存储问题

需求: 减轻访问高峰阶段存储压力

职责:

1,Web 前端存储使用 NFS 主备结构

2,用户写入数据,如图片,附件等,存储到 NFS 主上面,用户的读

访问 NFS 备

3,NFS 主备,使用 rsync+inotify 进行数据同步

4,NFS 存储数据量不大,采用 sersync 把数据推送到 web 前端,尽量较少前端服务访问后端服务器的请求,减轻 NFS 存储压力

5,数据备份的安全有了保障,不用担心数据的丢失。

项目十三:医院综合服务集群

航天一院第三产业部–院综合服务集群

需求:

该项目主要实现的是航天一院内部服务平台搭建 目标是搭建一个安

全、高效、稳定服务器群集架构。提供航天各院的服务综合平台。

项目实施:

前段采用负载均衡搭配 Squid 集群、搭配硬件防火墙,隔离内网与外

网,并且能提供监控网络和记录传输信息的功能,加强局域网的安全

性等.实现前端调度服务器的高可用、中间 web 服务器的负载均衡、

后端数据库服务器的高可用、监控服务器监控集群中的每一台服务器

的私有数据和公有数据前端调度服务器采用的软件是 Keepalived 和

Nginx,中间 Web 服务器采用的软件是 Nginx,并发数高,而且相

对稳定 后端数据库服务器采用的是读写分离,写库 MySQL+MHA

双主互为主从模式。读从库使用负载均衡 LVS+Keepalived+MySQL ,

并使用Memcached缓存集群缓存从数据库.Web服务器采用Nginx

来搭建网站服务器,并结合 Inotify+Rsync 实现网站数据同步. 监控

服务器采用的是 Zabbix,监控各服务器的运行状态及服务状态。

职责:

本人在此项目中主要负责服务器服务平台的搭建,为了实现统一性,特编写了 shell 脚本,使得服务器部署更加标准化

项目十四: docker swarm 集群

微服务项目 docker swarm 集群的部署与应用

需求分析:

公司项目转为微服务架构开发,项目各功能点都拆分为微服务,因此

众多项目微服务的部署与通信采用单机 docker 容器管理,测试环境

下微服务可在同一台测试机部署,但对于线上则需要考虑到服务的稳

定高效及请求数量的支撑与处理,因为急需要一套可用的微服务编排

调度管理方案,考虑到运维成本及目前项目不多的特性,选用

docker-swarm 作为项目初期容器编排调度方案。

解决方案:

1、部署支撑项目初期的 docker-swarm 集群,采用 5 台服务器,一

台作为 swarm-manager,其余 4 台作为

swarm-worker 节点。

2、部署设计集群网络采用 flannel+etcd 作为集群跨主机网络。

3、编写项目所需的编排调度文件,采用 docker-stack 将相关的微服

务根据依赖性编排 service 进行批量部署

4 、为项目诸多微服务的部署上线设计 CICD 架 构

(gitlab+dockerharbor+jenkins+swarm-manager)完成代码在

测试集群及线上集群的自动化及半自动化集成交付及部署。

5、日常的集群维护及集群应用项目的维护。

项目十五:k8s 集群

需求分析:

随着 devops 的发展及完善,过去应用开发及部署应用的方式,是将

应用在一个使用操作系统软件包管理器的主机上。这样做的缺点是应

用程序的可执行文件、配置、库和生命周期互相影响,也会和操作系

统纠缠不清。为了支撑敏捷开发、精益开发的理念,公司采用微服务

架构开发项目,因此需要将诸多传统方式的项目转换为微服务架构,

需要一套强大的容器编排调度系统,故公司采用当下最青睐的

kubernetes 编排调度系统。

解决方案:

1、测试环境及生产环境都采用 k8s 集群作为应用编排调度部署系统。

2、测试环境采用 6 台云服务器搭建 k8s 测试集群(双 master、单

台 etcd、其余 node 节点)

3、设计部署集群的网络环境,采用 flannel 作为集群的跨主机网络。

4、生产环境采用 20 台云服务器搭建 k8s 生产集群(双 master、3

台台 etcd、其余 node 节点)

5、负责各项目相关微服务编排调度部署的不同资源文件编写和测试

使用。

6、负责梳理集群不同项目的配置管理、端口、持久化存储、负载均

衡域名等配置的标准化管理及资源文件编辑、管理。

7、负责集群日常的节点增减、各应用容器副本数量的管理及维护。

8、负责集群日志收集 ELK、集群监控 prometheus 的维护和管理。

项目十六:NFS 集群升级

NFS 集群升级改造

需求分析:

1、 原共享存储服务器 NFS 的方式、存在性能瓶颈和单点故障的问

2、 主 NFS 存储系统宕机后,报警管理员来人为手工根据同步的日志

记录选择最快的 NFS 存储系统改为主,方案简单可行,但是需要人工

处理.难免操作失误或者时间过长。

解决方案:

1、 使用分布式文件存储管理系统 MFS 替换 NFS

2、 目前 MFS 元数据服务器存在单点问题,因此我们通过 DRBD 提

供磁盘及时同步,通过 HeartBeat 提供 Failover,来达到高可用

3、采用 MFS+DRBD+Heartbeat 高可用服务解决方案,这个解决方

案可以有效解决主 MFS 存储系统单点的问题,当主 MFS 存储宕机

后,可以实现把主 MFS 存储系统从一个主节点切换到另外一个备节

点,而新的主 MFS 存储系统还会自动和所有其他的从 MFS 存储系

统进行同步,且新主 MFS 存储系统的数据和宕机瞬间的主 MFS 存

储系统几乎完全一致,这个切换过程完全是自动进行的,从而实现了

MFS 存储系统的热备方案. 快速故障恢复,提高业务可靠性. 职责 本

人在此项目中主要负责,项目现场协调,所有服务器服务平台的搭建,

编写了 shell 脚本,使得服务器部署更加标准化

项目十七:mysql 高可用

MySQL 集群读写分离及高可用方案

需求分析:

1、 新方案保证服务性能和 I/O 满足企业多台终端的快速响应需求。

2、 保证系统长期不间断的稳定运行。保证成本合理性。

3、 满足数据库系统的高可用性和可靠性。

解决方案:

1、 底层 5 台 MySQL 数据库,一主四从. 开启半同步复制.提高数

据安全

2、 使用中间件 Atlas 实现读写分离与读负载均衡,提高与程序端解

耦。

3、 在使用两台服务器搭建 LVS+Keepalived 对 Atlas 服务器做负

载均衡与高可用

4、 搭建一台主 MHA 服务器管理数据库主库热备问题.

5、 该方案极大减少服务器资源浪费,实现故障 30 秒切换,极大保

证数据库一致性 责任描述: 主要负责所有服务器服务平台的搭建,

方案设计,编写脚本。

项目十八:NFS+DRBD 高可用

NFS+DRBD+heartbeat 高可用解决方案

软件环境:Centos6.8

硬件环境:DELL R710项目描述:

刚进公司不久,后端的 NFS 服务器在网络请求的高峰期,偶尔会宕

机,使WEB服务器的挂载请求无法自动切换到备份服务器,导致 web

服务器无法正常使用,造成网络服务中止。公司领导为了避免以后出

现类似的情况要求我做一个解决方案。通过对 NFS 服务器 CPU 和内

存的负载情况进行观察,以及对 NFS 服务器之前的主要硬件的负载

数 据 进 行 查 询 , 并 进 行 仔 细 分 析 , 我 提 交 了 一 份 以

DRBD+heartbeat+NFS 的方案来解决现有问题,得到领导的批准由

我来实施这个方案。

职责:

1、负责项目的整体规划和部署;

2、负责 heartbeat 自动切换脚本的编写;

3、负责 NFS 服务搭架的主要框架的搭架;

4、通过对故障的模拟,和对元数据服务器、数据存储服务器运行数

据的观察,和之前的情况进行数据比较,形成报告;

5、项目实施报告的撰写。 后期改善: 通过配置多条独立的物理连

接,以避免 Heartbeat 通信线路本身存在的单点故障,尽量地减少

“脑裂”的发生机会。通过对 ha.cf 配置文件中,keepalive 等选项

的设置,来缩短主从服务器的切换时间。在 DRBD 中,对 replication

进程进行调整。处理 Master 端的坏块问题。

项目十九:移动端与 PC 分离部署

移动端部署调优及上线

运行环境:CentOS-6.6、DELL R730

主要功能:分离移动端与 PC 业务

运用技术:Nginx 七层负载、tomcat8+jdk1.8、MHA 实现 mysql

高可用(mysql–5.6.17)、 php-5.6.30、shell 脚本发送数据检测信息

技术要点:

利用 Nginx 七层调度实现 PC 端与移动端业务分离、动静分离 七层

调度+Keepalived 高可用方案 Nginx 整合淘宝健康检测模块 代码

读写分离+数据库 mha 成熟高可用方案 定时+脚本 mysql 数据备份

及检测、发送检测结果信息到管理员手机、web 服务优化,php 优

化,tomcat 优化

项目二十:squid 透明代理

squid 透明代理

1、系统环境:CentOS6.5

2、软件工具:squid-3.0

3、项目描述:

之前公司使用的是 SNAT 上网,造成员工在工作期间利用公司网络带

宽浏览与工作无 关的网站视频,导致工作效率降低;迅雷、P2P 等

应用的泛滥,导致网络拥堵,企业 网带宽资源紧张。

职责:a) 使用 squid 代理服务对公司员工的上网行为进行管控;

b) 拟定企业上网行为管控方案;

c) 实现对内网的安全防控功能,过滤恶意网页,防范恶意攻击;

d) 限制网络行为,对迅雷、P2P 等下载软件进行智能控制;

e) 对上网行为进行精细智能管理。

5、项目成果:

项目实施完毕后,员工工作效率明显提升,保障了企业网带宽资源。

项目二十一:网站访问优化

需求分析:用户投诉说网站访问不了或访问慢,由于公司发展过程初

期没有专门的运维人员,导致诸多问题引起网站访问速度较慢甚至无

法访问等问题,继续专门的运维人员查找并解决相关问题,因为我负

责了网站访问速度优化项目的整体分析及提出解决方案。

解决方案:

出现访问网站慢的原因:

(1)如果是某个地区访问慢,如果有 cdn 的话,可能是那个地区的

cdn 节点出现问题。

(2)网站服务器出口带宽占满了

(3)服务器负载大

(4)网站代码质量问题、可以通过浏览器访问按 F12 查看哪些元素

加载慢,或者代码中 SQL 语句未优化的问题

(5)数据库服务器瓶颈优化办法:

(1)CDN 的问题,联系厂商

(2)流量带宽问题:花钱买带宽

(3)服务器负载问题:通过 top 等命令去查看占用资源较大的进程,

具体进程具体分析

(4)代码问题:这个就需要跟开发协商处理

(5)数据库瓶颈:创建索引,分库分表,读写分离

(6)整体架构优化:水平扩容,添加负载服务器,使用缓存服务器

(如 redis 等),集群高可用等

项目二十二: CICD 集成部署

需求分析:随着公司业务发展,拥有前端、服务器、后台等多个项目,

随着研发人员增加,敏捷高效开发的推进,运维继续优化代码的持续

集成及部署方案,以便在测试环境和生产环境提供高效的研发-->部

署-->测试-->生产过程流水线,因此需要梳理及完善公司代码集成

及发布流程,实现标准化的运维 CICD 系统。

解决方案:

1 、 工 具 目 前 主 流 的 devops 选 择 自 动 化 运 维 工 具 链

git+gitlab+jenkins+ansible+shell+python+企业微信/钉钉 api

2、为公司研发、测试、运维人员提供分布式代码工具 git+gitlab,依

据项目、需求提供多个代码库,并完成相应代码仓库的权限分配,支

撑各项目相关人员的代码独立分支开发的需求。3、完成测试环境 jenkins 系统多个项目完全自动化拉取代码并部署

代码至测试服务器,实现了持续集成交付、持续部署的高效流水线,

为研发、测试人员的工作流提供有力保障。

4、完成生产环境 jenkins 系统多个项目半自动化(标准化上线,规

定时间、运维触发)拉取测试并集成完整的项目代码并部署至相应的

项目服务器,完成生产环境的小步快跑的迭代更新需求,为生产环境

提供了灵活高效安全的服务客户的有力保障。

5、结合钉钉、企业微信等 api 接口编写构建触发通知、完成及失败

通知等脚本、实现jenkins构建及时通知相关人员追踪构建部署过程,

实现责任到人的及时跟踪,是项目 CICD 过程更加高效。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。