运维思索

运维工作中的重复性工作有哪些?

  • 新服务器上架,与CMDB、监控、堡垒机联动同步;
  • 操作系统初始化,包括用户、内核、安装源、规范目录、安全基线等;
  • 基础组件初始化,包括Java环境、Pyhon环境、Nginx等各种组件;
  • 应用版本发布、回滚,此过程与监控联动;
  • 应用管理操作,如启动、停止、重启等;
  • 监控系统与应用相关监控项的创建、禁用、启用等;
    ……

上述这些重复性的工作会零碎的分散在我们日常的运维过程中,我们有什么办法能够通过自动化的方式来处理这些琐碎的事情呢?

我的解决方案就是借助Jenkins 通过CI/CD的方式来实现运维自动化。之所以选择Jenkins,不只是因为其能够通过各种插件实现各种工具的集成,更重要有以下几点:

  • BlueOcean

    Jenkins官方从用户角度出发,可使复杂的pipeline可视化,快速直观地理解管道状态。

  • 扩展共享库

    通过共享库可以实现多个项目之间共享流水线,有助于减少冗余并保持代码干净整洁。

  • Pipeline

    流水线既可以作为job独立执行,也可以作为一项任务被其他流水线调用。

总结以上两点:

  1. BlueOcean满足了我对可视化管理界面的需求,降低了运维开发前端管理界面的负担,让我们把精力更多的集中在我们擅长的领域;
  2. 扩展共享库更大程度上满足了我对运维岗位的理解:二线运维通过共享库管理提供运维的原子化模块;一线运维通过pipeline自由组合共享库中的原子模块,形成最终的解决方案;

随着原子化的模块不断增多,那么我们的自动化运维就可以覆盖更多的场景,后续通过故障自愈的方式接入,那么就可以给我们释放更多时间,届时真正的SRE将不再是梦!

确保长期关注研发工作:Google 将 SRE 团队的运维工作限制在 50% 以内,剩余的时间花在研发项目上.
----《SRE: Google运维解密》

扩展共享库和流水线


如图,我们通过pipline编排出以下运维场景:

  • 服务器自动上架
  • 基础组件定制化安装
  • Java应用自动上线
  • Java应用版本发布

这些场景运行构建时会调用扩展共享库中多个原子化模块,为方便区分我们将各个原子模块针对其功能划分为以下几个级别:

  • 操作系统级
  • Java应用级
  • Apollo配置中心级
  • 监控系统级
  • CMDB级

后续我们可根据实际情况自行添加相关原子模块至扩展共享库中。

场景自动化实现

1.服务器自动上架

服务器的自动上架更多的是借助于蓝鲸标准运维,但因为服务器自动上架也是运维工作中的常见场景,所有在此进行简单说明,具体实现请见《蓝鲸智云实现虚拟机交付》、《运维思索:cmdb打通zabbix、jumpserver探索》。

2.操作系统初始化与基础组件安装

操作系统初始化与基础组件安装借助于Jenkins + Ansible Playbook实现,同时也可以作为一个job由其他场景进行集成调用。其具体功能实现请见《Jenkins+Ansible:助力基础设施建设》。

3.Java应用自动上线


Java应用自动上线一般在应用第一次上线时使用,目的是在明确的运维规范前提下,能够快速上线应用。此过程我们主要使用的时pipeline job 及扩展共享库中的原子模块:

  • CMDB级模块:根据应用名获取应用IP;
  • pipeline job:基础组件初始化;
  • apollo配置中心级模块:配置发布;
  • Java应用级模块:应用版本发布、健康检查及应用启停等;
  • 监控系统级模块:监控项新增;

通过这一些列的搭配,我们实现了Java应用自动上线的运维场景。

4.Java应用版本发布


Java应用版本发布包含发布、回滚两部分,在此我们统一以发布为准。此过程主要使用的是扩展共享库中的原子模块:

  • CMDB级模块:根据应用名获取应用IP;
  • apollo配置中心级模块:配置发布;
  • 监控系统级模块:屏蔽监控;
  • Java应用级模块:应用版本发布、健康检查及应用启停等;
  • 监控系统级模块:恢复监控;

由于版本发布在各公司的具体流程有所不同,在此我们需要根据实际情况自行调整,将流程中缺失的环节可以做成原子模块增加到扩展共享库。

总结

