中小企业如何做运维自动化

狂风中的少年 提交于 2020-08-07 13:14:15

不管大型还是中小型互联网公司,运维面对最多的工作就是发布部署,近些年各种运维自动化工具也越来越多,运维自动化每个人都有一套自己的理解,那么中小公司一般都怎么做运维自动化呢?


我们先看一下中小企业面临的问题:

  • 人员有限,小一点的公司专业运维可能没有,开发自己上线,也有可能1-2个运维人员,基本不会投入专门的运维开发来开发运维自动化平台。

  • 服务器少,可能不超过50台服务器。

  • 版本更新迭代比较快,需要快速方便的发布回滚。


中小企业运维自动化常见做法:

  • Gitlab+Jenkins,创建Jenkins任务,使用Jenkins登录服务器执行脚本实现发布,配合服务器多个脚本实现对服务器管理。

  • Gitlab+Jenkins+Ansible,使用Jenkins调用Ansible登录服务器执行脚本实现代码的发布,平时服务器管理使用Anaible进行服务器管理。

  • K8S平台,使用K8s发布平台,打包应用Docker镜像,通过K8s发布到线上。

  • 使用开源的运维自动化平台发布管理,Github上有很多优秀的开源项目,可以使用。


虽然可以通过上面的几种方法把发布和经常操作的都实现自动化,但是避免不了登录服务器操作命令、配置任务计划,修改应用配置文件,配置服务器监控报警等。那么有没有开源平台可以很方便的实现上面说到的这些功能呢?下面就给给大家推荐一款面向中小企业的轻量级开源运维自动化平台:Spug


平台介绍:

Spug,中文名称:麻雀。寓意:麻雀虽小,五脏俱全。

它是面向中小型企业设计的无 Agent的自动化运维平台,功能包含主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、进程端口站点监控、微信钉钉邮件报警等一系列功能。


开源地址:

GitHub仓库:https://github.com/openspug/spug

官网地址:https://spug.dev

演示环境:https://demo.spug.dev(账号密码:admin/spug)


技术栈:

后端:Python + Django

前端:React + Ant Design


功能特性:

  •  批量执行: 命令可以在线批量执行

  •  在线终端: 主机支持浏览器在线终端登录

  •  任务计划: 灵活的任务计划,支持间隔执行,一次性执行,Crontab风格执行

  •  发布部署: 支持自动创建应用,支持工单,自定义发布流程

  •  配置中心: 支持KV、文本、Json等格式的配置

  •  监控中心: 支持站点、端口、进程、自定义等监控

  •  报警中心: 支持短信、邮件、钉钉、微信等报警方式

  •  优雅美观: 基于 Ant Design 的UI界面


模块功能介绍:

1、批量执行

批量执行可以同时选择多台主机执行命令,也可以将经常执行的命令保存到模版,选择执行模板里面的命令执行,执行结果实时在界面上返回。

host-exec-2.0.png

2、在线终端

在线终端,可以很方便的通过浏览器在线终端登录到主机上操作命令。

host-console-2.0.png

3、应用发布部署

应用发布,支持应用自动创建、部署、发布,创建应用只需要输入要部署的应用Git地址,和部署的目标服务器目标目录,定义好发布前、发布中、执行的命令就可以配置好应用的自动化发布部署。应用发布还支持提交工单,工单审核,工单审批通过后自动发布。

app-2.0.png


app-apply-2.0.png


4、任务计划

任务计划,支持间隔执行,一次性执行,Crontab格式执行。

task-2.0.png


task-detail-2.0.png


5、配置中心

配置中心,应用配置支持在线化配置,支持多环境配置,配置格式支持KV,TXT,Json格式的配置


service-conf-2.0.png


service-conf-json-2.0.png


conf-history-2.0.png


6、监控中心

监控中心执行站点监控,进程监控,端口监控,以及自定义脚本监控。

monitor-alarm-2.0.png


monitor-add-2.0.png

7、报警中心

报警支持微信,钉钉,邮件报警,支持配置报警联系人,报警组管理。


8、公众号:

08fea100137eedd24cef4673311091ab.jpeg

如果你感觉我们的项目不错。顺手在Github上点个Star,感谢感谢。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!