作运维的感悟(作运维须要考虑事,运维组织结构,运维学习地图....)

作运维须要考虑的事

简介
/*
  运维是在于一个量
      最少的人,最多的事 而且保证业务
      好比说google的一个数据中心,只有几我的在维护
      运维不能直接的创造价值,而是能够变相的节约成本
      你节约的成本x你的意识x你的觉悟=你的价值
      ———-来自 98素辞
*/
服务来讲

1.对服务版本选择,要和开发沟通,若是开发用的php语言,那就问他写的代码是哪一个版本的,不一样版本可能不兼容一些语法,会致使出错php

要选择稳定版,太新的可能会致使一些bug,从而崩溃或服务出错。选择新版本惟一的目的应该是须要新的功能,不然老的版本最稳定html

服务部署后要进行简单测试,让服务能够照常运行才能够,不能装完就算了。对于java这种替换版本,1.7升级到1.8可能致使某些依赖1.7的JDK,这都要去考虑清楚。java

当服务运行后要注意他的启动用户是什么,可能用户不对形成没法读取文件。好比nginx启动时www用户,他就无法读取/data里找html发送给用户。python

数据库若是要和库,要考虑是否有表名字重复。若是公用一个redis进行缓存,要考虑写入的数据是否冲突。mysql

2.根据业务进行结构分析,是使用nginx仍是apache,选择前填写调研文档,进行测试,写测试文档和部署,使用文档linux

3.根据业务量进行机器的数量选择还有配置选择,最好将配置作成套餐,好比将tomcat机器,每一个都是8核16G内存,硬盘100基础,这个做为一个套餐来建立虚拟机或者云机器选购。ios

4.根据需求进行主从,或者负载均衡选择,可能还要选择备份容灾,cdn等等nginx

5.对服务的日志进行分析,好比ip来源地址,pv,uvgit

6.对服务和系统进行优化,优化前和优化后差异很大,性能能够差一倍。程序员

7.安全防御,不仅有ddos,还有登录问题。多关注软件可能暴露的一些安全问题,或者linux自己的系统问题

说不定谋个nginx版本忽然说有问题,你还没关注到,那就很容易被黑掉

8.网络问题,不少时候都是这样,某个地方访问慢,但其余人访问不慢,很头疼,须要抓包再逐步排查

9.性能问题,可能最初还好。随着压力来临,数据库可能有慢查询,须要进行排查和解决。网站可能有部分用户访问不了,或者访问缓慢,都须要去排查

这块是最可贵,须要各方面知识,若是遇到忽然访问不了,那就回想以前作了哪些操做,再针对性排查

10.关注版本问题,像nginx1.9将支持tcp的4层代理,而不只仅是以前的7层了,这样性能会提升不少,对公司业务颇有帮助

11.优化,不只是系统的内核方面优化,还有服务的配置文件优化,这点须要长久深入的理解才行。默认的都是最标准的,可是能够根据状况舍弃一部分的东西,来增强另外一部分,达到适合业务。

好比nginx作反向代理,能够优化内核参数,快速释放连接,超时时间配置短一些,这样能够处理更高的并发。可是若是提供php等服务的话,就要配置长一些,来达到稳定的效果

12.要考虑总体结构状况。好比nginx作负载均衡,可能抗压能力很出色,可是后面的数据库只有3台,致使数据库带宽被打满,也会形成访问不了的问题

发布来讲

1.如何发布,是手动仍是自动,若是机器多了,须要jenkins之类进行自动发布

2.容灾问题,代码若是发布失败,须要迅速回滚,不影响问题,发布的时候也不要全部节点一块儿发布,挨个节点发布

3.还要对老的代码进行备份,防止将来可能忽然发生的问题,须要回滚

总体来讲

1.运维并非整天都是忙着去排错,大部分时间都是空闲的,这时候就须要自制力去学习东西了

2.运维的价值=你节约的成本 x 你的意识 x 你的觉悟

运维并不能直接搞出价值,可是能够优化,调整结构来省钱,不出事就是最好的价值。同时分析日志能创造隐形的价值给公司。

3.优化现有的方式,公司在成长中,确定会有不少隐患,好比最初是用一个脚原本批量操做10-20台机器,后面公司扩充有100台机器,就要用ansible来批量操做了。这些都须要自动化,后面还要自动发布,压力大来自动扩容,报警cpu不够自动调节缓解当前机器压力等待