CI/CD不仅能够在企业DevOps进程中发挥重要作用,其实在运维自动化过程中也能做到足够有效的支撑。因此如果我们只将其当作成一个打包工具就大错特错了,其带给我们思想上的转变则更加有意义。

CI/CD如何支撑运维自动化相关推荐

  1. 后话:PipeLine支撑运维自动化

    严谨点 <CI/CD如何支撑运维自动化>主要讲述了我们在运维自动化方面的一些思路与实现方式,但后来经过仔细的琢磨发现应该将此称为"Pipeline如何支撑运维自动化"更 ...

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

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

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

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

  4. 运维自动化之ANSIBLE

    成功不易,加倍努力! 运维自动化之ANSIBLE 本章内容 1 自动化运维应用场景 1.1 云计算运维工程师核心职能 1.2 运维职业发展路线 1.3 企业实际应用场景分析 1.3.1 Dev开发环境 ...

  5. 中小型运维团队如何设计运维自动化平台

    前言 我给中小型运维团队的定义是整个团队人数(所有运维工程师 + 运维开发工程师)为 20 人以下,一般这样的团队,能为自动化投入的资源也许就 1.2 个开发人员. BAT 等大公司的 DevOps ...

  6. 运维自动化(一)----运维监控

    ​ 我们的生活里,离不开监控,监控能够最大程度上,发挥如下作用, 实时监测,即使你不在电脑前,也能实时掌握监控区域情况,提高工作效率. 事后录像查询,如果不法事件未能即使发现制止,可以调取录像,让不法 ...

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

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

  8. 运维自动化------ansible搭建

    运维自动化发展历程及技术应用 IaaS基础设施即服务(相当于卖硬件) ,PaaS平台即服务(卖操作系统),SaaS软件即服务(卖软件) 企业实际应用场景分析 灰度环境(生产环境的一部分) 功能:在全量 ...

  9. 运维自动化之基于python语言的文字界面的运维管理软件

    之前开发了php+mysql+shell运维监控系统,监控起来很方便,但在运维管理方便还是不能实现,所以最近打算使用python语言编写一套的运维管理系统,可以使用单台或多台机器同时管理与部署等功能, ...

最新文章

  1. css如何设置dialog,css-dialog提示
  2. 动手写一款简单的chrome天气插件
  3. go mysql 乱码_MySQL 乱码之我见
  4. Jquery的深度拷贝和深度克隆
  5. Java断言(assert)
  6. 构造类斐波那契数列矩阵
  7. iPhone SE 3最高机身内存将增至256GB 较当前版本翻番
  8. luogu2680 运输计划
  9. arcgis 经纬度转大地坐标_ArcGIS的地理坐标系与大地坐标系
  10. 由公司APP大面积闪退问题引发的测试基建思考
  11. python selenium清除缓存,Selenium Python:无法清除chrome浏览器缓存
  12. 搭建测试环境详细步骤
  13. Vue+Mui商城项目使用说明(首页仿淘宝)
  14. 芝诺数解|【三】前程未可量,奋发而为之——国产动画电影探索之路
  15. 如何在WordPress中的页面上添加博客文章
  16. NOIP2017提高组模拟赛4 (总结)
  17. 网页版邮箱提取/采集软件
  18. xiuno开发文档_大白 · TinyMCE编辑器v1.9_Xiuno Plugin_奇狐插件商店_奇狐网
  19. 数据与程序的物理独立性、数据与程序的逻辑独立性、为什么数据库系统具有数据与程序的独立性?
  20. Docker(六)Docker Hub+Docker Registry

热门文章

  1. android:ellipsize = marquee 跑马灯,Android基于TextView属性android:ellipsize实现跑马灯效果的方法...
  2. [实操]通过调用百度开放平台,实现AI图像识别.
  3. CentOS7升级glibc失败导致系统崩溃
  4. c语言炉石传说模仿代码项目,炉石传说套牌代码功能:卡组文本编码一键导入...
  5. 【Ribbon负载均衡调用】—— 每天一点小知识
  6. 【通俗易懂】关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂
  7. 泰拉瑞亚直连服务器怎么进,泰拉瑞亚1.3联机教程 最新steam直连教程
  8. 数据仓库架构设计的一点概念
  9. 详解如何使用HiPush的API推送消息到微信|微信消息推送开发文档
  10. PC_app自动化程序测试(一)