关于运维
运维,这里指互联网运维,通常属于技术部门,与研发、测试、系统管理同为互联网产品技术支撑的4大部门,这个划分在国内和国外以及大小公司间都会多少有一些不同。一个互联网产品的生成一般经历的过程是:产品经理、需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。
运维的职责
对于初创公司,运维部和系统部一般是合二为一的,相关工作由同一批人负责,界限可能不是很明显。大型公司对运维工作的要求更高,需要有更精细的分工,因此机房/网络/操作系统相关的底层工作分离出来由专人负责,成为系统管理部,而上层和应用产品相关的工作则由运维负责,成为运维部。以下从互联网产品生命周期和运维涉及的技术分别来看分工较细的大型互联网公司中运维工作的职责
技术方向
1.服务监控技术:包括监控平台的研发、应用,服务监控准确性、实时性、全面性的保障
2.服务故障管理:包括服务的故障预案设计,预案的自动化执行,故障的总结并反馈到产3.品/系统的设计层面进行优化以提高产品的稳定性
4.服务容量管理:测量服务的容量,规划服务的机房建设,扩容、迁移等工作
5.服务性能优化:从各个方向,包括网络优化、操作系统优化、应用优化、客户端优化6.等,提高服务的性能和响应速度,改善用户体验
6.服务全局流量调度:接入服务的流量,根据容量和服务状态在各个机房间分配流量
7.服务任务调度:服务的各种定时/非定时任务的调度触发及状态监控
8.服务安全保障:包括服务的访问安全、防攻击、权限控制等
9.数据传输技术:包括p2p等各类传输技术的研发应用,也远距离大数据传输等问题的解决
10.服务自动发布部署:部署平台/工具的研发,及平台/工具的使用,做到安全、高效的发布服务
11.服务集群管理:包括服务的服务器管理、大规模集群管理等
12.服务成本优化:尽可能降低服务运行使用的资源,降低服务运行成本
13.数据库管理(DBA):通过设计、开发和管理高性能数据库集群,使数据库服务更稳定、更高效、更易于管理。
14.平台化的开发:类docker和google borg平台的开发管理,及服务接入技术
15.分布式存储平台的开发优化:类google gfs等分布式存储平台的研发及服务接入
开展方式
1.监控线上的服务质量
2.响应异常/处理突发故障
3.在线发布/升级产品
4.和相应产品线的研发和测试协调处理产品问题
5.基于工作中的问题和数据分析进行抽取,将运维经验理念落地沉淀为方法论/工具/系统/平台,并制定相关的改进计划,在各个技术方向上落地实现,最终反馈回运维工作中,提高运维本身的效率和产品的价值。
平台工具
1.Web服务器:apache、tomcat、nginx、lighttpd
2.监控:nagios、ganglia、cacti、zabbix
3.自动部署:ansible、sshpt、salt
4.配置管理:puppet、cfengine
5.负载均衡:lvs、haproxy、nginx
6.传输工具:scribe、flume
7.备份工具:rsync、wget
8.数据库:mysql、oracle、sqlserver
9.分布式平台:hdfs、mapreduce、spark、storm、hive
10.分布式数据库:hbase、cassandra、redis、MongoDB
11.容器:lxc、docker
12.虚拟化:openstack、xen、kvm
13.安全:kerberos、selinux、acl、iptables
14.问题追查:netstat、top、tcpdump、last
行业前景
1.从行业角度来看,随着中国互联网的高速发展、网站规模越来越来大、架构越来越复杂,对专职网站运维工程师、网站架构师的要求会越来越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱。
2.从个人角度,运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了解最熟悉的人、越来越得到重视。
3.互联网运维是一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综合性技术岗位,给运维工程师提供了一个很好的个人能力与技术的发展空间。
4.运维工作的相关经验将会变得非常重要,而且也将成为个人的核心竞争力,优秀的运维工程师具备很好的各层面问题的解决能力及方案提供、全局思考的能力等。
5.由于运维岗位所接触的知识面非常广阔,更容易培养或发挥出个人某些方面的特长或爱好,如内核、网络、开发、数据库等方面,可以做得非常深入精通、成为这方面的专家。
6.当前国内外对运维人才的需求非常迫切,运维工程师的薪资也水涨船高,与研发、测试等技术部门持平,甚至超出。