运维工程师 主要是做什么的?

在软件开发领域当中,前端、后端开发我们一般比较熟,但运维工程师是做什么的,很多人都不太了解。真的是只是维护工作吗?今天我们就介绍一下 运维工程师 到底是做什么呢

  • 随时解决报警故障、业务程序更新
  • 编写一些脚本,监控或完成其他可自动完成功能、运维架构完善
  • 部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范
  • 打杂,如调交换机,装系统,部署新环境等。

总结起来就是保障业务长期稳定运行(如网站服务器、游戏服务器等),同时保障数据安全可靠(如用户名密码、游戏数据、博客文章、交易数据等)

 

一、保障业务长期稳定运行

出一点点差错,用户就要投诉了。

 

1、业务跑在什么上面?

网站服务器一般是apache,nginx,tomcat等。但是真正跑通流程还需要Mysql数据库来存储用户密码及其它。很多程序都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)环境部署是必须掌握的技能。

 

2、业务出了问题怎么及时知道?

这就需要监控软件来邮件或短信来通知你,常用的有zabbix,nagios等。报警发邮件,也得一个邮件程序呀,sendmail或postfix。


3、在家里收到报警,但服务器是内网IP,怎么也得解决问题吧?

在公司搭建openvpn或pptp或openswan,在家里通过VPN拨入内网,24小时解决问题…唉,半夜爬起来解决问题也没工资。

 

二、保障数据安全可靠

出一点点差错,领导要找你喝茶了。


1、有时需要手动改数据库内容?

所以要会基本的Mysql数据库增删查改命令。


2、万一数据库服务器硬件坏了怎么办?

需要有个备库以备不时之需,所以需要Mysql主从复制。


3、数据库要还原怎么办?

所以需要在crond中定期全备Mysql数据,以便还原使用。如果要还原到指定时间点,还要学会Mysql增量备份与恢复。


4、如果是用户上传的图片或文件服务器坏了怎么办?

定时备份可能还不够,需要使用rsync加inotify来实时备份。以便任一时刻主服务器坏掉,也能保障所有图片有备份可以用来恢复。


5、小心黑客,要增加服务器安全性?

ssh轻易不能让外人访问,那么就设置只允许公司的IP或跳板机IP访问,这些都通过iptables来控制。


三、大性能

1、越来越多的用户来访问我们的网站,一台web服务器抗不住了怎么办?
那就需要多台web服务器来负担,但多台服务器之间怎么进行负载均衡呢,这就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。

 

2、用户注册发表的文章与评论太多,一台数据库抗不住了怎么办?
数据库压力分为读和写,如果写抗不住,需要进行分表分库到多个服务器上。如果是读压力不够了,可以使用mysql-proxy读写分离,
来分担读的压力。更简单方便的方法,把数据库里的内容放到内存上,这就用上memcache或redis了。

 

3、N多用户上传下载文件,磁盘抗不住了怎么办?
把多块磁盘做成raid,或者使用分布式存储文件系统如MFS,GlusterFS来提高磁盘的读写能力。

 

4、网站上好多图片,总有用户反应网站加载太慢,怎么办?
这时可以把网站上的图片通过squid或varnish缓存到网站前端,尽可能的增加访问速度,当然,最好是购买商业的CDN加速。

 

5、运营商是个大难题,他们之间的带宽好像很小,联通IP访问我电信网站怎么就这么慢呢?
这时可以使用bind自建一个DNS服务器,把网站的DNS记录指向自建DNS服务器上,配置好解析规则,以后联通IP解析到联通网站上,
电信IP解析到电信网站上,体验就会好很多啦。


四、自动化

终极目标:跑死机器,闲死人。
1、公司新买100台服务器,公司竟然就1个移动光驱,这装系统得到什么时候?
使用kickstart或cobbler来网络远程自动安装系统吧。

2、每次装完机要优化很多内容,什么文件描述符、端口、软件安装啊,手动操作不累死去?
赶紧学会shell,将解放非常多的工作量。

3、系统装完后登陆要输入密码,这么多台啊?
使用expect吧,自动读取提示来输入密码,并执行命令。

4、要批量把新代码发布到线上服务器,怎么办?
使用saltstack或puppet或ansible吧,绝对爽歪歪。

 

