运维工程师干些什么
总结两句话
2、保障数据安全可靠(如用户名密码、游戏数据、博客文章、交易数据等等)。
由这两句话推演运维工程师要学些什么
一、保障业务长期稳定运行
出一点点差错,用户就要投诉了。
1、业务跑在什么上面?
网站服务器一般是apache,nginx,tomcat等。但是真正跑通流程还需要Mysql数据库来存储用户密码及其它。很多程序都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)环境部署是必须掌握的技能。
2、业务出了问题怎么及时知道?
这就需要监控软件来邮件或短信来通知你,常用的有zabbix,nagios等。报警发邮件,也得一个邮件程序呀,sendmail或postfix。
3、在家里收到报警,但服务器是内网IP,怎么也得解决问题吧?
在公司搭建open或pptp或openswan,在家里通过拨入内网,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,这个是肯定要有的。
结尾:
现在我们在回过头来思考,运维工程师平时干些啥呢?
1、随时解决报警故障。
2、业务程序更新。
3、编写一些脚本,监控或完成其他可自动完成功能。
4、运维架构完善,部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范。
5、打杂,如调交换机,装系统,部署新环境等。
1、安装和设置防火墙
现在有许多基于硬件或软件的防火墙,许多安全厂商也都相继推出了相关的产品。要保证服务器的安全,安装防火墙非常必要。防火墙对于非法访问具有很好的预防作用,但是安装了防火墙并不等于服务器安全了。新手可以用服务器在iis7远程桌面下测试。在安装防火墙之后,你需要根据自身的网络环境,对防火墙进行适当的配置以达到最好的防护效果。
2、定期对服务器进行备份
为防止不能预料的系统故障或用户不小心的非法 *** 作导致数据丢失,必须对系统进行安全备份。除了对全系统进行每月一次的备份外,还应对修改过的数据进行每周一次的备份。同时,应该将修改过的重要系统文件存放在不同服务器上,以便出现系统崩溃时,可以及时地将系统恢复到正常状态。
3、及时安装系统补丁
不论是Windows还是Linux,任何大家 *** 作系统都有漏洞,及时的打上补丁避免漏洞被蓄意攻击利用,是服务器安全最重要的保证之一。
4、账号和密码保护
账号和密码保护可以说是服务器系统的第一道防线,目前网上大部分对服务器系统的攻击都是从截获或猜测密码开始。一旦黑客进入了系统,那么前面的防卫措施几乎就失去了作用,所以对服务器系统管理员的账号和密码进行管理是保证系统安全非常重要的措施。
5、安装网络杀毒软件
如今在互联网上,病毒的传播非常猖獗,因此,在网络服务器上安装网络版的杀毒软件来控制病毒传播显得尤为重要。同时,在使用杀毒软件时,必须要定期或及时升级杀毒软件,坚持每天自动更新病毒库。
6、监测系统日志
运行系统日志程序,系统会记录下所有用户使用系统的情形,包括最近登录时间、使用的账号、进行的活动等。日志程序会定期生成报表,通过对报表进行分析,你可以知道是否有异常现象。
你好,很高兴回答你这个问题。
作为一名运维工程师来回答你这个问题。
1带宽资源
用户通过公网ip访问你提供的服务,因此我们需要通过IDC机房或运营商购买公网ip,根据实际情况可以购买单个ip或多个ip,以适应业务需求或主备线路切换等。
而且公网ip需要合适的带宽,保证流量需求。
2域名资源
由于公网ip比较难记忆,因此需要通过域名解析的形式便于用户访问。如baidu、163等,你需要想一个比较容易记忆的域名解析到公网ip上。当然还需要对域名和网站进行备案,否则你的站点有可能被封。
3服务器资源
首先服务器需要一个温度适宜、电源稳定等的运行环境,因此一般托管在IDC机房。如果环境解决了,得根据实际情况考虑服务器的扩容方案了。随着业务的不断增多,还得考虑系统架构的转变了,这可能需要专业的人员了。
以上是BS架构一般需要考虑的基础设施资源,只有这些资源满足的前提下,我们才能正常提供站点服务。不过,当前的云厂商一般都提供一站式服务,让我们将更多的精力放在业务上。
希望我的回答能够对你有帮助。
运维一般是指对大型组织已经建立好的网络软硬件的维护,其中传统的运维是指信息技术运维(IT运维)。随着信息化进程的推进,运维管理将覆盖对整个组织运行,进行支持的管理信息系统涵盖的所有内容,除了传统的IT运维,还拓展了业务运维和日常管理运维。其参与的对象也从IT部门和人员,拓展到组织的管理层和各部门,及其相关的业务骨干。1 IT运维
IT运维是IT管理的核心和重点部分,也是内容最多、最繁杂的部分,该过程主要用于IT部门内部日常运营管理,其涉及的对象分成两大部分,即IT业务系统和运维人员;业务运维是业务需求和用户体验的核心和重点部分,更是需要对内容繁杂、持续变化、支持不同的业务需求,加以描述、加载和维护的过程,其涉及的对象包括2类人员,一类是提供业务支持的技术人员,另一类是整个组织的管理层和业务骨干,随着业务运维环境和工具的能力提升,功能完善、体验优化,技术人员将逐步退出这个领域;日常管理运维则是对IT运维和业务运维需求、过程、结果的管控,以及对整个管理信息系统运行状态的管控,从而实现针对应用变化的记录和跟踪、针对地域不同的变更和跟踪、预测环境和应用的风险和防范管理等等,其涉及的对象主要是运维管理部门的管理人员和参与人员。
2 业务运维
包含对企业自身核心业务系统运行情况的监控与管理,对于业务的管理,主要关注该业务系统的CSF(关键成功因素Critical Success Factors)和KPI(关键绩效指标Key Performance Indicators)。
3 日常管理运维
该部分主要用于规范和明确运维人员的岗位职责和工作安排、提供绩效考核量化依据、提供解决经验与知识的积累与共享手段IT运行维护管理的每一个子系统中都包含着十分丰富的内容,实现完善的IT运维管理是企业提高经营水平和服务水平的关键。运行/维护阶段与服务/支持阶段的分界线为前者是面向 IT部门内部的管理,而后者是面向业务部门、企业中的其它人员或直接面向客户。
参考资料:
运维工程师的工作强度是不是比开发工程师的工作强度低一些
工作强度低不低是看各个公司的,在A公司运维的强度非常高,基本都是晚上回去还要加班做一些事情,主要原因是人比较少;而B公司的运维强度和人均的负荷成正比,这个我虽然为B服务过(以前我在一家B的供应商呆过,去过B做过一段时间),但是现在B怎么样我不太清楚;
2运维工程师工作的技术含量会不会低一些 所以压力小一些
– 运维的工作性质主要还是维持运行的平稳和高效,工作主要有安装调试软硬件,根据不同开发项目配置服务器软件,监控等事情;相对开发来说更加偏向 *** 作系统或数据库(这是两个方向,一般是分开招人的);而开发的偏向于开发软件和一些中间件,数据库和系统一般就由运维的人把关;
aDBA偏向软件,而OS管理员和network(比如cisco)管理员偏向软硬件结合,还有一种人就是纯粹玩硬件的(安装服务器硬件、机柜什么的);
b至于说技术含量,我个人认为越集成的东西管理的人 *** 心就越少,而每个不同岗位的技术没有什么可比性,关键看你个人的性格;
c 相对开发,运维的经验学习成本是比较高的,就是说你不在一定的实用环境下是没法学会真本事的,而开发你坐在家里就可以摸索一个大概出来;而运维的知识更新的速度相对慢,10年前的DBA知识更新可能只有50%,而他本人会非常值钱,而2年前java的一些内容可能都没有发明出来;除非你在开发做到管理职位,否则纯技术开发学习更新的代价会非常高;反过来说:技术开发适合比较喜欢新鲜、喜欢创新的人,而运维适合循规蹈矩比较踏实的人;
3在B,运维工程师的薪水只有开发的2/3左右你们公司也是一样吗
–我个人认为:公司给不同position的薪水肯定是和他预估这个职位重要性和工作强度成正比的,但和未来发展是否正比就不得而知了,这在B内部是有可比性的,至于A如何,我不太清楚,应该相差不大,毕竟A的运维已经是全球领先的,而且人数非常少;
4运维工程师的发展前景怎么样,会不会以后的发展空间比较小
– 所谓发展空间是要结合你个人的性格,资深DBA之类的人在地球上还是很稀缺的,我知道ebay china operating center的DBA有开宝马上班的,而且运维不是吃青春饭,越老越吃香,可以说是个平滑的上升直线,而开发如果你只是一个执行者和coder,恐怕就是一个开始猛涨后面猛跌的曲线,毕竟开发知识代谢成本太高,过了30可能就会走下坡路。1普通运维(服务器、存储、网络管理等)的基础上,加强了对具体的软件产品的了解,能与研发工程师一起进行软硬件部署架构的设计、性能测试、产品部署上线、平时产品线上的故障监测和侦错等工作。
2所以除了基本的服务器、数据库 *** 作能力之外,还需要了解一些软件设计、性能测试优化的知识,如果有相关行业领域里的知识和脚本编写能力就更好了。
3通过监控和侦错保证产品的稳定性,降低故障发生率,进而提高产品的运维效率,降低运维的支出,这些可以看作考核应用运维的几个方面。1 基础理论知识;
2 基础命令(系统命令、目录管理、用户管理、文件权限、磁盘管理、资源查看等等常见 *** 作);
3 文本高效处理(vi、vim、awk、grep、find、sed等);
4 bash shell脚本(可以边工作边学习,使用shell编写简单的代替重复性 *** 作的脚本);
5 进程调度,内存管理,文件系统,外设管理等,要熟练使用相关工具,如top iotop iftop iostat vmstatss等,并且最好了解其原理;
1 TCP/IP协议、DNS服务、CDN原理、iproute常见的网络客户端工具(ping、wget、ftp);
2 crontab计划任务;
3 ps、top、htop、vmstat、lsof等命令;
4 tcp,>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)