随着业务复杂度越来越高,已经没有办法靠人来运维整个平台和业务了。可以试想,如果都需要人工干预完成工作,那得需要投入多少人力?当业务上线时,我们需要部署环境、部署项目;当发生问题时,我们人为地去感知问题后排查问题、定位问题,这时业务可能已经挂了很长时间。所以要基于对运维的理解构建起自动化、智能化运维平台。

 

今天给大家推荐如何去从零开始开发一套基于 Python 的运维平台。

 

 

技术选型

Python3+Diango+Vue

 

 

支持的功能如下:

  • CMDB 资产管理

  • 容器管理( k8s )

  • 应用发布 (定时发布、分批发布)

  • 作业编排(文件上传、命令执行)

  • JAVA 应用诊断

  • Elastic 查询

  • 钉钉扫码登录

  • 部署审批

  • 系统监控

  • 在线终端

  • 容器日志

 

 

Elastic查询

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发

 

JAVA应用诊断:线程状态、反编译class文件、方法追踪

    面对线上服务器cpu使用率一直处于100% ,cpu使用率居高不下,某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?按照传统方法我们需通过top命令定位到cpu占用率较高的线程之后,使用jstack pid命令查看当前java进程的堆栈状态。隔段时间再执行一次stack命令获取thread dump,通过thread dump分析线程状态

 

在dump中,线程一般存在如下几种状态:
1、
RUNNABLE,线程处于执行中
2、
BLOCKED,线程被阻塞
3、
WAITING,线程正在等待

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_02

针对以上问题,可以使用应用诊断快速定位线程是否存在死锁,线程CPU使用率过高问题。很大程度上节约了线上问题排查故障时间

 

 

容器管理:可以对容器进行扩容、回滚版本、远程终端、日志查看等

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_03

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发_04

 

Deployment YAML在线编辑

让运维简单高效,轻松搞定运维管理平台 _Python自动化_05

 

 

容器(POD)日志查看

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_06

 

容器伸缩:通过scale对容器进行扩容、缩容

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_07

 

容器详情:定位POD异常无需执行kubectl describe pod繁琐操作, 通过容器详情可以查看到容器事件信息, 状态等

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发_08

 

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_09

 

 

容器webssh

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_10

 

作业:文件分发、 执行命令

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发_11

 

让运维简单高效,轻松搞定运维管理平台 _运维自动化平台_12

 

 

资产管理:支持阿里云ECS同步、 本地导入

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_13

 

应用发布:分批发布、定时发布

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发_14

 

让运维简单高效,轻松搞定运维管理平台 _Python运维平台开发_15

 

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_16

 

 

 

灰度规则:openresty+lua+redis实现应用灰度流量拦截

让运维简单高效,轻松搞定运维管理平台 _运维自动化平台_17

 

 

让运维简单高效,轻松搞定运维管理平台 _容器管理平台_18

 

 

项目开源地址: https://github.com/small-flying-pigs/devops-api

欢迎大家star