写代码写了10多年, 从小公司到大公司, 前端, 后端, 数据库, 运维什么都做, 最后还是专职做运维了.
整理下运维的一些技能, 部分是网上资料并整理.
Linux基础
包括对Linux整体的理解/使用和基本命令:
入门Linux:鸟哥的Linux私房菜.基础学习篇(第三版)
熟悉至少一个内置编辑器: vi, vim, nano
至少熟悉一个发行版(或系列),建议作为服务器常用的如Centos(推荐!! 一直在用, 非常好), Debian, Ubuntu,可以了解多个常用发行版
运维的命令
可以对着图对学习了解这些命令. 当然不用全部都学, 遇到一个问题就百度Google再自己整理.
基础服务:
Nginx/Apache
Mysql/Mongodb/Redis/Memcached
Tomcat
LAMP/LNMP
FTP
DNS
SAMBA
EMAIL
NTP
DHCP
...
其中, Nginx(Apache可以绕过), Mysql, LNMP最好自己动手搭建, 并整理
安全
防火墙配置,如 iptables, ipset
脚本
必备:Shell (初级)
额外:Python,Perl... (初中级)
运维平台工具 (中级)
Nagios
Puppet
Zabbix
Cacti
SaltStack
....
可以选择性的折腾下,因为这个涉及到业务,没有实际环境,很难去理解他们的功能和特点。
(中级)
网络 (中高级)
网络是非常重要的一块把《TCP/IP协议详解》多看几遍,理解。
熟练使用tcpdump等抓包工具
底层 (大神级)
Linux C,内核
其它: 素养/处理方式
除了技能,我觉得素养(态度)也可以谈谈
安全
运维人员的权限很大,所以一定要保证帐号/私钥的安全。
最好使用加密工具存储。比如truecrypt,1password
基于本地存储。切勿用网盘,也不建议用lastpass等
ssh私钥添加密码
以上任何一点都很重要,否则弄丢了,风险会非常大。
责任心
遇到报警,第一时间处理,而不要等着他人去处理
如果无法处理,应该第一时间让同事协助帮忙,而不要禁止报警,让问题掩盖
细心
你的任何一个操作,都可能造成系统的损坏、业务出问题。所以敲命令时一定要细心、再三确认。你敲的再快,也就节省那么一点时间,出了问题才是大事。
推进/改善
如果代码有问题,导致系统开销很大,比如负载,io等。应该第一时间和开发部门确认,要求优化代码。
进取心/不断学习
运维的知识范围很广,要不断学习。遇到问题,做好分析记录,事后还可以在部门内分享交流。
一定要整理分析, 好记性不如烂笔头!!!! 没有谁能一步登天, 牛人都是从1+1开始学的, 为什么有的人会成为牛人, 定期整理分析是必不可少的. 没有整理就不能成为自己的知识.
好记性不如烂笔头
推荐一定要整理自己的知识, 形成自己的一套知识体系! 所以笔记工具必不可少. 我曾经看到过一个人有上万的笔记, 但每次遇到问题还是百度, 百度后看到之后添加到笔记中, 结果之前添加过了. 这绝对是在做无用功, 所谓书越读越薄, 是建立在定期整理自己的知识之上的. 不然你再多的笔记都是无用!!
Evernote, 老牌
Leanote, 有Linux客户端, 支持代码高亮 (推荐)
为知
团队知识库
运维不是一个人的事, 是一个团队的事, 我曾经管理了10个人运维团队, 你放心把运维的事交给他们? 所以, 你的知识必须要转化成他们的知识, 一定要建立一个团队的知识库, 而不仅仅是自己的知识库.
以下是构建知识库的工具:
Confluence, 功能全
TeaKKi, 实时协作, 轻量好用(代码高亮), 后起新秀 (推荐)