我的编程空间,编程开发者的网络收藏夹
学习永远不晚

自研的Devops工具是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

自研的Devops工具是怎样的

这篇文章给大家介绍自研的Devops工具是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

2018年为了解决日常运维中的痛点以及更高效的推进运维工作,我们自研并完善了几个工具系统,这些系统无一例外的帮我们节约了时间,提高了效率,这篇文章将分享介绍一下这些工具系统

系统介绍

自研的Devops工具是怎样的

CMDB

CMDB配置管理数据库,主要用来记录我们管理维护的软硬件信息,包含实体的服务器,交换机以及虚拟的项目、服务、环境等所有需要管理维护的信息,通俗一点理解就是之前我们可能一个excel表格记录了我们维护的所有项目,项目所用的服务器资源,服务器的配置等等信息,都可以录入到CMDB系统里统一维护管理

CMDB系统是其他很多系统的基石,要给所有用到基础信息的第三方系统提供API以查询或修改数据,例如提供项目对应的服务器信息给持续部署工具推送代码到项目服务器上,所以CMDB系统的数据准确性非常重要,同时只在一个地方维护基础信息能够让整个运维系统更可控,更高效,减少出错

我们CMDB系统上线时间比较久,之前仅是用来替代Excel表格维护信息用,今年为他增加了API,提供给第三方系统获取基础数据,API认证采用了JWT,关于API认证这篇文章有更多的介绍:Django+JWT实现Token认证

自研的Devops工具是怎样的

varian

varian是我们内部开发的一个模块化的持续集成工具,主要负责项目从源代码到最终可部署程序的这个过程,现在有大部分项目已经是Docker部署了,那么varian会负责从源代码到最终打包好的项目镜像并上传到镜像仓库这个过程,其中会涉及到编译、合并、压缩等等操作,这篇文章有详细介绍我们varian的工作过程:探秘varian:优雅的发布部署程序

varian的核心逻辑是把持续集成中的每一个小步骤拆分成独立的类或方法,最终根据项目类型的不同组装不同的类或方法,实现不同类型不同技术栈项目能够共用同一套持续集成程序,减少代码冗余,提高可用性

nova

nova持续部署,配合varian做整个上线流程,nova主要负责的是将最终的可部署程序或者Docker镜像推送到线上各个节点更新的过程,因为线上环境比较复杂,有云主机、Docker容器、私有云、公有云k8s等,所以在nova这一层做了兼容

nova只接受三个参数,1.项目名称,2.部署环境,3.部署版本号,根据项目名称和部署环境调用CMDB提供的API确定最终推送项目到哪些节点,根据版本号去拉取代码仓库代码或者镜像仓库镜像

扩容、回滚、重启等操作都可以通过nova系统自动完成,这篇文章介绍了持续部署的更多细节:Docker环境的持续部署优化实践

自研的Devops工具是怎样的

kerrigan

在整个发布上线的过程中除了代码的变更之外,通常还会涉及到配置文件、数据库的变更,为了解决配置文件自动更新的问题我们开发了kerrigan系统,这篇文章有关于配置中心实现细节的介绍:中小团队落地配置中心详解

kerrigan底层基于etcd+confd实现,主要实现在web端修改,服务器上自动更新生效的功能,kerrigan还能够管理多环境不同类型的配置,尤其擅长文件型的配置(区别于通常看到的基于KV的配置中心,对运维更友好),例如管理nginx,tomcat等配置,同时能够记录配置文件的修改历史,快速回滚配置,还支持配置文件对比,只修改保存延后发布等功能

因为我们项目比较多,每个项目的nginx里边有一堆的规则,基于Docker的话每个rewrite的更新都需要重新打包发布比较繁琐,使用kerrigan之后有效解决了这个问题

自研的Devops工具是怎样的

overmind

数据库运维系统overmind,除了能够解决发布上线过程中的最后一环数据库变更外,我们还集成了其他一些实用的功能,例如SQL审核、SQL查询、自动导数据的工单系统,密码表等

overmind的第一个版本主要是集成了inception做SQL的审核和执行,帮助我们自动化的处理线上数据库的变更,这篇文章有介绍:中小团队快速构建SQL自动审核系统

完成第一个版本之后内部推动开发测试使用,收集到反馈,在第一个版本的基础上添加了SQL查询、Explain执行计划展示等功能,后续发现DBA经常接到各个不通环境之间导数据的需求,又开发了工单功能来实现数据自动迁移,这篇文章有介绍迁移:运维效率之数据迁移自动化

后边抛弃了Excel维护密码的方式,开发了密码表功能,见这篇文章介绍:Django开发密码管理表实例【附源码】

overmind在慢慢完善,后续还会基于需求和实用性添加更多的功能来提高效率

自研的Devops工具是怎样的

proxy

proxy是一个代理系统,类似于阿里云的SLB,kubernetes的ingress,主要给开发测试环境使用

我们维护项目较多,每个项目有多套不同的环境,每个环境都有不同的域名,对应不同的后端服务,为了模拟真实请求过SLB代理的环境以及集中的管理这些项目入口,之前的做法是把所有的域名都指向到一个nginx服务器,nginx服务器通过基于域名的vhost代理到后端服务,每次添加或修改都通过手动变更nginx配置文件来完成,现在开发了proxy系统,可以通过页面来快速方便的完成

