共计 2250 个字符,预计需要花费 6 分钟才能阅读完成。
今天马哥教育要跟大家分享的文章是关于什么是 Linux 运维? 运维到底是做什么的?想要Linux 入门 和Linux 学习 的小伙伴一定要好好看一下!希望能够对大家有所帮助。
总结两句话:
1、保障业务长期稳定运行(如网站服务器、游戏服务器等)。
2、保障数据安全可靠(如用户名密码、游戏数据、博客文章、交易数据等)。
由这两句话推演运维工程师要学些什么?
一、保障业务长期稳定运行
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,这个是肯定要有的。
结尾
现在我们在回过头来思考,运维工程师平时干些啥呢?
1、随时解决报警故障。
2、业务程序更新。
3、编写一些脚本,监控或完成其他可自动完成功能。
4、运维架构完善,部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范。
5、打杂,如调交换机,装系统,部署新环境等。
以上就是马哥教育今天为大家分享的关于什么是 Linux 运维? 运维到底是做什么的? 的文章,希望本篇文章能够对想要Linux 学习 和从事运维工作的小伙伴们有所帮助。想要了解更多运维相关知识记得关注马哥教育官网。最后祝愿小伙伴们工作顺利,成为一名优秀的运维人员。
声明:文章来源于网络,如有侵权请联系删除!