五、其他

1、搭整套测试环境需要5台服务器,但公司穷的只有一台空闲服务器?
学会xen或kvm或docker吧,虚拟出多台服务器,就能解决资源问题了。特别是docker,强烈推荐,以后某个研发人员让你部署一套新环境,分分钟帮他解决。

2、研发人员的代码控制,权限控制,总要运维人员管呀?
svn或git,这个是肯定要有的。

 

 

 

 

 

  • 56
    点赞
  • 330
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 运维工程师主要职责是维护和管理计算机系统和网络的运行。这包括安装、配置、升级、维护和监控系统软件和硬件。运维工程师还负责诊断和解决系统故障,以及制定和执行灾难恢复计划。此外,运维工程师还负责管理系统和网络的安全性,并协助开发人员测试新的软件和系统。 ### 回答2: 运维工程师主要职责是确保计算机系统、网络和服务器的正常运行。他们负责监控和维护服务器、网络设备和数据库,以确保系统的稳定性和可靠性。具体职责包括以下几个方面: 1. 系统监控与维护:运维工程师负责定期监控服务器和网络设备的运行状态,确保系统正常工作。他们需要检查硬件设备是否正常运行,如处理器、存储设备等,以及确保软件更新和安装的顺利进行。 2. 故障排除与修复:当系统出现故障时,运维工程师需要进行快速诊断和修复。他们需要分析问题的根本原因,并采取适当的措施解决问题,以最小化系统停机时间和数据丢失。 3. 安全防护与风险管理:运维工程师需要制定和实施相应的安全策略,确保系统的安全性和可靠性。他们需要进行系统的漏洞扫描、安全漏洞修复、日志监控等,以保护系统免受潜在的威胁和攻击。 4. 基础设施规划与维护:运维工程师需要参与基础设施的规划和部署工作,包括服务器、网络设备等的选型和配置。同时,他们还需要负责设备的维护和升级工作,确保系统的整体性能和可扩展性。 5. 自动化与优化:为提高工作效率,运维工程师需要通过自动化工具和脚本,简化和优化系统的管理和维护。他们可以开发脚本来自动化重复性的任务,并进行性能优化,以提高系统的响应速度和稳定性。 总的来说,运维工程师的职责是保证计算机系统的稳定运行,并及时有效地解决可能出现的问题,以确保业务的连续性和安全性。他们需要具备扎实的技术知识和敏锐的问题解决能力,同时还需要具备团队合作和沟通能力,以便与其他团队成员合作完成任务。 ### 回答3: 运维工程师(DevOps Engineer)是负责软件开发和运维结合的岗位,主要职责包括以下几个方面: 1. 系统维护和监控:运维工程师需要负责维护和监控软件系统的正常运行情况。他们负责安装、配置和管理生产环境中的服务器、存储设备、网络设备等,并利用监控系统实时跟踪系统的运行状态,及时发现并解决潜在的问题。 2. 自动化运维运维工程师会使用各种自动化工具和脚本,简化和自动化系统管理和维护过程。他们通过编写脚本、开发自动化工具,来自动执行配置管理、日志收集、故障恢复、备份等运维任务,提高工作效率并降低人为错误。 3. 系统部署和发布:运维工程师负责系统的部署和发布工作。他们会与开发团队合作,制定和执行系统的部署计划,并确保系统在不同环境下的平稳发布。运维工程师还会关注系统的可伸缩性和高可用性,保障系统的稳定性和可靠性。 4. 安全与风险管理:运维工程师需要定期检查和更新系统的安全策略和措施,确保系统的安全性。他们会监测系统的漏洞,对系统进行漏洞扫描、加固和修复,及时响应并处理安全事件,降低系统面临的风险。 5. 故障排除和问题解决:当系统出现故障时,运维工程师需要迅速定位和解决问题,确保系统能够及时恢复正常运行。他们需要分析日志和监控数据,调试软件配置和代码,协调相关团队共同解决问题,并提供有效的解决方案。 综上所述,运维工程师主要职责是负责系统的运行和维护,通过自动化手段提高工作效率,确保系统的安全性和稳定性,并在故障发生时快速排除问题并恢复系统的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值