无论做什么运维,运维工程师最基本的职责都是负责服务的稳定性,确保服务可以7 * 24H不间断地为用户提供服务在此之上运维工程师的主要工作职责如下:
质量:保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。
效率:用自动化的工具/平台提升软 在研发生命周期中的工程效率。
成本:通过技术手段优化服务架构,性能调优;通过资源优化组合降低成本,提升ROI。
从产品的生命周期来看:
1.产品发布前:负责参与并审核架构设计的合理性和可运维性,以确保在产品发布之后能高效稳定的运行
2。产品发布阶段:负责用自动化的技术或者平台确保产品可以高效的发布上线,之后可以快速稳定迭代。
3.产品运行维护阶段:负责保障产品7 * 24H稳定运行,在此期间对出现的各种问题可以快速定位并解决;在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性
1.1 新服务器上线搭建系统环境
1,根据现有结构部署工具(PXE+kickstart)
2,结合应用系统需求定制部署模版
3,制作系统优化等一键执行脚本
4,自动化部署实施
5,根据定制的优化内容对自动化部署效果进行检验
1.2 新服务器上线搭建软件环境
1,在新批量部署的服务器上部署LNMP环境;
2,对批量化部署的环境进行效果检验;
3,编制Nginx配置文件并批量化部署;
4,根据需求做Nginx服务相关的优化(expires/gizp等)
1.3 web服务器架构调整(从单点到集群的设计)
需求:
解决网站web服务器单点故障的问题
职责:
1,研究多种负载均衡方案
主要针对lvs+keepalived及nginx+keepalived进行研究
2,编写新架构方案实施项目书与实施日程
3,新系统部署与日常维护
把公司原来的多数单点服务器变成了集群,提升了网站的稳定性与高并发的应用场景
1.4 服务器用户权限管理改造方案与实施项目
需求:
解决公司root权限泛滥问题
职责:
1,提出权限整改解决方案,改进公司root权限泛滥的现状
2,召集大家开会商讨并确定方案后推进实施
3,实施后使得公司的权限管理更加清晰了(总结维护),从根本上降低了内部操作等不规范及安全隐患的发生。
问题1:你们公司是如何来管理用户权限的?
答:我们是通过sudo来管理权限的,不论是运维还是开发,一般都不会给root权限,只有核心级开发或者研发总监或以上级别的我们才可能给相应服务器级别的权限;对核心运维或者运维总监才会给root权限
问题2:在规划服务器的时候,在服务器上都跑几个普通用户?
答:我们的普通用户是根据项目来的,在不同公司它的项目产品线不一样。我们公司只有十几个产品线,我们为每一个项目建立一个普通用户,因此不论nginx还是tomcat都是跑在普通用户下。
问题3:那一些公用服务呢?比如memcached或者redis。
答:这些公共服务也可以跑在普通用户下,总的来说是这样的,我对运维的理解是,运维做运维的事情,开发做开发的事情。运维负责网络系统,只要系统没有故障,只要网络没有故障,只要系统资源还够用,那么我们运维的职责就到位了。而我们公司的理念是项目负责制,也就是说每个项目的责任人是开发,我们运维大概占30%-40%的责任。我们的开发占60%的责任。当进程上线的时候,这个服务是由普通用户跑的。它的每个站点目录都是普通用户的权限,也就是700的权限普通用户,这个是最安全的。无论是项目的启动,停止,以及代码上线,日志收集,日志分析都是通过我们进程跑的普通用户实现的。我们在管理这个项目的时候,我们可以把开发的用户加到这个项目组里面,这样负责相应项目的开发人员就有对应项目的所有权限。
1.5 服务器日志审计项目提出与实施
1,权限控制后进一步实施对所有用户日志记录方案
2,通过sudo和rsyslog配合实现对所有用户进行日志审计并将记录集中管理
3,实施后让所有运维和开发的所有执行的命令都有记录可查,杜绝了内部人员的操作安全隐患
1.6 全网服务器数据批量分发与批量管理
需求:
公司服务器逐渐增多,因此管理起来很麻烦,于是提出解决批量分发管理解决方案,进行全网服务器数据分发与管理
职责:
1,针对ansible分发工具及ssh key+rsync两套分发管理方案研究,最终选择简单易于维护并且强大的ssh key+rsync方案
2,找一台IDC内网服务器,作为分发机器,对固定普通用户做sshkey认证(注意不是root),需要root权限,通过sudo来控制,减少安全隐患。
3,对于分发机进行安全配置,例如,去掉外部IP,开启防火墙。实施完毕,运维管理的效率提高了很多,因此得到了公司的嘉奖。
1.7 全网服务器数据备份方案提出及负责实施
需求:
为公司数据做一个完整的备份系统
职责:
1,针对公司重要数据备份混乱状态和领导提出备份全网数据解决方案
2,通过本地打包备份,然后rsync结合inotify应用把全网数据统一备份到一个固定存储服务器,然后在存储服务器上通过脚本检查并报警管理员备份结果
3,定期将IDC机房的数据备份公司的内部服务器,防止地震火灾等问题导致的数据丢失。
1.8 MySQL数据库实现主从同步,及完整备份解决方案
1,在进入公司之前前任运维丢失数据,因此老大很重视数据安全这方面
2,我提出并上线了MySQL数据库备份方案和MySQL架构方案
3,方案主要是在从库上开启binlog及按天分库分表全备,推送到备份服务器
4,将备份的数据定期恢复到测试库给开发使用
5,制定
1日常运维 1.1服务 级别 1、7*24*4 (工作时间4小时响应,非工作时间4小时响应),具体为: 服务期间,对于需要现场维修的问题,工程师将在记录了服务请求后的4小时内到达 现场,到达现场前电话技术支持; 备件到达现场时间:对于影响设备运行的部件,在判明故障后4小
1日常运维 1.1服务 级别 1、7*24*4 (工作时间4小时响应,非工作时间4小时响应),具体为: 服务期间,对于需要现场维修的问题,工程师将在记录了服务请求后的4小时内到达 现场,到达现场前电话技术支持; 备件到达现场时间:对于影响设备运行的部件,在判明故障后4小