4.服务也不是照着百度吧配置文件放上便可,像负载均衡,可能调度算法填写的不对,形成一台压力大,一台压力小。还可能服务占用一个cpu压力大,其余都闲着,这些都是不行的。

5.文档要多写,好比资产文档,那些机器的配置,还有密码表,服务链接文档,部署文档,维护文档都要写,文档的做用一个是本身用,另外一个是等你离职或者新员工加入,他们能够快速来维护。

6.部署一个新服务,必需要测试事后才上线,而测试不是安装便可,须要找数据进行深度测试,模拟线上环境。

7.谨慎甚微,任何操做琢磨几遍再打,不要随意就打了,好比重启线上nignx用reload,不然当前业务中断了。

8.监控很重要,能够查看流量,某些服务使用内存是否超标,没有监控出了事都不知道,监控不只要监控服务的端口防止挂掉,还要他深度的使用,好比mysql的慢查询,命中率,主从状态等等。

9.体系,运维最好制定一些发布流程,虚拟机申请流程,巡检流程等等。巡检也是很重要的,云服务器也要定时看看是否磁盘满了,是否要续费等等。不然哪天出问题,问题就大了。

10.对业务进行机器规划,当压力大时扩容,不大时逐步关闭

11.测试也很重要,一个服务从多方面进行测试,好比nginx从静态页面,动态页面,提交数据,模拟多个在线用户登陆访问等等。

12.修改文件前必须备份,方便回滚,操做日志最好有审计

(1)提早积累技术,可能明白了谋个东西,优化后让服务器性能提升2个点
(2)提早预防问题,防范于未然
(3)想多些可能性,当前结构可能妥当,但一定不是最好的

运维组织结构

简介

运维的工做方向比较多,随着业务规模的不断发展,越成熟的互联网公司,运维岗位会划分得越细。当前不少大型的互联网公司,在初创时期只有系统运维,随着业务规模、服务质量的要求,也逐渐进行了工做细分。通常状况下运维团队的工做分类(见图1-1)和职责以下。

系统运维

系统运维负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修。详细的工做职责以下:

(1)IDC数据中心建设
收集业务需求,预估将来数据中心的发展规模,从骨干网的分布,数据中心建筑,以及Internet接入、网络攻击防护能力、扩容能力、空间预留、外接专线能力、现场服务支撑能力等多个方面评估选型数据中心。负责数据中心的建设、现场维护工做。

(2)网络建设
设计及规划生产网络架构,这里面包括:数据中心网络架构、传输网架构、CDN网络架构等,以及网络调优等平常运维工做。

(3)LVS负载均衡和SNAT建设
LVS是整个站点架构中的流量入口,根据网络规模和业务需求,构建负载均衡集群;完成网络与业务服务器的衔接,提供高性能、高可用的负载调度能力,以及统一的网络层防攻击能力;SNAT集中提供数据中心的公网访问服务,经过集群化部署,保证出网服务的高性能与高可用。

(4)CDN规划和建设
CDN工做划分为第三方和自建两部分。创建第三方CDN的选型和调度控制;根据业务发展趋势,规划CDN新节点建设布局;完善CDN业务及监控,保障CDN系统稳定、高效运行;分析业务加速频道的文件特性和数量,制定最优的加速策略和资源匹配;负责用户劫持等CDN平常故障排查工做。

(5)服务器选型、交付和维护
负责服务器的测试选型,包含服务器整机、部件的基础性测试和业务测试,下降整机功率,提高机架部署密度等。结合对公司业务的了解,推广新硬件、新方案减小业务的服务器投入规模。负责服务器硬件故障的诊判定位,服务器硬件监控、健康检查工具的开发和维护。

(6)OS、内核选型和OS相关维护工做
负责总体平台的OS选型、定制和内核优化,以及Patch的更新和内部版本发布;创建基础的YUM包管理和分发中心,提供经常使用包版本库;跟进平常各种OS相关故障;针对不一样的业务类型,提供定向的优化支持。

(7)资产管理
记录和管理运维相关的基础物理信息,包括数据中心、网络、机柜、服务器、ACL、IP等各类资源信息,制定有效的流程,确保信息的准确性;开放API接口,为自动化运维提供数据支持。

