汽车之家网(车网之家)

作者介绍

王显宝,汽车之家运维团队成员,主要负责AutoCMS的开发工作和缓存平台的运维工作,擅长python自动化运维,分布式缓存和分布式文件系统应用管理。

汽车之家运维团队,是汽车之家技术部里最为核心的团队,由op和dev共同组成。我们的目标是为汽车之家集团打造一个高性能,高可扩展,低成本,并且稳定可靠的网站基础设施平台。

团队技术博客地址为 http://autohomeops.github.io/

正文

一、前言

AutoCMS 是汽车之家目前正在使用的统一配置管理工具,本文将详细介绍该系统的使用方法和架构实现。

先来回顾下汽车之家软件部署和配置文件管理的经历的几个阶段:

原始阶段(依靠手工部署,wiki制定规范)

软件包的来源没有强制规范,带来了很大的安全隐患。

新业务上线或者业务紧急扩容,运维投入大量人力来完成繁重的体力劳动。

部署目录标准化依赖wiki规范维护,人力部署的时候经常会出现问题

汽车之家网(车网之家)

最初阶段软件部署和配置文件管理完全依赖人力完成。部署新业务,运维根据研发测试环境的软件版本,去官网下载软件包,在服务器上编译安装,然后根据研发需求,手工配置文件,启动服务。该阶段暴露出诸多问题:

半自动化阶段(依赖人力打包,yum方式部署)

随着运维自动化的推行,搭建自己的yum源,自己打包来规范软件版本来源和部署目录。需要批量部署的时候,逐台登录服务器执行yum install 安装相关的软件包即可,该阶段已经节省了很大的人力,不过依然需要逐台登录服务器去修改配置文件才能够满足上线需求。配置文件变更前的备份和故障后的恢复依然需要人力维护。

自动化阶段

现在正在使用的管理系统AutoCMS,实现页面化管理软件部署和配置文件,实现快速批量管理软件。

下面将详细介绍一下我们正在使用的AutoCMS。

二、AutoCMS使用方法介绍

AutoCMS 是基于puppet实现的软件部署和配置文件管理的一套系统,避免手动安装部署软件,提供可靠的软件标准化部署,配置文件和基础服务的管理服务。 本系统主要实现以下几点功能:

批量部署软件包

页面管理软件的配置文件变更,支持备份和回滚

多环境部署,开发,测试,线上环境相互隔离

灰度推送配置

远程执行安全的命令

基本的统计功能

使用者操作流程如下:

创建主机

主机组是需要批量部署同一个软件或者下发相同配置的主机的集合,创建主机组的同时需要关联一下配置模块,该配置模块是提前写好的puppet模块。

添加主机

将需要部署该模块的主机加入该组内(本系统中主机的输入源是cmdb接口)

选择环境

根据需求选择该主机的环境,各个环境的配置数据独立存储,彼此不受影响。

配置部署参数

根据配置模块不同,编写配置文件,生成不同的配置页面,业务运维只要在页面上选择相应的参数,puppet会根据这些参数生成相应的配置文件。

推送配置

业务运维再前端页面配置完成后,返回主机组管理页面,选择主机并进行推送配置,便会触发相关主机的puppet agent 运行,部署相应的软件和配置。

三、系统架构说明

AutoCMS使用django作为前端框架,后端部署程序主要基于puppet实现,通过puppet的enc和report功能实现完整的部署和配置逻辑,整体架构如下:

简要分析下:

前端配置页面

由于各个软件配置选项不同,所以前端的软件参数配置页面要采用配置文件动态生成。

数据存储

设计初期,我们在mysql和MongoDB之间选择了MongoDB,主要出于一下几点考虑:

Schema-less,json风格存储:由于配置数据根据软件的不同,其数据不能依靠key-value能够存放的,每个软件的配置项可能会有自定义的结构,所以采用了json格式来处理,而MongoDB的bson恰好能够满足需求,省去了在mysql中频繁使用外键。此外,json格式数据易于掌握和理解,存储的数据一目了然。

CRUD方便快捷,支持范围查询和正则查询,还支持支持upsert选项(如果不存在则插入)。

与其他nosql产品相比,我们对mongodb的持久化和高可用方案更加熟悉。

部署实施层

该部分是通过puppet模块实现,模块中引用的参数通过自定义facter或者使用enc来读取配置存储的MongoDB获得,

一台主机的多实例部署通过create_resources函数实现,例如一台主机需配置多个tomcat实例,数据会是如下结构:

多环境分离实现: 本系统中puppet代码部分有git作为版本控制,通过git自身的多分支的特性来做puppet代码层面的环境分离。根据需求来执行不同分支的puppet代码即可。

四、配置案例

下面以tomcat自动部署模块为例,进行详细介绍:

1. 根据部署需求,设计出配置数参数的存储结构

2. 填写前端布局的配置文件,自动生成前端配置页面。

3. 编写puppet自动部署模块。

4. 编写enc转换程序

5.以上准备工作做好之后,系统上线,运维可以创建主机组,关联tomcat模块,将需要批量部署的主机加入该组内,并进行参数配置

6. 配置完成后,进行灰度发布验证没问题后,进行全量推送,观察状态,配置完成。

五、小结

汽车之家网(车网之家)

