从《进化/运维技术变革与实践探索》看运维体系建设与个人成长
最近在学习赵成大佬的《进化/运维技术变革与实践探索》一书,在极客时间也有教程。整本书从以下的四个方面进行了梳理:应用运维体系建设、效率和稳定性等方面的最佳实践、云计算方面的思考和实践、个人成长与趋势热点分析。自己在运维行业也有四五年了,但是还未形成自己的知识体系;只有在大量的输入、记笔记、思考、整理后,才能打造出属于自己的知识体系(不管哪个行业)。因此在学习这本书的时候,也分四部分记录自己的学习和思考。
运维体系建设的核心
运维体系建设的核心是:应用
1、应用的起源
1)从单体工程,拆分出n个独立的模块;这些模块可独立部署和运行,并提供对应的业务能力;模块数量与业务复杂度相关;并且每个应用都有唯一的标识符,也就是应用名。
2)此拆模块的过程为从业务角度入手进行拆分细化得到业务逻辑单元;
2、应用模型及关系模型的建立
应用业务模型:也就是每个应用对外提供的业务服务能力,以API的方式暴露给外部;这个业务模型通常是由业务架构师在进行业务需求分析和拆解时设计,更多的是聚焦在业务逻辑上。
应用管理模型:也就是应用自身的各种属性,如应用名、应用功能信息、责任人、Git地址、部署结构(代码路径、日志路径以及各类配置文件路径等)、起停方式、健康监测方式等。
应用运行时所依赖的基础设施和组件:
资源层面:应用运行时所必须的资源载体如物理机、虚拟机或容器;若提供对外服务则还有虚拟IP和DNS域名服务。
基础组件:主要是中间件体系,如数据库、缓存、消息队列、存储等。
应用业务模型主要是开发/架构师关注;应用管理模型和应用运行时所依赖基础设施和软件主要是运维关注。基础设施和关联组件都是为了上层应用服务,若脱离了业务,单独的基础设施和组件没有意义。
应用业务模型、应用管理模型、应用运行时所依赖的基础设施和组件三者关联:
3、应用的生命周期
1)应用的创建阶段
2)应用的研发阶段
3)应用的上线阶段
4)应用的运行阶段
5)应用的销毁阶段
标准化体系建设的基础
标准化、标准化、标准化
标准化的步骤:
标准化的过程实际上是对运维对象的识别和建模;
1)识别运维对象
2)识别对象属性
3)识别对象关系
4)识别对象场景
基础设施层面的标准化:
1)识别运维对象,主要由服务器、网络、IDC、机柜、存储、配件等。
2)识别对象属性,比如服务器的SN序列号、IP地址、厂商、硬件配置(CPU、内存、硬盘、网卡、PCIE、BIOS)、维保信息等;网络设备的属性如厂商、型号、带宽等。
3)识别对象关系,比如服务器所在的机柜、虚拟机所在的宿主机、机柜所在的IDC等,网络拓扑关系等。
4)识别对象场景,服务器的日常操作有采购、入库、安装、配置、上线、下线、维护等。可视化和查询的场景有拓扑关系的可视化和动态展示,交换机和服务器之间的级联关系,状态(正常/故障)展示等。
将以上的信息通过ER建模工具进行数据建模,再将以上的信息固化到数据库中,资源层面的CMDB基本成型。信息固化不是目的,信息流动起来才有价值。
应用层面的标准化:
1)识别运维对象,在做微服务架构设计或拆分的时候就确定下来。
2)识别对象属性
应用的元数据属性:也就是简单直接的描述一个应用的信息,如应用名、应用owner、所属业务、是否是核心链路以及应用功能说明。
应用的代码属性:主要是编程语言及版本(决定后续的构建方式)和GitLab地址。
应用的部署模式:涉及的基础软件包,如Java、C++、Go等语言包,以及如Tomcat、JBoss等容器。
应用的目录信息:运维脚本目录、日志目录、应用包目录、临时目录等。
应用的运行脚本:如启停脚本、健康监测脚本。
应用的运行时参数配置:运行端口、Java的JVM参数GC方式,以及新生代、老生代、永生代的堆内存大小配置等。
3)识别对象关系
应用与基础设施的关系:包括应用与资源、应用与VIP、应用与DNS等的关系。
平行层面的应用与应用之间的关系:应用服务或API与其他应用服务和API的依赖关系,比如全链路这样的工具平台,就是用来处理应用间关系管理的。
应用与各类基础组件之间的关系:比如应用与缓存、应用与消息、应用与数据库之间的关系等。
4)识别对象场景
应用创建、持续集成、持续发布、扩容、缩容、监控,容量评估、压测、限流降级等。
标准化体系建设的基础架构
常见的分布式基础架构组件:
在微服务的分布式架构下,设计的主要基础架构组件有:
分布式服务化框架:如Dubbo、Spring Cloud等。
分布式缓存及框架:缓存如Redis、Memcache等,框架如Codis、Redis Cluster等。
数据库及分布式数据库框架:数据库如Mysql、MariaDB等。
分布式的消息中间件:如Kafka、RabbitMQ、ActiveMQ以及RocketMQ等。
前端接入层部分:四层负载LVS,七层负载Nginx或Apache,再比如硬件负载F5等。
基础架构组件的选型:
从开发层面和运维层面进行选型调研。
基础架构服务化:
对基础架构组件制定了统一的标准后,需要对其进行服务化,比如通过对API接口的封装,进行运维的操作,其实就是PaaS化的过程,产出结果就是Paas平台。
金句
1、软件架构的目的,是将构建和维护所需的人力资源降到最低。
2、跳出运维看运维,从架构角度看运维,这种运维思路上的转变,远比单纯提升运维技术更有价值。
3、SRE不等于运维,SRE的核心理念是:用软件工程的方法重新设计和定义运维工作。
4、在微服务架构下,必须换一个思路来重新定义和思考运维,运维一定要与微服务架构本身紧密结合起来。
5、合理的组织架构是保障技术架构落地的必要条件,用技术手段来解决运维过程中遇到的效率和稳定性问题才是根本解决方案。
6、我们要建立以应用为核心的运维管理体系。
总结
整个这部分介绍了标准化系统建设的核心是应用,然后对基础设施层面的标准化、应用层面的标准化、基础架构的标准化进行了介绍。这些理论上的东西我们要结合自己工作进行比对,看哪些时做的好的,哪些是需要改进的,应用到实际的工作中。可以自己画一张数据模型图出来。从这里也可以看出我们平时需要的运维技术体系也有一个大概的模型。
最后
李先生(Lemon),高级运维工程师(自称),SRE专家(目标)。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)
从《进化/运维技术变革与实践探索》看运维体系建设与个人成长相关推荐
- 基于python技术的自动化运维是干嘛的_《Python自动化运维 技术与最佳实践》.pdf...
[实例简介]Python自动化运维 技术与最佳实践 [刘天斯著][机械工业出版社][2014.12][291页].pdf [实例截图] [核心代码] 目 录 本书赞誉 前 言 第一部分 基础篇 第1章 ...
- python自动化书籍pdf_Python自动化运维技术与最佳实践PDF可复制版电子书免费下载...
市面上介绍互动的.面向对象的Python编程语言的书有很多,其强大而又灵活的特性,使其成为很多企图通过工具来实现工作(半)自动化的运营同学的首选.更难得的是,本书作者以其在腾讯游戏运营的工作经验,辅以 ...
- python自动化运维书籍推荐_《Python 自动化运维:技术与最佳实践》
第一部分 基础篇 第1章 系统基础信息模块详解 2 1.1 系统性能信息模块psutil 2 1.1.1 获取系统性能信息 3 1.1.2 系统进程管理方法 6 1.2 实用的IP地址处理模块IPy ...
- 腾讯运维技术专家集结,揭秘高效智能运维 | 沙龙报名中
活动信息 收获多多 收获与腾讯.行业技术大咖面对面交流机会 收获机器学习算法在运维领域的应用经验 收获腾讯数字化转型中,海量业务上云实践经验 收获研发运维技术PaaS体系实践 收获云运维方向技术趋势解 ...
- 版电力系统故障录波_电力系统中的变电运维技术匹配专业中的应用
电力系统中变电运维产生故障的主要原因分为两点: (1)人为因素.在变电运维工作的过程中,变电运维人员是其中的主体,其专业素质和责任意识直接决定着变电运维工作的整体质量,目前部分变电运维人员的安全意识和 ...
- 滴滴全民拼车日背后的运维技术揭秘
桔妹导读:抗击疫情,桔妹提醒大家出门带好口罩,勤洗手,多通风.武汉加油!中国加油!在大家开工之际,桔妹邀您阅读滴滴全民拼车日背后的运维技术揭秘. 滴滴在2019年12月举办了空前盛大的全民拼车日活动, ...
- 电厂运维的cis数据_数据中心运维,太难难难了
建设数据中心难,数据中心运维是难上加难,十年运维老师傅,将给你讲述数据中心核心资产设备运维的难.难.难. 一.监管难 老师傅:监管难,难在IT设备物理安全管理粗放. ①设备随意堆放 ②设备进出无记录 ...
- 运维工程师是桥的护栏_运维工程师岗位职责与任职要求
驻场运维工程师岗位职责及要求 一. 系统维护人员能力 / 素质要求: 1. 具备优秀的计算机软.硬件知识,能够快速判断软.硬件故障,并且能 够指导用户使用主流软.硬件: 2. 熟悉常用的操作系统 (W ...
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
最新文章
- k-d tree算法的研究
- Java循环读取文件夹下文件
- TCP/IP详解--TCP/IP中三次握手 四次握手状态分析
- 利用python把图片转换成代码
- Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
- C++ transform 浅析
- springboot + rabbitmq 整合示例
- Nutch2.x+Hadoop 2.5.2+Hbase0.94.26(续2)
- redis数据库各种数据类型的增删改查命令
- 好轮子收藏:一个支持几乎所有流行格式的图像加载库stb_image.h
- Python 错误:ValueError: unsupported format character ‘Y‘ (0x59) at index 146
- Bailian3179 最长单词【字符串】
- 完美解决SpringMVC中静态资源无法找到(No mapping found for HTTP request with URI)问题...
- 火狐firebug和firepath插件安装方法
- word如何删除某一页的页眉
- 电脑硬件基础知识科普
- 恭喜 李星鹏 成为 Layotto Committer!
- ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
- 网络互联技术(1)——前篇—【转载】计算机发展史
- linux系统命令作业