(8)基础服务建设
业务对DNS、NTP、SYSLOG等基础服务的依赖很是高,须要设计高可用架构避免单点,提供稳定的基础服务。

应用运维

应用运维负责线上服务的变动、服务状态监控、服务容灾和数据备份等工做,对服务进行例行排查、故障应急处理等工做。详细的工做职责以下所述。

(1)设计评审
在产品研发阶段,参与产品设计评审,从运维的角度提出评审意见,使服务知足运维准入的高可用要求。

(2)服务管理
负责制定线上业务升级变动及回滚方案,并进行变动实施。掌握所负责的服务及服务间关联关系、服务依赖的各类资源。可以发现服务上的缺陷,及时通报并推动解决。制定服务稳定性指标及准入标准,同时不断完善和优化程序和系统的功能、效率,提升运行质量。完善监控内容,提升报警准确度。在线上服务出现故障时,第一时间响应,对已知线上故障能按流程进行通报并按预案执行,未知故障组织相关人员联合排障。

(3)资源管理
对各服务的服务器资产进行管理,梳理服务器资源情况、数据中心分布状况、网络专线及带宽状况,可以合理使用服务器资源,根据不一样服务的需求,分配不一样配置的服务器,确保服务器资源的充分利用。

(4)例行检查
制定服务例行排查点,并不断完善。根据制定的服务排查点,对服务进行按期检查。对排查过程当中发现的问题,及时进行追查,排除可能存在的隐患。

(5)预案管理
肯定服务所需的各项监控、系统指标的阈值或临界点,以及出现该状况后的处理预案。创建和更新服务预案文档,并根据平常故障状况不断补充完善,提升预案完备性。可以制定和评审各种预案,周期性进行预案演练,确保预案的可执行性。

(6)数据备份
制定数据备份策略,按规范进行数据备份工做。保证数据备份的可用性和完整性,按期开展数据恢复性测试。

数据库运维

数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变动、监控、备份、高可用设计等工做。详细的工做职责以下所述。

(1)设计评审
在产品研发初始阶段,参与设计方案评审,从DBA的角度提出数据存储方案、库表设计方案、SQL开发标准、索引设计方案等,使服务知足数据库使用的高可用、高性能要求。

(2)容量规划
掌握所负责服务的数据库的容量上限,清楚地了解当前瓶颈点,当服务还未到达容量上限时,及时进行优化、分拆或者扩容。

(3)数据备份与灾备
制定数据备份与灾备策略,按期完成数据恢复性测试,保证数据备份的可用性和完整性。

(4)数据库监控
完善数据库存活和性能监控,及时了解数据库运行状态及故障。

(5)数据库安全
建设数据库帐号体系,严格控制帐号权限与开放范围,下降误操做和数据泄露的风险;增强离线备份数据的管理,下降数据泄露的风险。

(6)数据库高可用和性能优化
对数据库单点风险和故障设计相应的切换方案,下降故障对数据库服务的影响;不断对数据库总体性能进行优化,包括新存储方案引进、硬件优化、文件系统优化、数据库优化、SQL优化等,在保障成本不增长或者少许增长的状况下,数据库能够支撑更多的业务请求。

(7)自动化系统建设
设计开发数据库自动化运维系统,包括数据库部署、自动扩容、分库分表、权限管理、备份恢复、SQL审核和上线、故障切换等功能。

运维研发

运维研发负责通用的运维平台设计和研发工做,如:资产管理、监控系统、运维平台、数据权限管理系统等。提供各类API供运维或研发人员使用,封装更高层的自动化运维系统。详细的工做职责以下所述。

(1)运维平台
记录和管理服务及其关联关系,协助运维人员自动化、流程化地完成平常运维操做,包括机器管理、重启、更名、初始化、域名管理、流量切换和故障预案实施等。

(2)监控系统
负责监控系统的设计、开发工做,完成公司服务器和各类网络设备的资源指标、线上业务运行指标的收集、告警、存储、分析、展现和数据挖掘等工做,持续提升告警的及时性、准确性和智能性,促进公司服务器资源的合理化调配。

(3)自动化部署系统
参与部署自动化系统的开发,负责自动化部署系统所须要的基础数据和信息,负责权限管理、API开发、Web端开发。结合云计算,研发和提供PaaS相关高可用平台,进一步提升服务的部署速度和用户体验,提高资源利用率。

运维安全

