随着自身技术的积累,运维的薪资在突飞猛涨。这时,你已经可以在公司或某项目里独当一面(du zi bei guo)。要达到这个阶段的要求,你需要掌握这些技能:
1.排错和调优
上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。
相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, …
2.备份
之前的Gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。
相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, …
3.高可用集群
没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。
出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。
相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, …
4.监控和警报
时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。
相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, …
阶段三(20-45k)Linux运维真的为所欲为
一张图概括
招聘岗位和要求
/* 职位一 【岗位职责】: 1、制定和优化运维解决方案,包括但不限于柔性容灾、智能调度、弹性扩容与防攻击; 2、推动及开发高效的自动化运维、管理工具,提升运维工作效率; 3、探索、研究新的运维技术方向。 【岗位要求】: 1、本科及以上学历,3年以上的Linux系统使用和管理经验; 2、熟悉 Linux 操作系统原理、TCP/IP 以及常用RPC协议; 3、熟悉脚本语言Bash/Python等脚本语言的一种并有相关开发经验; 4、熟悉Docker、Kubernetes等开源软件; 5、熟悉常见应用配置及优化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等; 6、熟悉常用的监控系统,如 Zabbix、Nagios 和 Ganglia 等; 7、熟悉systemtap、perf、oprofile 等分析调试工具;很强的Troubleshooting能力、且能够推动业务问题改善和解决; 8、具有良好的的沟通、执行能力和强烈的责任心; 9、耐心、细致、学习能力强,较强的工作计划; 10、在开源社群活跃并有积极贡献者优先, ( 22-40K —— 陌陌 ) 职位二 【 工作职责 】 负责京东内部信息安全平台的基础运维工作,处理值班问题,确保系统服务稳定性; 负责运维自动化/标准化方案设计,自动化工具及平台研发,提升运维效率; 负责生产、测试、灰度多套环境的部署和维护,配合研发、测试团队进行应用部署; 制定信息安全集群监控和报警方案,处理报警问题; 定位与分析运维问题,给出解决方案。 【 职位要求 】 计算机相关专业,本科及以上学历,至少2年以上的大规模系统运维经验,2年以上运维开发经验,有deveops开发经验或有中大型互联网公司运维自动化经验者优先; 具备openstack或docker集群运维经验; 掌握shell/python/perl/php其中一种脚本语言,有Python实际项目经验,熟练掌握Django、Tornado等任一Web开发框架者优先; 掌握互联网常用的中间件维护、管理,例如redis、mongodb、kafka、memcached、dubbo等; 掌握tomcat、nginx等常见应用的搭建、配置、优化; 掌握zabbix、nagios、elk等系统的搭建、配置、优化; 掌握一种大规模自动化运维工具(saltstack、ansible、puppet),有二次开发经验优先; 熟悉linux/uinx,windows操作系统基础原理及常用操作; 熟悉常见运维配置及优化,如Svn/git/Ansible/Nginx/Tomcat/salt等; 熟悉TCP/IP、HTTP等协议,有良好的网络、数据传输、安全、计算机体系结构方面的知识; 认同DevOps文化,重视自动化方式处理各种问题; 具备良好的项目规划、推进能力; 具有良好的沟通协调能力、较强的团队合作精神、优秀的执行能力; 有很强的分析和解决问题的能力。 ( 30 - 50K 京东 ) */技术关键词
自动化、DevOps、云服务、Docker、kubernetes、安全……