后话:PipeLine支撑运维自动化
严谨点
《CI/CD如何支撑运维自动化》主要讲述了我们在运维自动化方面的一些思路与实现方式,但后来经过仔细的琢磨发现应该将此称为“Pipeline如何支撑运维自动化”更为合适,因为我们的核心思路是通过对Pipeline进行编排,来实现不同的运维场景。
在此还有一个关键词:支撑,可能会有运维同学问,为啥不叫“实现”呢?
这个问题真的非常好,因为运维自动化是个很大的概念,这也意味着有很多不同的实现方式,而Pipeline只是其中的一种,故“支撑”而这里更加恰如其分。
请大家理解,如此的咬文嚼字正说明了我对“PipeLine支撑运维自动化”的重视,以及后续切实希望其在真正的工作中能够帮助到我们,这也是这篇“后话”的真正目的。
调研
运维的自动化离不开标准化,因此就有一个比较有趣的话题:
“ 先自动化再标准化 or 先标准化再自动化 ?”
经过初步的调研结果如下:
当我们在熟悉的领域时,“先标准化再自动化”是我们的第一选择,因为大部分的场景都经历过,知道处理问题的方式与方法。而当我们在不熟悉的领域呢?我们需要先去实践总结,这个过程可能就会选择“先自动化再标准化”。
因此对待这个问题我们要结合实际、理性看待、仁者见仁:
- 不同的选择在其相应的阶段都发挥着重要作用
- 做比说更重要
在此和大家分享我在进行运维自动化建设过程中坚持的一个理念:
结合公司当前自动化运维水平,以“先自动化,再标准化;边自动化,边标准化;既自动化,又标准化”为理念,实现标准化和自动化能力的交替上升,持续对外输出适合公司的运维技术和能力。
解决方案
通过对运维工作的不断梳理,我们将其总结成了如下的运维场景:
- 新服务器上架,与CMDB、监控、堡垒机联动同步;
- 操作系统初始化,包括用户、内核、安装源、规范目录、安全基线等;
- 基础组件初始化,包括Java环境、Pyhon环境、Nginx等各种组件;
- 应用版本发布、回滚,此过程与监控联动;
- 应用管理操作,如启动、停止、重启等;
- 监控系统实现服务器、应用等多个维度的监控与管理等
……
针对以上场景,我们如何如何选择解决方案呢?
1.成熟商业产品
虽然在一定程度上能够解决我们的痛点,但……
- 高额的产品费用
- 额外的人力成本
- 产品的稳定性、扩展性、可持续性
- 熟悉开发框架,满足后续功能扩展
2.自研运维平台
大局观上,功能要向主流标准看齐,但……
- 向主流标准看齐,需CMDB、ESB(企业服务总线)、对外API等,开发成本高
- 放低姿态,满足兼容性,对接各运维产品的API,差点意思
- 依赖稳定的开发团队,人力成本高
- 最终骑虎难下,难以维护
3.Pipeline支撑运维自动化
结合运维现状,借助Jenkins通过Pipeline对各种插件进行编排,实现各种场景的需求。
BlueOcean
Jenkins官方从用户角度出发,可使复杂的pipeline可视化,快速直观地理解管道状态
扩展共享库
通过共享库可以实现多个项目之间共享流水线,有助于减少冗余并保持代码干净整洁
Pipeline
流水线既可以作为job独立执行,也可以作为一项任务被其他流水线调用
通过以上三个方案对比,如果我们所在的公司没有足够的领导支持、成本投入、稳定的技术团队的情况下,那么"Pipeline支撑运维自动化"方案无疑将是我们优先选择的方案。
案例支撑
由于没有大佬背书或足够的案例支撑,小伙伴们可能对“PipeLine支撑运维自动化”的方案有所质疑,就连我曾经也认为这可能是一条野路子,可当我看到《SRE:Google运维解密》中介绍的Rapid系统时,我就更加确认了这套方案思路是正确的。
Google持续测试系统:Rapid ,每个Rapid项目都有一些工作流,定义了发布流程中的具体动作。工作流可以线性或者并发执行,某个工作流也可以启动另外一个工作流。Rapid将工作请求分发到运行在Borg系统上的生产服务器。
SRE: Google 运维解密
正如Rapid系统介绍,Pipelin支撑起了各个动作的具体实现,各条Pipeline还可以被其他Pipeline调用,非常的灵活。最重要的是还可以和Borg(Kubernetes 前身)结合,为我们后续在云原生领域的运维也提供了有效支持。
后话:PipeLine支撑运维自动化相关推荐
- Pipeline支撑运维自动化:sftp原子模块
需求 如果我们某个业务平台需要和很多第三方渠道对接sftp来交互传输文件,而且要求各三方渠道的目录是相互安全隔离的,那么在配置sftp时需要考虑以下几个问题: 一个业务平台账户可能对应多个三方渠道账户 ...
- CI/CD如何支撑运维自动化
运维思索 运维工作中的重复性工作有哪些? 新服务器上架,与CMDB.监控.堡垒机联动同步: 操作系统初始化,包括用户.内核.安装源.规范目录.安全基线等: 基础组件初始化,包括Java环境.Pyhon ...
- Servicehot和你说说运维自动化的那些事儿
2019独角兽企业重金招聘Python工程师标准>>> 运维管理兜兜转转十几余载,大家的运维管理再也不是小米加步枪.人工费力拉线扛服务器的传统时代,如你所知,这些年大家张口闭口谈的都 ...
- 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》
文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...
- 京东数据库运维自动化体系建设之路
运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化.自动化.平台化.智能化的艰难转变,所以说是需求在驱 ...
- 你不知道的京东数据库运维自动化体系建设之路
运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化.自动化.平台化.智能化的艰难转变,所以说是需求在驱 ...
- 运维自动化之salt
转自:http://wiki.saltstack.cn/reproduction/om-auto-salt 参考:http://blog.lightcloud.cn/?p=251 转载出处: http ...
- 运维思索:接地气的运维自动化建设
简述 <运维思索>介绍了一系列运维规范.运维管理及自动化的文章,主要分享的是运维自动化建设的部分想法与思路.站在读者的角度,或许只有我自己明白,那么它们在整个运维自动化建设中到底处于什么位 ...
- 运维思索:运维管理与运维自动化
简述 各位小伙伴,近期技术文感觉发的有点多,不知是否给大家在工作中解决实际问题带来了一些灵感.为什么这么说呢?因为正是文章中涉及的细小知识点积少成多,让我从零碎繁忙的运维工作中得到了一定程度的解放.相 ...
最新文章
- 时序预测竞赛之异常检测算法综述
- python 装饰器 参数-[Python]写个带参数的装饰器
- android 判断按钮是否已经有onclicklinstener,通过点击事件监听setOnClickListener彻底理解回调...
- boost::callable_traits下qualified_class_of的测试程序
- UI binding render - how to check
- ssm使用全注解实现增删改查案例——Emp
- mysql 索引:类型 、创建
- QStackedWidget设置无效问题
- 【java】修改包访问的数据
- C# List与Array性能比较
- java 获取当前时间所在自然周起止时间及自然周中的每一天
- MindMapper免费下载版附序列号激活儿童思维导图软件
- PTA拼题A2023跨年挑战赛
- vue+echarts中国地图+省市级地图(全程教学,你也可以)
- 计算机里的小游戏在哪,windows10游戏在哪里_win10电脑自带的游戏在哪里
- <STM32F103ZET6>通过串口更新flash字库(包括LVGL字库烧写)
- js的常用功能及属性总结
- 互联网研发晋升答辩汇总
- k8s中GPU虚拟化工具gpu-manager的安装
- 解决ssh过程中报Too many authentication failures
热门文章
- php根据阅读记录推荐内容,php记录 - 作业部落 Cmd Markdown 编辑阅读器
- 大学计算机基础码,大学计算机基础字符的编码——区位码和国标码
- Python爬虫scrapy框架的源代码分析
- python画k线图 自定周期_【量化小讲堂- Python、pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期...
- 墙面有几种装修方法_常见墙面装修方式有哪些 有几种装饰的方式
- [Synth 8-3848
- 用什么软件可以注册亚马逊买家账号
- html(隐藏域)<input type=“hidden“ id=““/>用法
- 如何区分usb摄像头和uvc摄像头
- Android热补丁动态更新实践