让运维简单高效,轻松搞定运维管理平台
文章目录
随着业务复杂度越来越高,已经没有办法靠人来运维整个平台和业务了。可以试想,如果都需要人工干预完成工作,那得需要投入多少人力?当业务上线时,我们需要部署环境、部署项目;当发生问题时,我们人为地去感知问题后排查问题、定位问题,这时业务可能已经挂了很长时间。所以要基于对运维的理解构建起自动化、智能化运维平台。
今天给大家推荐如何去从零开始开发一套基于 Python 的运维平台。
技术选型
Python3+Diango+Vue
支持的功能如下:
- CMDB 资产管理
- 容器管理( k8s )
- 应用发布 (定时发布、分批发布)
- 作业编排(文件上传、命令执行)
- JAVA 应用诊断
- Elastic 查询
- 钉钉扫码登录
- 部署审批
- 系统监控
- 在线终端
- 容器日志
Elastic查询
JAVA应用诊断:线程状态、反编译class文件、方法追踪
面对线上服务器cpu使用率一直处于100% ,cpu使用率居高不下,某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?按照传统方法我们需通过top命令定位到cpu占用率较高的线程之后,使用jstack pid
命令查看当前java进程的堆栈状态。隔段时间再执行一次stack命令获取thread dump,通过thread dump分析线程状态
在dump中,线程一般存在如下几种状态:
1、RUNNABLE,线程处于执行中
2、BLOCKED,线程被阻塞
3、WAITING,线程正在等待
针对以上问题,可以使用应用诊断快速定位线程是否存在死锁,线程CPU使用率过高问题。很大程度上节约了线上问题排查故障时间
容器管理:可以对容器进行扩容、回滚版本、远程终端、日志查看等
Deployment YAML在线编辑
容器(POD)日志查看
容器伸缩:通过scale对容器进行扩容、缩容
容器详情:定位POD异常无需执行kubectl describe pod繁琐操作, 通过容器详情可以查看到容器事件信息, 状态等
容器webssh
作业:文件分发、 执行命令
资产管理:支持阿里云ECS同步、 本地导入
应用发布:分批发布、定时发布
灰度规则:openresty+lua+redis实现应用灰度流量拦截
内部账号权限申请
项目开源地址: https://github.com/small-flying-pigs/devops-api
欢迎大家star, 微信公众号: 自记小屋