运维安全负责网络、系统和业务等方面的安全加固工做,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理。详细的工做职责以下所述。

(1)安全制度创建
根据公司内部的具体流程,制定切实可行,且行之有效的安全制度。

(2)安全培训
按期向员工提供具备针对性的安全培训和考核,在全公司内创建安全负责人制度。

(3)风险评估
经过黑白盒测试和检查机制,按期产生对物理网络、服务器、业务应用、用户数据等方面的整体风险评估结果。

(4)安全建设
根据风险评估结果,加固最薄弱的环节,包括设计安全防线、部署安全设备、及时更新补丁、防护病毒、源代码自动扫描和业务产品安全咨询等。为了下降可能泄露数据的价值,经过加密、匿名化、混淆数据,乃至按期删除等技术手段和流程来达到目的。

(5)安全合规
为了知足例如支付牌照等合规性要求,安全团队承担着安全合规的对外接口人工做。

(6)应急响应
创建安全报警系统,经过安全中心收集第三方发现的安全问题,组织各部门对已经发现的安全问题进行修复、影响面评估、过后安全缘由追查。

从月薪5K到50k

简介

这是一个热门运维问题,也是不少刚进入运维工做的同窗面临的心境。

确实,【 运维 】多是分水岭最明显的职位之一:有的人毕业6年,月薪从3K涨到到50K;有的人工做4年,依然作着重启服务器、检查机房的机械工做,这都是知乎上能看到的真实事例。

今天,咱们就经过拉勾上,薪资 5K 到 100K 的运维招聘要求,来看看运维从搬砖到大神,都要学习些什么。

阶段一(3k-5k)

“昨天又搬了65台服务器……”
——本阶段工做描述

一张图归纳:

招聘岗位和要求

/*
	岗位一:
  岗位职责:
  公司电脑多媒体以及网络平常维护,以及桌面运维支持
  任职资格:
  一、能熟练更换PC硬件
  二、熟悉办公经常使用软件以及邮箱
  三、对网络运维方面有必定了解,并可以熟练配置交换机防火墙以及路由器。
  (4K—6K 百度文学)

  岗位二:
  岗位职责:
  一、负责公司内、外网络平台的搭建、实施及网络(含无线网络技术、设备)的具体维护工做;
  二、针对公司开展的网络技术方案的定型与实施工做提出建议;
  三、网络及安全技术实施方案中安装、调试、维护工做;
  四、负责公司办公网络及IDC网络平常维护工做;
  五、负责集团网络设备及广域线路的统计工做。

  任职资格:
  一、2018届毕业生,专科及以上学历、计算机相关专业;
  二、诚实守信,性格开朗,无不良历史记录;
  三、善于学习,善于沟通,文档功底好,敢于面对挑战,勇于承担工做压力;
  四、学生干部或有相关网络工程师认证(Cisco认证、Juniper认证、Huawei认证等)者优先考虑;
  五、熟悉Linux操做系统和虚拟化技术的优先。
  (JD)
*/

技术关键字

Linux、服务器、环境部署

运维工程师 —— “Operations Engineer”,字面意思可理解为管理系统、服务器的工程师。初级运维最多见的工做就是熟悉和维护服务器——因此检查机房、搬服务器是90%的运维都会经历的。

进阶一点的,就要开始学习搭建服务器、搭建网络、配置环境等工做了。绝大多数服务器都使用Linux系统,因此熟练使用Linux是硬性要求;服务器须要配置网络,因此对路由协议、网络协议等网络原理也要掌握;产品开发完成后,还须要运维部署环境,安装相应的软件;安装完成后就能够上线吗?不,有时你还须要部署一套测试环境……

在这个阶段中,运维的大部分工做都是简单和机械性的,对技术水平的要求不多,以致于薪资也较低。因此刚毕业的程序员每每有一个错觉:运维岗不如开发岗。他们会感到「迷茫」,甚至「焦虑」

“感受本身就是个网管……”
“天天的工做就是维护、重启服务器,看不到但愿……”

但其实,运维是一场真正的马拉松。一样是第一个阶段,你只跑了1%,开发的同窗已经跑了20%,你的提高空间远远超过他们。

阶段二(6-15k)

从删库到跑路

一张图归纳

or

招聘岗位和要求

