运维,这里指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。
一个互联网产品的生成一般经历的过程是:产品经理、需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。
开展方式
业务运维工程师的日常工作包括:
- 监控线上的服务质量
- 响应异常/处理突发故障
- 在线发布/升级产品
- 和相应产品线的研发和测试协调处理产品问题
- 基于工作中的问题和数据分析进行抽取,将运维经验理念落地沉淀为方法论/工具/系统/平台,并制定相关的改进计划,在各个技术方向上落地实现,最终反馈回运维工作中,提高运维本身的效率和产品的价值。
平台工具
运维工程师使用的运维平台和工具包括:
- Web服务器:apache、tomcat、nginx、lighttpd
- 监控:nagios、ganglia、cacti、zabbix
- 自动部署:ansible、sshpt、salt
- 配置管理:puppet、cfengine
- 负载均衡:lvs、haproxy、nginx
- 传输工具:scribe、flume
- 备份工具:rsync、wget
- 数据库:mysql、oracle、sqlserver
- 分布式平台:hdfs、mapreduce、spark、storm、hive
- 分布式数据库:hbase、cassandra、redis、MongoDB
- 容器:lxc、docker
- 虚拟化:openstack、xen、kvm
- 安全:kerberos、selinux、acl、iptables
- 问题追查:netstat、top、tcpdump、last
广义上所有开源的软件都是运维工程师会使用到的平台和工具,同时也包括运维各个技术方向上自行研发的各类平台。