01行业介绍和计算机基础
1.基础概念

运维工程师的责任
- 提升效率
- 控制成本
- 发布管理
- 变更管理
- 备份恢复
- 灾难演练
- 系统分析
- 技术选型
- ……
要让上级看到你的价值,才能防止被优化
2.运维工程师晋升通道
2.1 运维工程师岗位变化

2.2 运维工程师的技能树
2.2.1 基础技能
- 深入理解Linux系统
- 熟悉shell编程
- 掌握Linux中的用户体系,权限体系,文件体系
- 掌握Linux中的磁盘管理,进程管理,服务管理
- 掌握各种常见文本编辑工具
- 熟悉相关网络协议和各类工具
- 能熟练搭建web server服务
- 熟悉各类编程语言的运行环境
- 熟悉一样两种主流数据库
- 熟悉版本控制欲版本管理工具
- 熟悉一两种主流公有云
2.2.2 高级技能
- 熟悉各类自动化运维工具
- 书序各种开源监控平台
- 熟悉存储网络服务
- 熟悉ELK套件
- 熟悉虚拟化技术
- 熟悉容器技术
- 掌握一两种编程语言
- ……
3.现代IT业务基本组件
包括但不限于
- 基本组件- 消息服务- 邮件- 短信- IM- 运维与监控服务- ansible- zabbix- jenkins- 日志分析服务- elk- 任务调度服务- azkaban- 版本管理服务- git- gitlab- webserver服务- nginx- apache- 搜索服务- elasticsearch- 高速缓存- redis- memcache- 网络服务- DNS服务- 负载均衡- 存储服务- 对象存储- 存储网络- CDN- 业务逻辑运行容器- PHP- JDK- python- nodejs- 数据库- MySQL- oracle- db2- tidb- 大数据服务- hadoop- hive- spark
4.云时代的环境部署和运行模式
云时代的环境部署有以下特点:
- 服务部署直接从软件环境开始
- 节省大笔硬件支出
- 云端提供了大量的SAAS服务和半成品服务
- 基础服务有保障,稳健性和健壮性好
- 不用担心资源不够用
- 对全球化业务部署友好,能快速部署到全球各地机房
- 社区活跃,云厂商提供了各种运维和监控工具
- 行业蓬勃发展,各种新的技术和工具层出不穷
- 细分行业开始出现,运维工程师的职业发展前景更广阔,这是机遇,也是挑战
挑战方面:
- 技术发展日新月异,更新迭代快,学习的东西多
- 细分服务出现,业务链路越来越长,越来越复杂,不可控性和不确定性增多
- 从单机到集群,从运维到开发,对运维工程师的技能要求越来越高
- 在云时代,运维工程师管理的机器数量越来越多,系统越来越庞大,责任也越来越重大
5.计算机硬件方面
5.1 远程管理卡
IPMI平台,可以监控温度、电压、风扇工作状态、电源工作状态等。远程管理卡有自带和独立两种,建议配备独立管理卡。
5.2 阵列卡
用来实现RAID级别,方便将若干硬盘驱动器按照一定的要求合并、组成为一个整体、由阵列控制器管理的系统。
支持多种RAID级别
5.3 热插拔技术
热插拔技术,称为热交换技术,允许在不辊机的状态下更换故障热插拔设备,其与2RAID技术配合起来,可以使服务器在不关机的状态下恢复故障硬盘上的数据,同时并不影响用户对数据的使用。
6.操作系统和Linux
由刚开始的单一程序进化到多种程序并行,即可理解为嵌入式=>操作系统的变化。
6.1 操作系统的功能
- 硬件驱动
- 进程管理
- 内存管理
- 网络管理
- 安全管理
- 文件管理
6.2 操作系统的相关概念
- 接口
操作系统一般会提供两种接口:
窗口界面
命令行接口
- API
应用程序编程接口,定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译
- POSIX
可移植的操作系统接口,不同的操作平台上都有相应的接口,方便源代码的编译
相当于是一套代码,两个平台编译
- 系统调用和函数库
系统调用:调用操作系统所提供的API来实现某些功能的行为
库函数 :将提供一些特定功能的代码进行封装,只暴露出一些函数,提供给第三方调用,那么这些函数,就称为库函数
- 用户空间和内核空间
用户空间
用户程序的运行空间,和内核隔离
内核空间
可以执行任意命令,调用系统的一切资源
- 编程语言
低级语言:
机器语言:二进制汇编语言
高级语言:C|C++|JAVA|C#等
6.3 Unix
兼容分时系统Multics
为了玩游戏,开发了Unix
1969年,Unix雏形
1973年用C语言正式命名为Unix
1979年开始商用
6.4 GNU
目标:编写大量兼容于Unix系统的自由软件
最后,GNU的系统仍未实现,但GNU提供了大量的软件,Linux提供了操作系统内核,这就是GUN/Linux的来源
6.5 开源Open Source
6.5.1 开源
软件和源代码提供给所有人,自由分发软件和源代码,free自由,不是免费的意思
能够修改和创建衍生作品
软件分类:
- 商业:收费,源码也不公开
- 共享:免费使用,但源码不公开
- 自由:源代码公开
6.5.2 开源协议

7.Linux相关
Linux/GUN=Linux内核+GUN软件
7.1 Linux的哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途发展的程序链接程序,共同完成复杂的任务(shell脚本)
- 避免令人困惑的用户界面
- 配置数据存储在文本中
7.2 虚拟机安装Linux(省略)