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

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

技术选型

Python3+Diango+Vue

支持的功能如下:

  • CMDB 资产管理
  • 容器管理( k8s )
  • 应用发布 (定时发布、分批发布)
  • 作业编排(文件上传、命令执行)
  • JAVA 应用诊断
  • 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)日志查看

 

容器webssh

 

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

 

 

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

 

 

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

 

 

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

 

 

项目开源地址:  https://github.com/dnsjia/luban

欢迎大家star, 微信公众号: 自记小屋

 

 

 

 

Logo

前往低代码交流专区

更多推荐