/*
	【岗位职责】:
  1,负责服务器的配置、维护、监控、调优,故障排除等;
  2,运维自动化及运维脚本开发;
  3,大用户量下高性能服务器系统部署方案的制定及实施与监控;
  4,及时响应并处理线上故障。

  【任职要求】:
  1,计算机相关专业大学本科以上学历,具备扎实的计算机基础理论知识;
  2,熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安装部署及优化;
  3,具备良好的故障排查能力,良好的逻辑分析能力及技术敏感度;
  4,熟悉掌握使用shell、python脚本语言,能熟练进行脚本/工具开发,对自动化运维有较深刻的理解或者经验者优先;
  5,高度的责任感,较强的故障分析及排查能力,善于在工做中学习,能承受工做压力。
  (10-20K —— 乐视)
*/

技术关键字

故障排查、优化、Shell、Python、监控

随着自身技术的积累,运维的薪资在突飞猛涨。这时,你已经能够在公司或某项目里独当一面(du zi bei guo)。要达到这个阶段的要求,你须要掌握这些技能:

1.排错和调优
上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为何要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。而后就是总结经验,吸收教训,写事故报告。OK,如今你知道,须要对系统环境须要进行必定的调优操做,再也不作背锅侠。

相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, …

2.备份
以前的Gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但仍是挽救了几小时前的一个备份,才没有形成更大的数据丢失和公司损失。咱们须要对设备进行备份冗余,须要对数据库进行备份及离线备份,须要对网站静态进行备份冗余,须要对机房进行备用,能作到双活,那是更好的啦。

相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 彻底备份, 差别备份, 增量备份, 离线异地备份, …

3.高可用集群
没有永垂不朽,咱们不能保证硬件24小时在线,但须要保障服务24小时在线。

出现故障后,若是作好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的状况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。

相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各类其余分布式集群方案, …

4.监控和警报
时刻担忧网站挂掉,一年365天、每周7天、天天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。咱们须要一个机器来监督其余的机器工做,咱们须要解放咱们本身。当有故障发生的时候,经过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,而后咱们离线对故障节点进行问题排查。

相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, …

阶段三(20-45k)

Linux运维真的随心所欲

一张图归纳

招聘岗位和要求

/*
	职位一
  【岗位职责】:
  一、制定和优化运维解决方案,包括但不限于柔性容灾、智能调度、弹性扩容与防攻击;
  二、推进及开发高效的自动化运维、管理工具,提高运维工做效率;
  三、探索、研究新的运维技术方向。
  【岗位要求】:
  一、本科及以上学历,3年以上的Linux系统使用和管理经验;
  二、熟悉 Linux 操做系统原理、TCP/IP 以及经常使用RPC协议;
  三、熟悉脚本语言Bash/Python等脚本语言的一种并有相关开发经验;
  四、熟悉Docker、Kubernetes等开源软件;
  五、熟悉常见应用配置及优化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等;
  六、熟悉经常使用的监控系统,如 Zabbix、Nagios 和 Ganglia 等;
  七、熟悉systemtap、perf、oprofile 等分析调试工具;很强的Troubleshooting能力、且可以推进业务问题改善和解决;
  八、具备良好的的沟通、执行能力和强烈的责任心;
  九、耐心、细致、学习能力强,较强的工做计划;
  十、在开源社群活跃并有积极贡献者优先,
  ( 22-40K —— 陌陌 )
  
 职位二
 【 工做职责 】
    负责京东内部信息安全平台的基础运维工做,处理值班问题,确保系统服务稳定性;
    负责运维自动化/标准化方案设计,自动化工具及平台研发,提高运维效率;
    负责生产、测试、灰度多套环境的部署和维护,配合研发、测试团队进行应用部署;
    制定信息安全集群监控和报警方案,处理报警问题;
    定位与分析运维问题,给出解决方案。
    【 职位要求 】
    计算机相关专业,本科及以上学历,至少2年以上的大规模系统运维经验,2年以上运维开发经验,有deveops开发经验或有中大型互联网公司运维自动化经验者优先;
    具有openstack或docker集群运维经验;
    掌握shell/python/perl/php其中一种脚本语言,有Python实际项目经验,熟练掌握Django、Tornado等任一Web开发框架者优先;
    掌握互联网经常使用的中间件维护、管理,例如redis、mongodb、kafka、memcached、dubbo等;
    掌握tomcat、nginx等常见应用的搭建、配置、优化;
    掌握zabbix、nagios、elk等系统的搭建、配置、优化;
    掌握一种大规模自动化运维工具(saltstack、ansible、puppet),有二次开发经验优先;
    熟悉linux/uinx,windows操做系统基础原理及经常使用操做;
    熟悉常见运维配置及优化,如Svn/git/Ansible/Nginx/Tomcat/salt等;
    熟悉TCP/IP、HTTP等协议,有良好的网络、数据传输、安全、计算机体系结构方面的知识;
    认同DevOps文化,重视自动化方式处理各类问题;
    具有良好的项目规划、推动能力;
    具备良好的沟通协调能力、较强的团队合做精神、优秀的执行能力;
    有很强的分析和解决问题的能力。
    ( 30 - 50K 京东 )
*/

