运维开发工程师的必备技能总结
运维开发工程师的必备技能总结
一个好的运维需要懂开发,这样才能迅速判定是运维环境的问题还是开发代码的问题,进而加速自己的运维排查速度。而一个好的开发也需要懂运维,这样能迅速了解到出现问题的时候,是否为运维环境的问题,进而加速自己的开发速度。
在某招聘网站上面,我们随意挑选一个运维自动化工程师的岗位需求,可以看出运维开发工程师的技术广度,网络、云、编程、分布式存储、Linux、编程语言等均需要有所涉猎。
我们再来看看,一个运维人员需要点满的“技能点”:
自动化运维开发的目标就是提高运维效率,节约成本,减少工作量,需要懂一门开发语言,用学会的开发语言开发运维的软件和工具帮你更好的做运维,也能帮其他运维开发快速判定问题,完成运维服务的稳定以及产品的迭代。
所以,一个自动化运维开发工程师如何做到“合格”?你需要:
(1) 保证应用及服务的稳定性,是基本职责所在。
(2) 不断提升应用的可靠性、安全性。
(3) 对所有应用和服务进行监控,避免监控死角,做到未雨绸缪。
(4) 尽可能通过创新思维解决效率问题,释放双手。
(5) 做到有计划,善于思考,善于沉淀。在工作中积极积累经验,避免重复性犯错,实现工作标准化。
(6) 谨慎仔细,滴水不漏。
运维开发的工作比较杂乱,按层次来学习的话,自动化运维开发的技能掌握程度,本质上就是最简单的运维服务化—运维平台工具化—标准自动化学习的推进,通过逐步学习,了解更深的层次的架构。那么如何学习?
首先,在运维服务化的基础上需要掌握以下内容:
语言水平: 懂英文(即使不懂,也能通过经验快速判断)
机房技术: 机房管理、服务器类型、硬件认识
操作系统技术: CPU管理、虚拟内存、内存管理、I/O算法、I/O网络、进程管理
服务器技术: Unix/Linux/Windows Server(含AD、Mail、FTP、HTTP、权限控制、磁盘管理、LNMP、WSUS、LVS/Haproxy负载均衡)等基础、性能调优
网络技术: DNS、DHCP、交换机、抓包、路由器、防火墙、VPN、安全设备、负载均衡
数据库技术: MYSQL、Redis、Mongodb、inflxudb、Oracle、SQL Server
虚拟化技术: VMware虚拟化、Docke+k8s容器化、KVM
客户端技术: 开发者调试工具、Cookie作用域、缓存、HTTP协议、前端基础(HTML、CSS、JS)
分布式技术: rabbitmq、kafka、分布式存储
安全技术: 防火墙、WAF
云计算技术: 混合云、公有云、私有云
架构层面: 高可用架构、异地灾备
其次,我们还需要进行编程语言、常规运维工具的学习:
编程语言: Shell、Python、C++、Perl、GO
备份工具: VEEAM、BE、NBU
监控工具: Zabbix、Prometheus
日志监控工具: ELK、kibana、elasticsearch
分析调试工具: systemtap、perf
最后,我们还需要进行标准自动化体系的学习:
自动化体系工具: PXE、Ansible、puppet、Cobbler、Git、Jenkins
资产管理: CMDB、堡垒机
运维管理知识体系: ITSM、ITIL、Devops Master
以上,希望能对您有所帮助。码字不易,如果你觉得对你有所帮助,欢迎点赞评论加关注,后续还会出更多优质文章和回答。