前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维系统重构的设计思路

运维系统重构的设计思路

作者头像
jeanron100
发布2018-07-26 15:41:29
6910
发布2018-07-26 15:41:29
举报
文章被收录于专栏:杨建荣的学习笔记

最近要对已有的运维平台做重构工作,为什么要做重构,主要还是因为各种各样的原因,需要对已有的问题改进,修复历史遗留包袱。这个时间迟早都会来到,还不如自己自觉一点,提前发现问题,提前修复。

整个重构的核心思路就是对已有的平台做前后端分离,方向主要是对已有的后端设计做改进。

运维前后端分离的开发流程

如果把重构比作一桌子菜,那么重构需要做的具体的事情,我分为了几类:

业务重构,脚本管理,API管理,通用日志管理。整个过程预计持续一周,然后我也准备要低调一些,专心做专业范围的事情,同时负责MySQL的审核项目跟进,如果你也在做这方面的,或者感兴趣,欢迎留言交流。

下班前先出了一个基本版本,后续就会把自己吹的牛都一一补全。

业务重构

l 对已有逻辑的梳理

l 去除已有项目中的冗余设计

l 多数据源的支持,设计DAO层

l 对于项目中的SQL语句调用,统一使用DAO层来对接

前后端分离的设计和改进

l 前后端开发流程

l 前端技术部分改进

脚本管理

l 实现脚本信息的可配置化管理

l 实现脚本的信息查看

l 脚本类别和信息的管理

l 脚本信息提交后由脚本管理员审批

l 脚本审核后可以统一发送通知邮件

API管理

l 能够实现平台项目中的API信息管理

l 对于API的调用方法进行统一管理 GET, POST, PUT, DELETE

l 对API的调用信息进行日志记录

l 对于部分业务的API调用,在view层可以做到配置化,需要结合urls.py

l 实现初步的页面流转服务化,页面流转通过配置来完成

l 完善API的认证接口,可以支持多种认证模式,目前支持三类,无认证,Token认证和BASIC认证。

l URL和API的权限管理结合

通用日志管理

l 设计通用日志模块

l 对日志信息统可以一规范设计

l 需要统一的日志配置

设计审计日志和操作明细记录

定义明细信息的解析方式,在日志中统一配置解析格式

暂定义统一的日志记录表,后期根据数据量来做调整

代码语言:javascript
复制
def get_logger(logger_name,log_level=None):
    if log_level == None:
        log_level = logging.INFO
    logging.basicConfig(level=log_level, format='%(asctime)s %(levelname)s %(name)s: %(message)s')
    logger = logging.getLogger(logger_name)
    return logger



def create_loggger(request,client_ip=None,status=None):
    username = request.user
    url = request.path
    if url[-1] == "/":
        url = url[:-1]
    request_type = str(request.method).lower()
    request_params = json.dumps(request.GET)
    request_data = json.dumps(request.data)
    ops_detail_Log = Ops_detail_Log()
    ops_detail_Log.username = username
    ops_detail_Log.client_ip = client_ip
    ops_detail_Log.url = url
    ops_detail_Log.request_type = request_type
    ops_detail_Log.request_params = request_params
    ops_detail_Log.request_data = request_data
    ops_detail_Log.Status = status
    ops_detail_Log.save()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档