自研的Devops工具是怎样的

wiki

wiki系统在18年之前已上线,当年提出来规范化、文档化、自动化、智能化的运维目标,文档是整个运维过程中非常重要的一环,其好处不用多说,持续推进文档的输出也是我们非常重要的一环

自研的Devops工具是怎样的

当然除了以上这些系统外还开发了一些小工具来规范管理,提高效率,这里不多介绍。另外我们还用到了大量的开源软件系统,例如Jenkins、ELK套件、Kubernetes等

我们知道devops是从研发到上线整个过程自动化的一种思想,并不是某个工具或者某几个工具的集合,我一直在想如何才能将devops落到实处,18年基于当前的环境我们开发了以上的各种工具来帮助我们高效的工作,但这些工具系统相对分散,不能形成体系流程,19年会实践一些方式方法将这些工具系统串联,实现更高程度的自动化,同时也会持续推进Kubernetes更大范围的落地,为真正的实现Devops思想,从开发到上线的全流程自动化打基础

关于自研的Devops工具是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

自研的Devops工具是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

自研的Devops工具是怎样的

这篇文章给大家介绍自研的Devops工具是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。2018年为了解决日常运维中的痛点以及更高效的推进运维工作,我们自研并完善了几个工具系统,这些系统无一例外的帮我们节约了时间
2023-06-19

ETL工具sed进阶是怎么样的

ETL工具sed进阶是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sed 详解我觉得 sed 玩到最后,应该触及的最高难度的问题,有这些:替换百万行文
2023-06-06

HttpClient 4.0封装工具类是怎样的

这篇文章将为大家详细讲解有关HttpClient 4.0封装工具类是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。以下为本人在实际开发过程中封装的HttpClient工具类,HttpC
2023-06-03

kafka-manager监控工具的搭建是怎样的

这篇文章给大家介绍kafka-manager监控工具的搭建是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.下载sbthttp://www.scala-sbt.org/download.html[root@sh
2023-06-03

JVM监控工具用法是怎么样的

JVM监控工具用法是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。你对JVM监控工具的用法是否了解,这里向大家描述几种,VisualVM是一种集成了多个JDK命令行工具
2023-06-17

基于Electon的图片采集工具是怎样的

基于Electon的图片采集工具是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。工具的界面是这样的,上面是一些导出数据,提交到服务器的操作,还有输入URL的输入框,下
2023-06-19

新手用的Python开发工具是怎么样的

新手用的Python开发工具是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python开发工具很多,比较大有的重型武器有Pycharm,Anaconda,VS Cod
2023-06-17

Typora自动编号的具体操作是怎样的

这期内容当中小编将会给大家带来有关Typora自动编号的具体操作是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。概述在使用Typora写比较长的文章时,需要给章节编号,方便区分层次。如果手动编号,一
2023-06-21

用于Linux服务器的自动安全审计工具Lynis是怎么样的

今天就跟大家聊聊有关 用于Linux服务器的自动安全审计工具Lynis是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Lynis是Unix/Linux等操作系统的一款安全审
2023-06-15

大型组织DevOps成熟度模型是怎样的

本文小编为大家详细介绍“大型组织DevOps成熟度模型是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“大型组织DevOps成熟度模型是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。DevOps 是一
2023-06-28

基于Spring的上下文工具类ApplicationContextUtil是怎样的

基于Spring的上下文工具类ApplicationContextUtil是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Spring上下文工具类 Applicati
2023-06-25

亚马逊自研服务器芯片怎么样的

亚马逊自研服务器芯片是一种基于ARM架构的芯片,名为Graviton。这种芯片是亚马逊为了降低其云计算服务成本而开发的,目前已经在亚马逊的AWS云计算服务中得到了广泛应用。Graviton芯片采用了ARM架构,这种架构相对于传统的x86架构来说更加节能,因此可以降低服务器的能耗和成本。此外,Graviton芯片还采用了多核心设计,可以提供更高的性能和更好的并行处理能力。在实际应用中,Graviton芯片已经得到了广泛的应用。根据...
2023-10-27

自动化运维工具SaltStack在云计算环境中的实践是怎样的

这篇文章将为大家详细讲解有关自动化运维工具SaltStack在云计算环境中的实践是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。随着云计算技术的快速普及与发展,越来越多的企业开始学习和
2023-06-04

Linux系统性能监控工具Glances是怎样的

本篇文章为大家展示了Linux系统性能监控工具Glances是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Glances介绍glances是一个基于python语言开发,可以为linux
2023-06-16

Linux内核开发工具介绍是怎么样的

本篇文章给大家分享的是有关Linux内核开发工具介绍是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。众所周知,Linux内核是使用make命令来配置并编译的,那必然少不
2023-06-16

Web界面开发工具Kendo UI是怎样自适应渲染

Web界面开发工具Kendo UI是怎样自适应渲染,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。自适应渲染Kendo UI for jQuery通过支持自适应增
2023-06-19

SpringBoot配置热加载工具devtools的过程是怎样的

SpringBoot配置热加载工具devtools的过程是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、devtools原理介绍spring-boot-devto
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录