职业定义
职业定义:运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的 ROI。
任务职责
1. 保障并不断提升服务的可用性,确保用户数据安全,提升用户体验;
2. 用自动化的工具/平台提升软件在研发生命周期中的工程效率;
3. 通过技术手段优化服务架构、性能调优;通过资源优化组合降低成本、提升 ROI;
4. 负责参与并审核架构设计的合理性和可运维性,以确保在产品发布之后能高效稳定的运行;
5. 负责用自动化的技术或者平台确保产品可以高效的发布上线,之后可以快速稳定迭代;
6. 负责保障产品 7*24H 稳定运行,在此期间对出现的各种问题可以快速定位并解决;在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性。
知识背景
学历要求:计算机或相关专业本科或以上学历
专业知识背景:Linux 操作系统基本功、Linux 系统服务、商城系统上线部署、配置自动化、运维安全与调优、运维云计算
大学课程
计算机硬件、组成原理、操作系统基础、Linux 基础知识
职业技能
基础技能
1. 精通 shell/Python/Perl 等 1 至 2 种编程语言
2. 熟练掌握常用数据结构和算法,并能灵活运用
3. 熟悉网络基础知识
4. 深入理解 Linux 操作系统
加分技能
1. 熟悉开源的监控平台工具,比如:Ganglia、Nagios、Zabbix 等
2. 熟练掌握 Shell 脚本熟悉 Awk、Sed 等基础工具
3. 熟悉分布式计算或者存储系统,比如 Hadoop/Hbase/Storm 等
4. 熟悉机器学习原理能付诸实践者更佳
5. 熟悉 TCP/IP、HTTP 等网络协议,精通 socket 网络编程
通用技能
1. 强烈的责任心与主动性,对所负责工作有 owner 意识,并能自我驱动成长
2. 能承担较大工作压力,有较强独立分析、解决问题的能力
3. 工作中需要胆大心细,具备探索创新精神
常用工具
Web 服务器:Apache Tomcat、nginx、Lighttpd
监控:Nagios、Ganglia、Cacti、Zabbix
自动部署:Ansible、SSH Power Tool、Salt
配置管理:Puppet、CFEngine
负载均衡:LVS、HAProxy、Nginx
传输工具:Scribe、Flume
备份工具:Rsync、wget
数据库:MySQL、Oracle、SQL Server
分布式平台:HDFS、MapReduce、Spark、Storm、Hive
分布式数据库:HBase、Cassandra、Redis、MongoDB
容器:LXC、Docker
虚拟化:OpenStack、Xen、KVM
安全:Kerberos、SELinux、ACL、iptables
问题追查:netstat、Tcpdump、last
职业发展
运维人员的要求特别严苛,因为运维人员针对不同的问题,需要不断的补充扩大自己的知识和研究范畴。
在初级阶段,优秀运维人员会体现出格外出众的主动性和责任心,面对陌生的业务会主动学习和拓展自己对业务对认识和相应的知识范畴,以能够足够的胜任业务的独立维护。
在逐步的发展阶段中,注重总结反省的工程师会逐渐成长为高阶运维人员,通常他们会有比较体系化的服务运维理解。也有一部分工程师由于出色的项目管理规划能力,逐渐成为项目经理。
再进一步的发展,高阶的运维人员对于产品的理解将非常的透彻,因而在这种情况下,高阶运维人员甚至可以成为产品的产品经理、产品研发的咨询顾问,在产品功能的设计与开发中起到至关重要的角色。