运维思索:接地气的运维自动化建设
简述
《运维思索》介绍了一系列运维规范、运维管理及自动化的文章,主要分享的是运维自动化建设的部分想法与思路。站在读者的角度,或许只有我自己明白,那么它们在整个运维自动化建设中到底处于什么位置、发挥着什么作用呢?
先来分享一张比较初步且接地气的图:
图中所用到的运维工具应该都是我们比较熟悉的且常用的,从运维框架的层次来看:
- 基础设施层,Vsphere虚拟化、物理机等;
- 数据层,数据库、elk、缓存等;
- 应用层,各种基础组件、业务应用,如java、python、php、nginx、中间件等;
- 平台层,各种监控工具、管理工具,如Vsphere、jumpserver、Jenkins等;
我们的运维工作基本都分布在以上4个层次,因此如何高效、高质量的交付就成为了我们主要面对的问题。
技术栈
对于繁杂的运维工作,我们首先想到的应该都是自动化,那么自动化对技术栈要求高吗?是否需要一定的开发能力?带着这个问题来继续往下看。
从上面的图中可以看出,我主要用到了以下几个技术组件:
- Cobbler
- Ansible
- Jenkins
- 蓝鲸
- Python
- Zabbix
- Vsphere
- JumpServer
以上几个工具大家都不陌生,但是大家对工具的定位不同,也就决定了他们发挥作用的大小。尤其是对Ansible、Jenkins、蓝鲸的定位。
1.Ansible
Ansible作为一个自动化运维工具,如果你只是把他当作批量执行命令的工具,那么它的充其量就是一个脚本工具。但是如果把它作为我们运维过程的配置中心呢?
它可以帮助我们完成很多配置管理需求:
- 操作系统初始化
- 安全基线调整
- 环境初始化,如java、python
- 基础组件安装,如nginx、python
- 批量执行命令
- 中心化备份控制
- mysql同步
作为配置中心,ansible的幂等性、免客户端性可以很友好的在操作系统交付后去实现我们更多的个性化需求。
2.Jenkins
Jenkins作为持续集成/交付工具,不只是可以在devops领域发挥重要作用,还可以利用其强大的流水线,配合Ansible组件实现更多的参数化流程控制。
- 参数化操作系统初始化
- 参数化应用系统上线
理论上Ansible完成的终端操作,都可以利用Jenkins上线界面化的参数化构建,因此Jenkins + Ansible可以组成一个简易的运维平台,实现一系列的场景化操作。
3.蓝鲸
蓝鲸作为腾讯开源研发运维运维一体化平台,它提供的CMDB、标准运维、作业平台、故障自愈可以丰富我们的运维手段。但是最重要的是我们可以依托CMDB配置管理为上层的服务提供可靠的数据支撑,再配合故障自愈+作业平台接入不同的告警源,实现服务的故障自愈。站在巨人的肩膀上,处理问题都会事半功倍。
如果Jenkins+Ansible的功能还不够个性化,那么蓝鲸就是我们的备用方案,在此我们借助蓝鲸实现了以下功能:
- 多环境(测试、准生产、生产)虚拟机上架,实现cmdb、zabbix、jumpserver等平台的联动;
- cmdb事件推送,配合python自行开发的事件推送网关,实现了以cmdb为依据的,zabbix、cmdb资产同步;
蓝鲸毕竟是一套比较重的平台,为此我们并没有全面接入,而是基于蓝鲸的标准运维的开发框架,自行开发定义了
- Vsphere原子
- Jumpserver原子
- CMDB自动注册原子
标准运维的原子开发要求我们熟悉Django框架,按照开发规范,即可将我们隔离的运维平台进行打通。
技术栈方面除了蓝鲸标准运维开发外,其他并没有什么运维需要多高的开发能力,只需要我们在平常使用中多总结就能轻松完成。如果你不信,可以多看下我的部分专栏(公众号最完整):
- Ansible之路
- 蓝鲸之路
- CI/CD之路
- Jenkins之路
这些专栏都是从日常中不断总结完善的,抱着对自己负责的态度,这其实都不是难事。
运维规范
有了技术栈并不代表我们就可以前路畅通无阻了,相反你会发现由于系统或配置的多样性,你的自动化之路简直就是寸步难行。
究其原因就是运维没有规范,团队成员都有自己的习惯,没有统一的标准规范,只会越来越乱。
因此我们从基础设施层、应用层、平台层分别总结了不同的运维规范。
1.基础设施层
操作系统安装规范
Cobbler无人值守安装操作系统会遵循安装规范、Vsphere虚拟机克隆等都会交付统一的操作系统;
操作系统配置规范
Ansible操作系统初始化会根据此规范,完成内核参数、时间同步、安全基线、安装源等一系列标准初始化;
目录管理规范
对基础组件、应用组件、日志等各个目录进行定义,后续的一系列操作都将基于这些标准目录;
2.应用层
应用配置管理规范,主要用于通过流水线交付应用系统时,对于依赖的一系列组件、参数进行规范化要求。在此应用管理规范只是一个统称,在实际应用中可以将其扩充到开发栈:
- java
- python
- php
对于每个应用的数据目录、日志目录、启动参数、配置等各个方面进行规范。
3.平台规范
平台规范是我们最后一步,因为我们最终的操作是通过运维各个平台去管理,如果此时没有相关规范限制,这无疑会为以后的某些操作留下隐患。
在此我们创建了以下规范:
Vsphere管理规范
Vsphere虚拟机创建、分配、回收等生命周期的管理依据
JumpServer管理规范
JumpServer资产的分组、权限方面的管控
Zabbix管理规范
Zabbix主机群组、主机、模板、监控间隔、告警等多方面进行管理
CI/CD规范
Jenkins 的job、流水线、slave节点等方面的管理
总结
在运维自动化建设过程中,主要还是基于运维规范、运维工具、流程控制等方面的结合,而不是分而治之。对于运维来说并没有要求有很高的开发能力,因此我把此过程称之为接地气的自动化建设。希望大家可以借鉴这个初步的模型,给自己的实际工作带来点实质性变化。
以上只是我在初步的运维自动化建设中的一些分享与见解,希望给大家能够带来一些思路与启发,不要两眼一抹黑。随着运维自动化建设的不断深入,就会对开发能力、平台整理能力有了更高的要求,这时相信你的能力也会逐渐匹配,大家一起加油!
运维思索:接地气的运维自动化建设相关推荐
- 运维思索:如何纳管服务器实现统一登录
简述 继运维思索:Cobbler无人值守实现操作系统安装规范化.运维思索:操作系统配置规范化.自动化两篇文章后,运维团队已经能够快速交付规格一致的服务器了,接下来我们的需求就是如何进一步纳管服务器并对 ...
- 运维思索:自动化运维体系如何入手
需求 运维是事件驱动,还是自驱动可能是我们在运维工作中不太关注的问题.事件驱动让运维止步于故障,而自驱动让运维不止于建设.持续性的运维建设就需要一套自动化的运维体系,那么我们应该从何入手? 其实前期& ...
- 运维思索:运维管理与运维自动化
简述 各位小伙伴,近期技术文感觉发的有点多,不知是否给大家在工作中解决实际问题带来了一些灵感.为什么这么说呢?因为正是文章中涉及的细小知识点积少成多,让我从零碎繁忙的运维工作中得到了一定程度的解放.相 ...
- 云时代运维转型必读:容器运维模式的五大场景
来自:DBAplus社群 作者介绍 温峥峰,小鹏汽车互联网中心运维高级经理,专注于运维自动化.DevOps实践.运维服务体系建设与容器运维时代下的价值挖掘.知乎专栏:HiPhone运维之道 其实我挺早 ...
- 7天攻克运维瓶颈 玩转立体运维
7天攻克运维瓶颈 玩转立体运维 云时代来临,各企业应用纷纷上云,然而云上应用架构和调用关系复杂,难以摸清,运维工作发生了巨大的变化,随之而来在云端应用运维也出现了新的挑战.购买了服务器.计算.存储.网 ...
- oracle 数据库运维技术,Oracle数据库智能运维标准化工艺研究-orastar-DIY数据库运维工具-第1期 导论篇...
1.编制目的 为了提升运维质量,增强数据库运维标准化.规范化,保障信息系统的安全.稳定.高效运行,助力实现智能运维,star同学在此抛砖引玉,特编制该文档. 2.维度定义 根据运维经验,现将数据库日常 ...
- sysAK(青囊)系统运维工具集:如何实现高效自动化运维?| 龙蜥技术
简介:What is sysAK.典型工具介绍.开源 3 方面介绍了 sysAK 系统,目前 sysAK 工具集已经在龙蜥社区开源,并且在系统运维 SIG.跟踪诊断 SIG 一起共建,希望大家后期加入 ...
- 【大型网站运维之道 天道 人道 运维之道】
大型网站运维之道漫谈 网站运维绝不是某些人眼中安装系统.做几根网线那么简单: 除去应用开发和业务运营之外的保障网站能运转的事儿都可能是运维工作的职责范围.本系列是冯大辉(Fenng)的一个系列博文,从 ...
- 智能运维就是由 AI 代替运维人员?
本文整理自 GOPS2017·上海站演讲<从说到做 - 大型企业智能运维的360度解析> 作者简介 孙杰,国内一线运维专家,从业十几载的 IT 老兵,专注于系统.运维.云计算和数据中心管理 ...
最新文章
- html桌面卡牌效果,html+css实现响应式卡片悬停效果
- vi 技巧和诀窍:令人刮目相看的 10 个超酷命令
- wordpress 拾遗
- 从4篇论文看Transformer的局部信息建模
- Dav1d移动端解码高清视频达30FPS
- MOCTF-Web-登录就对了
- PS教程第七课:如何查看图层
- Python Imaging Library: ImagePath Module(图像路径模块)
- unity3d的uGUI基本操作
- C#调用python深度学习项目排坑
- 【实用sci论文常用词语】
- QToolButton图标大小设置
- 语音信号处理 —— 笔记(一)音频信号处理
- python爬取别人qq空间相册_Python_小林的爬取QQ空间相册图片链接程序
- 使用n切换node版本
- 构建用户画像-标签体系
- 创业感悟:对未来越有信心,对现在就越有耐心
- 大学计算机专业哪个学校最好,计算机专业:最好的7所大学!也是全中国“最难考”的大学!...
- 7-4 sdust-Java-学生成绩读取与排序 (35分)CSDN-markdown编辑器
- 【JMeter】Jmeter分布式压测教程
热门文章
- Swin Transformer【Backbone】
- 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
- 飞机研制过程中的双V模型
- 季节变化影响人生重要决定 何时是最佳订婚时间?
- crlf换行 idea_git 换行符LF与CRLF转换问题
- hdfs查看目录文件的大小 hdfs dfs -du -s -h /
- cayley 图数据库简介和安装以及使用
- 深度学习光学字符识别(OCR)
- 852.山脉数组的峰顶索引---LeetCode(java实现)
- 【UE】高级载具插件-02-坦克开火