技术关键词

自动化、DevOps、云服务、Docker、kubernetes、安全……

deveops、openstack、docker、集群运维、shell/python/perl/php、Django、Tornado、redis、mongodb、kafka、memcached、dubbo、omcat、nginx、zabbix、nagios、elk、saltstack、ansible、puppet、linux/uinx系统基础原理、Svn/git/Ansible/Nginx/Tomcat/salt、TCP/IP、HTTP……

看到这些技术名词,相信你必定会明白,高端运维为什么配得上这么高的薪资。

虽然以上这些技术并非所有须要掌握的,同一类型掌握同样便可,但仍能够看出,这个阶段的运维已是集大成者 —— 在中型公司能够胜任CTO的位置,在大型公司能够担任项目的技术负责人。想达到这个阶段,你须要掌握这些技能:

1.安全和审计
不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人均可以窥探你的隐私。你的应用是否作了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登陆服务器?网站开启了https么?是否对系统操做进行审计?

相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, …

2.DevOps 与自动化
偷懒是社会进步的第一动力。聪明的咱们怎么会让本身一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操做,把这一切交给程序去实现吧,咱们须要的是享受生活。

相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, …

3.虚拟化和云计算
云计算革命的发起人是卖书的亚马逊,这家伙但愿卖一切能够卖的东西,包括本身闲置的服务器资源。如今国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所须要的一切,甚至可让一个公司再也不须要运维的岗位。你须要服务器,只须要几秒钟,就能够建立一台。你须要数据库集群,只须要鼠标点击几下,就能够开通。

相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, …

阶段四(50k-???)

一张图归纳本阶段:

招聘岗位和要求

/*
	80K—100K
	【岗位职责】
    1.做为公有云SRE软件技术专家,负责自动化运维平台的系统分析和架构设计,指导研发团队实现设计,规划将来平台技术架构方向;
    2.负责全局性和前瞻性的架构设计,以及关键技术细节的实现,解决业务发展遇到的架构问题,持续提高系统平台稳定性;
    3.负责持续关注业务技术发展和最佳实践,并结合华为云运维产品业务特色推动新技术及实现方案的落地;
    【岗位要求】
    1.本科及以上学历,6年以上大型业务应用系统的架构设计和落地的实际能力,熟悉分布式、缓存、消息等机制,能对分布式经常使用技术进行合理应用,解决实际架构问题;
    2.海量数据处理和架构能力及经验,熟悉SOA并具备系统的架构设计经验;
    3.精通Java/Python/Go/C/C++其中至少1种编程语言;
    4.精通操做系统,数据库,IO、多线程编程原理、集合等基础框架,对JVM原理有深刻的了解;
    5.精通分布式事务处理框架原理和实现,精通多线程及高性能的应用的设计,编码及性能调优经验;
*/

技术关键词

???

这个级别的大佬要么是有极强的管理能力,要么是对某技术有底层的深刻研究,已没法概括具体的技术要求,您:

爱学什么学什么吧……

/*
	总之……
    运维是个须要不断学习的职位
    100K 还远远不是天花板
    (银行、BAT、华为了解一下……)
    若是你肯定了要努力的方向,那就学起来吧!
*/

运维学习地图

行囊

新手在学习的时候,一般遇到的问题是没有一整套学习计划,不知道具体学哪些才会对工做有帮助,遇到问题也没人解答,而这2点也是培训机构的卖点。

这种状况,最好的方法是加个技术群,看看谁在里面老回答问题,能够加好友具体问问,而后请他喝杯咖啡。