随着云时代的到来,很多服务器可以定制镜像实现所需的运行环境,不过随着业务规模的扩大,服务器的个性化配置会越来越多,镜像的维护工作也会逐步增加,使用AutoCMS可以灵活的解决这个问题。把各自的配置需求写成配置模块,并把服务器分组,批量推送下去,可以节省运维人员很多体力劳动。让运维人员将精力投入到更有价值的工作中。

欢迎关注汽车之家运维团队订阅号,让我们一起成长。

加入运维帮地方群

现在已经开通上海、广州、深圳、杭州、成都同城群,先加微信yunweibang666,然后拉你进群,敲门口令:你所在城市。

运维帮精选

欢迎加入运维帮QQ技术讨论群:542812110

快乐分享,快乐生活

商务合作,请加微信yunweibang008

赞赏作者

人赞赏

声明:本文内容整理自网络,观点仅代表原作者本人,投稿号仅提供信息发布服务。如有侵权,请联系管理员。

(0)
上一篇 2022年9月11日 12:20
下一篇 2022年9月11日 18:19

热点推荐

  • 天猫精灵玩法大全(天猫精灵玩法汇总大全)

    天猫精灵是阿里巴巴人工智能实验室研发的一款AI智能语音终端设备。通过普通话语音指令,可以实现智能家居控制、语音购物、查询快递、语音购物、时事热点新闻和音频音乐播放等,带来人机交互新体验。依靠阿里云强大的机器学习技术和计算能力,成为…

    汽车 2022年9月24日
    178
  • 河源汽车 河源汽车站电话号码是多少

    (来源:河源日报、源河app) 注意啦!1月10日起,黑烟车进入源城区、江东新区、河源高新区和东源县城等限行区域,将由公安机关交通管理部门依法处罚。 日前,我市发布《河源市人民政府关于限制黑烟车上路行驶的通告》(下称《通告》)。《…

    汽车 2022年9月11日
    206
  • 为什么很多药店要转让(医院内为什么有药店)

    自从电商的快速兴起,让很多实体店的生意惨淡。现如今,很多人都抱怨说实体店生意难做,真挚有些店铺老板赔钱也要转让出去,很久都没有人接手,赔钱甩货大红条幅随处可见,然而药店却是越开越多,似乎还很赚钱,这是什么原因呢? 第一、店铺租金昂…

    汽车 2022年10月6日
    206
  • 托辊是什么(托辊是什么设备)

    托辊是带式输送机的重要部件,能支撑输送带和物料重量。它占了一台带式输送机总成本的35%,产生了70%以上的阻力,因此托辊的质量尤为重要。托辊能减少皮带运行阻力,并使皮带的垂直度不超过一定限度以保证皮带平稳地运行。 托辊按其用途分类…

    汽车 2022年10月4日
    214
  • 雪帽山风景区在什么地方(盖州雪帽山风景区天气)

    雪帽山风景区在辽宁省盖州市九寨镇三道河村。雪帽山又名和尚帽山,海拔879.8米,是千山之余脉,可由山谷入口索道直达山巅。登山远望,渤海明珠鲅鱼圈全景尽收眼底。因其绝佳的山水风光被誉为“东北九寨沟”。 雪帽山风景区: 景区内有辽宁省…

    汽车 2022年10月6日
    199
  • 小米电视测评哪个好(小米电视6oled评测)

    11月5日,小米在自家科技园举办了新品发布会,发布了小米电视5 Pro电视,也就是我们今天要评测的这一款。其实在此前的各种预热、谍照和小道消息的曝光和猜想多多少少对于小米电视5Pro的外观在潜意识里有了一个基本的构架。   直到发…

    汽车 2022年10月9日
    239
  • 文员是做什么的?(怎么做文员)

    不同的公司,文员一职所做的工作有所不同。通常情况下,文员是做些文字处理、文档整理、复印文件、接听电话及处理办公室日常事务之类的工作。 文员是公司的基层职员,一般从事文件处理工作,也有许多的公司从薪金上划分员工/文员/职员的级别。通…

    汽车 2022年10月6日
    189
  • 最新:新能源汽车购置补贴将于 2022 年 12月31 日终止

    被比亚迪新能源汽车取代连续5年自主一哥位置的吉利汽车,正深陷被前者发起的新能源汽车年底保价促销大战。 就在10月,自2013年以来,中国车市首度出现“银十”销量低于“金九”。 11月30日发布的乘联会数据显示:11月21-27日,…

    2022年12月5日 汽车
    652
  • 领克汽车(领克汽车怎么样质量好不好)

      长城新媒体张家口12月9日讯(记者 郑世繁)12月9日,基于“工业4.0”的理念规划建设,由吉利控股集团投资、按照沃尔沃全球质量标准建设和管理、由吉利汽车集团管理和运营的领克汽车张家口工厂在张家口市南山产业集聚区正式落成,生产…

    汽车 2022年9月13日
    162
  • 鄢怎么读(鄢怎么读音姓氏)

    yān。鄢,左右结构汉字。基本字义是指 中国周代诸侯国名,在今河南省鄢陵县一带;该字也是姓。鄢姓源流单纯,一支出自妘姓,以国名、居住地为氏;一支得姓始祖:求言。相传帝颛顼的元孙陆终的第四个儿子名求言,封在郐国,今河南省新郑县西北的…

    汽车 2022年10月8日
    226

发表回复

登录后才能评论