# 谈谈对运维的认知
现在的我大四目前在一家公司实习,我被公司外派到腾讯数据中心工作负责腾讯政务云的日常维护工作。可能是腾讯的这套云产品功能组件相对比较完整,我日常的工作无非就是盯紧监控平台的告警信息、跑跑脚本检查一下机器的健康状态根据客户的工单生产和交付虚拟机,参与部署到这套云环境的东西也只有云镜和zabbix,在这边我能做的工作还是蛮少觉得有点无聊,毕竟我认为运维工程师是一个爱折腾的主,太闲了反而觉得浑身不自在。但是现实就是这样,在大公司运维的工作量可能会比较少,除了上线公司的项目和对项目的日常维护就没其他事情了。不过呢在这些日子的工作中我也从客户那里了解到了一些东西,客户对我们的虚拟机通常关心以下几点:
* 虚拟机的交付周期?
* 虚拟机与物理机的性能差距?
* 虚拟机都开放了哪些端口?
* 有没有虚拟防火墙?
* 中毒了怎么办?
* 应急故障处理流程?
* 对重要的数据有没有异地备份?
* 对虚拟机有没有漏洞检测机制?
* 虚拟机被人攻击了要怎么处理?
客户遇到问题通常会一个电话或者发工单过来让我们协助处理,可能是由于服务对象是政府部门,那边的人很准时上下班导致我们这些在后面提供服务的人闲的一匹,所以我们基本上不用加班,无工单处理的情况下就坐在办公室“玩”一天的电脑,最大的乐趣就是写一些小脚本简化一下巡检步骤。所以我现在对运维的认知就是:在服务器上执行命令处理问题的就是运维,盯好监控平台的告警信息,帮客户处理问题。总觉得我这个工作大部分时间充斥着琐碎事务,完全就是一个客服加打杂的工作,运维工作并不能直接的创造价值。这样想或许有点偏激吧,毕竟我所处工作环境有相对完整自动化运维环境,很多工作点一下鼠标就完成了,腾讯的开发真厉害。。。
# 谈一下学习
由于我的工作相对比较闲,如何让工作变得高大上一点呢?那就只能学习了。。。
作为一个一线基层运维,我觉得,自身能做的就是**学习**。学习专业技能,学习如何沟通,学习通用技能(如英语能力,文档能力)。提高专业能力,你才能实现你想做的运维平台,解决你遇到的那些问题。 提高沟通能力,你才能让你的直属领导和同事支持你做你想做的事情(很遗憾有时候我是那种只敢想不敢和领导说的人,可能是因为技术太垃圾了?胆子太小?),自动化也好,学新知识也罢,都需要时间。 提高英语能力可以让你更快的学习专业技能,提高文档能力可以让你的工作成果在不同部门之间推广,让你得到其它同事的认可。 并且不要放弃任何学习和练手的机会,如果同一份工作,手动解决和通过编写自动化脚本所需时间相差并不多,那一定要选择用脚本来实现,多动脑子少动手。
## 我是这样了解新事物的
- 理论学习:
* 从别人口中了解到一样新的东西,拿小本本记下来
* 查阅资料了解(用谷歌,不要用百度)详情,看下官方文档
* 思考用他的好处,为什么要用他
* 到一个神奇的网站[gitlogs](https://www.gitlogs.com/)去查询一下有没有相关的项目,看看别人是怎么用的
- 实战部分:
* 思考这个东西的使用场景
* 先用yum部署,熟息之后源码安装
* 测试它的基本使用
* 思考如何提升性能,想一下如何自动化部署
- 整理:
* 好记性不如烂笔头,把学习的流程整理成博客或者mybase
* 找机会在生产环境中部署
我比较笨,学新的东西都习惯的做一下笔记,万一有用到的机会我们就可以参考之前做的笔记,比再次去查阅资料来的快一下。
![1-1](http://pded8ke3e.bkt.clouddn.com/1-1.jpg)
* * * * *
分割线~~~~
* * * * *
# 目录章节更新说明
***自己挖的坑,怎么滴也得写完。。。***
一、学习方法论 **(finished)**
二、运维技能图谱 **(finished)**
三、运维常用技能
- 3.1 Vim(最好用的编辑器) **(finished)**
- 3.2 Apache & Nginx(Web服务) **(finished)**
- 3.3 Tomcat(Web中间件) **(waiting)**
- 3.4 Keepalived(负载均衡高可用) **(waiting)**
- 3.5 Memache(分布式缓存) **(waiting)**
- 3.6 Zookeeper(分布式协调系统) **(waiting)**
- 3.7 KVM(开源虚拟化) **(finished)**
- 3.8 GitLab(版本控制) **(finished)**
- 3.9 Jenkins(运维自动化) **(waiting)**
- 3.10 WAF(Web防火墙) **(finished)**
四、常用数据库
- 4.1 MySQL(关系型数据库) **(waiting)**
- 4.2 Mongodb(适用与大数据分析的数据库) **(waiting)**
- 4.3 Redis(非关系数据库) **(waiting)**
五、自动化运维工具
- 5.1 Cobbler(系统自动化部署) **(finished)**
- 5.2 Ansible(自动化部署) **(finished)**
- 5.3 Pupput(自动化部署) **(waiting)**
- 5.4 SaltStack(自动化运维) **(waiting)**
六、存储
- 6.1 GFS(文件型存储) **(waiting)**
- 6.2 Ceph(后端存储) **(waiting)**
七、运维审计分析
- 7.1 Zabbix(运维监控) **(finished)**
- 7.2 云镜(安全监控) **(finished)**
- 7.3 ELK(日志收集展示) ** (waiting)**
八、运维云平台
- 8.1 OpenStack(开源云操作系统) **(finished)**
- 8.2 Tstack(腾讯云平台) **(waiting)**
- 8.3 K8s(微服务容器化) **(waiting)**
九、运维编程技能
- 9.1 Shell(运维必会语言) **(waiting)**
- 9.2 Python(万能的胶水语言) **(waiting)**
十、Devops运维
- 10.1 理念 **(waiting)**
- 10.2 Devops实战 **(waiting)**
- 献给我的朋友们
- 一、个人对学习的看法
- 二、运维技能图谱
- 三、运维常用技能
- 3.1 Vim(最好用的编辑器)
- 3.2 Nginx & Tengine(Web服务)
- 1. Nginx介绍和部署
- 2. Nginx配置解析
- 3. Nginx常用模块
- 4. Nginx 的session 一致性问题
- 3.3 Tomcat(Web中间件)
- 3.4 Keepalived(负载均衡高可用)
- 3.5 Memcache(分布式缓存)
- 3.6 Zookeeper(分布式协调系统)
- 3.7 KVM(开源虚拟化)
- 1. 虚拟化介绍
- 2. KVM基础
- 3. 设置VNC和时间同步
- 4. kvm虚拟机快照备份
- 5. kvm虚拟机在线扩展磁盘
- 6. kvm虚拟机静态迁移
- 7. kvm虚拟机动态迁移
- 8. kvm虚拟机存储池配置
- 9. cpu添加虚拟化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安装与汉化
- 3.9 Jenkins(运维自动化)
- 3.10 WAF(Web防火墙)
- 3.10.1初探WAF
- 四、常用数据库
- 4.1 MySQL(关系型数据库)
- 1. MySQL源码安装
- 4.2 Mongodb(适用与大数据分析的数据库)
- 4.3 Redis(非关系数据库)
- 五、自动化运维工具
- 5.1 Cobbler(系统自动化部署)
- 5.2 Ansible(自动化部署)
- 5.3 Puppet(自动化部署)
- 5.4 SaltStack(自动化运维)
- 六、存储
- 6.1 GFS(文件型存储)
- 6.2 Ceph(后端存储)
- 七、运维监控工具
- 7.1 对监控的理解
- 7.2 Zabbix(运维监控)
- 7.2.1 Zabbix简介
- 7.2.2 Zabbix服务部署
- 1. Zabbix服务端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix监控服务
- 1. 监控网络设备
- 2. 自定义Nginx监控
- 7.3 云镜(安全监控)
- 7.4 ELK(日志收集展示)
- 八、运维云平台
- 8.1 OpenStack(开源云操作系统)
- 8.1.1 OpenStack简介
- 8.1.2 实验架构设计
- 8.1.3 集群环境准备
- 8.1.4 controller节点部署
- 1. 安装Mariadb Galera Cluster集群
- 2. 安装RabbitMQ Cluster集群
- 3. 安装Pacemaker
- 4. 安装HAProxy
- 5. 安装配置Keystone
- 6. 安装配置glance
- 1. 制作镜像模板
- 7. 安装配置nova
- 8. 安装配置neutron
- 1. 配置虚拟机网络
- 9. 安装Dashboard
- 10. 安装配置cinder
- 8.1.5 compute节点部署
- 1. 安装相关软件包
- 2. 安装Neutron
- 3. 配置cinder
- 4. 创建第一个虚拟机
- 8.1.6 OpenStack报错处理
- 1. cinder僵尸卷删除
- 8.1.7 快速孵化虚拟机方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 单点部署
- 2. 多节点部署
- 8.2 Tstack(腾讯云平台)
- 8.3 K8s(微服务容器化)
- 九、运维编程技能
- 9.1 Shell(运维必会语言)
- 9.2 Python(万能的胶水语言)
- 十、Devops运维
- 10.1 理念
- 10.2 Devops实战