资料方面不要看不少,在豆瓣中搜索相关书籍,评分高都看一本就好了,毕竟技术都是积累的,没有一会儿就学圆满的。

有下面的知识,运维才能迈出第一步,否则就是比较残缺的,没法造成大局观。例如某些用户访问网站有问题,报错505,你只会linux方面的,对网络不清楚,那若是问题出在运营商身上,或者服务器之间的网络通讯上,就会抓瞎。

  • 计算机基础知识(了解计算机哪几个部分组成,如何装系统,上下架等等)
  • 网络基础知识(不用太深刻,知道协议有哪些,什么意思,路由器交换机工做原理)
  • 安全基础知识(知道什么叫ddos,知道基本防护方法)
  • 测试基础知识(知道性能测试和web测试用什么工具,否则你优化完怎么证实它性能提升了?)
  • 开发基础知识(基本的构建,打包知道什么意思,异步非阻塞之类的)
  • linux基础知识(这部分就是对linux的了解了,linux启动顺序,命令等等)

不过大公司会专门作某一部分,例如应用运维不须要关注测试和安全等方面,但建议都学学,举一反三有好处。

有这些基础,进到公司就能够去完成基础的建设工做了。好比会安排你搭建服务,整理资产报表,清理一些日志,这些基本工做能够帮助你了解公司当前有哪些服务,各类服务之间是如何运做的,以后再慢慢参与到业务中,薪资一线城市能够达到6-10k左右。

大路

当进入公司一年以上后,就是冲刺阶段,这个阶段会学习到大量知识,由于刚工做,会明白不少书本上和模拟遇不到的东西,天天都会有大量进步。

会知道一个项目从建立到上线的过程,会发现公司有大量东西须要改善,例如部署服务还在使用手工部署,当一个新项目上线,须要花不少时间部署,你就能够尝试用脚原本自动部署。

公司须要监控,你能够参与选择软件,用zabbix仍是cacti,或者不是你选择,你也能够对原有监控项进行优化和完善。这些都是实际应用的,你会明白比原先学习的更多东西。

这块是公司有需求或者用到什么,就去学习什么。不要看什么运维必须掌握的命令和工具大全之类的文章,你都用不到学了有啥用。若你业务都掌握明白了,有空余时间,能够搞搞docker之类热门应用,在此以前,仍是把精力花在手头事情上。

同时要创建好的学习方法,否则在熟悉工做后,很容易懈怠,而后在群里划水,学习激情会减退。个人方法是带着目的学习,而后写文章让你们看,得到激励后就有动力继续学习了。

这段冲刺期会维持3-5年,会让人感受天天都有进步,明白的东西愈来愈多。算是中级运维了,薪资一线城市能够达到10-20k左右。

岔道

再往前就会分出不少个岔道,开发、安全、DBA、测试、应用运维、基础运维等等。

时间有限,须要从中挑选适合的。只有选定方向才能不迷路,也才能更快的到达目的地。到了这时,就已经迈步向高级运维了。须要选择一个方向去努力,否则运维的东西太杂,很难面面俱到。

如何要作运维开发,就须要去学习python,html,各类框架,也能够学go。

要作DBA,就要专门研究数据库,搞清楚数据库的原理结构,每一个详细点。

每一门日后都有大量的东西要学习的,专精才能钱多,而且有成长。

不过当前都在往运维开发方向靠拢,将来的运维都要会一些开发才行。之前是shell,当今是python,须要的技术愈来愈深刻,紧跟潮流才不会被落下。

高级运维,通常5-10年经验,薪资15-35k左右

终点

技术是没有终点的,固然能够有你本身的终点。当工做10年,技术已经很厉害了,就须要靠拢一些别的东西了。

能够根据你掌握的技术,去搞博客,出售一些视频,写付费文章或者付费问答。甚至能够看准机会后,去作产品的。像宝塔面板,cdn,都是一大批运维或者开发看准机会后从技术转型成创业者。

购买基金彩票和增值物品也能够,区块链就算了,不获得国家认可和保护的东西,终究没有大的发展的。有些股票或者基金仍是很妥当,很不错的,虽然进步慢,可是很稳定不会亏。

就像《教父》小说中说的,不要把鸡蛋放在一个笼子里,能够爱好技术,但也要搞副业,来应对来为可能形成的冲击。

相关文章
相关标签/搜索