严谨点

《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支撑运维自动化相关推荐

  1. Pipeline支撑运维自动化:sftp原子模块

    需求 如果我们某个业务平台需要和很多第三方渠道对接sftp来交互传输文件,而且要求各三方渠道的目录是相互安全隔离的,那么在配置sftp时需要考虑以下几个问题: 一个业务平台账户可能对应多个三方渠道账户 ...

  2. CI/CD如何支撑运维自动化

    运维思索 运维工作中的重复性工作有哪些? 新服务器上架,与CMDB.监控.堡垒机联动同步: 操作系统初始化,包括用户.内核.安装源.规范目录.安全基线等: 基础组件初始化,包括Java环境.Pyhon ...

  3. Servicehot和你说说运维自动化的那些事儿

    2019独角兽企业重金招聘Python工程师标准>>> 运维管理兜兜转转十几余载,大家的运维管理再也不是小米加步枪.人工费力拉线扛服务器的传统时代,如你所知,这些年大家张口闭口谈的都 ...

  4. 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》

    文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...

  5. 京东数据库运维自动化体系建设之路

    运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化.自动化.平台化.智能化的艰难转变,所以说是需求在驱 ...

  6. 你不知道的京东数据库运维自动化体系建设之路

    运维自动化来源于工作中的痛点,京东数据库团队面对的是商城成千上万的研发工程师,这种压力推动我们不断变革,然而变革不是一蹴而就,也经历过从手工到脚本化.自动化.平台化.智能化的艰难转变,所以说是需求在驱 ...

  7. 运维自动化之salt

    转自:http://wiki.saltstack.cn/reproduction/om-auto-salt 参考:http://blog.lightcloud.cn/?p=251 转载出处: http ...

  8. 运维思索:接地气的运维自动化建设

    简述 <运维思索>介绍了一系列运维规范.运维管理及自动化的文章,主要分享的是运维自动化建设的部分想法与思路.站在读者的角度,或许只有我自己明白,那么它们在整个运维自动化建设中到底处于什么位 ...

  9. 运维思索:运维管理与运维自动化

    简述 各位小伙伴,近期技术文感觉发的有点多,不知是否给大家在工作中解决实际问题带来了一些灵感.为什么这么说呢?因为正是文章中涉及的细小知识点积少成多,让我从零碎繁忙的运维工作中得到了一定程度的解放.相 ...

最新文章

  1. 时序预测竞赛之异常检测算法综述
  2. python 装饰器 参数-[Python]写个带参数的装饰器
  3. android 判断按钮是否已经有onclicklinstener,通过点击事件监听setOnClickListener彻底理解回调...
  4. boost::callable_traits下qualified_class_of的测试程序
  5. UI binding render - how to check
  6. ssm使用全注解实现增删改查案例——Emp
  7. mysql 索引:类型 、创建
  8. QStackedWidget设置无效问题
  9. 【java】修改包访问的数据
  10. C# List与Array性能比较
  11. java 获取当前时间所在自然周起止时间及自然周中的每一天
  12. MindMapper免费下载版附序列号激活儿童思维导图软件
  13. PTA拼题A2023跨年挑战赛
  14. vue+echarts中国地图+省市级地图(全程教学,你也可以)
  15. 计算机里的小游戏在哪,windows10游戏在哪里_win10电脑自带的游戏在哪里
  16. <STM32F103ZET6>通过串口更新flash字库(包括LVGL字库烧写)
  17. js的常用功能及属性总结
  18. 互联网研发晋升答辩汇总
  19. k8s中GPU虚拟化工具gpu-manager的安装
  20. 解决ssh过程中报Too many authentication failures

热门文章

  1. php根据阅读记录推荐内容,php记录 - 作业部落 Cmd Markdown 编辑阅读器
  2. 大学计算机基础码,大学计算机基础字符的编码——区位码和国标码
  3. Python爬虫scrapy框架的源代码分析
  4. python画k线图 自定周期_【量化小讲堂- Python、pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期...
  5. 墙面有几种装修方法_常见墙面装修方式有哪些 有几种装饰的方式
  6. [Synth 8-3848
  7. 用什么软件可以注册亚马逊买家账号
  8. html(隐藏域)<input type=“hidden“ id=““/>用法
  9. 如何区分usb摄像头和uvc摄像头
  10. Android热补丁动态更新实践