背景:公司对接其他系统时都会将业务分为几大模块由不同的人员去开发部署。那么部署方式为传统方式登录服务器,然后操作。所以每次上线我们可能都需要等待别的同事操作完才能操作自己所负责的业务系统。针对以上场景在公司做了一个小的运维站点:主要解决业务系统的在iis上创建、发布、回滚、删除等操作。同时提供操作步骤实时页面输出


主题:为了解决上面的问题,便捷性,做出如下结构:

OneopsClient:前台项目:提供功能:

(1):登录时选择操作环境,切换环境

(2):用户管理:添加,删除 可操作Oneops站点的用户

(3):服务器管理:添加,删除Oneops管理的服务器

(4):应用管理:查看各服务器上站点信息;向服务器添加,发布程序;回滚程序,删除程序;实时展示操作步骤

OneopsServer:后端执行具体操作业务服务。将在需要管控的服务器上部署

对应我们的项目层次图如下:

项目使用技术点:.netcore3.1   Efcore   Sqlite  Redis  SignalR Jwt  (Rabbitmq)

功能图解释:

登录,选择操作环境:

这一步我们将拿到对应环境的token,在后面请求中使用

用户管理:

这一步我们将可以添加或者删除操作Oneops账户

服务器管理:

当我们添加服务器时,那么需要将Oneops在此服务器上部署,删除时 Oneops将不再对此服务管控

应用管理:

我们将展示所有添加服务器上iis站点信息,可根据ip或者站点名去搜索。

添加应用程序:

添加应用程序时,将要提供你为站点取得名称,要部署的机器ip(可同时发布多台服务器),站点使用的端口号,支持创建.netcore  和Framwork类型的应用程序,和绑定的域名 和站点创建时对应项目的物理地址,最后上传我们的项目压缩包(压缩包需要带版本号目前是以_X)来表示 可在项目源码中更改

发布:用来我们迭代过程中更新我们项目版本

这里会带出我们选择要发布项目的名称以及你选择的同一应用不同服务器的信息(多台服务器同一项目同时发布)列出最大版本号,上传时版本号不能低于最大的版本号。

回滚:

回滚时目前只能单台服务器回滚。会加载出之前发布过的项目文件名让选择。目前只会保存最近的三个回滚包,需要改动可以在配置文件中更改回滚包数量

删除:

目前也是只能单个操作 将删除应用程序和应用程序池

日志:功能展示没有开放   可以自行链接到自己公司的elk或者文件等

实时步骤信息展示:

任何操作都会实时展示出服务端具体在做什么。绿色代码步骤通过,红色信息为某一步骤失败

Ps:步骤信息展示 本来是用rabbitmq +SignalR 实现 但是 mq并不能保证我们消息的顺序性会导致步骤信息错乱  代码保留了 但是最后换成了api回调+SignalR

github地址:https://github.com/NeverGiveUpChange/Oneops

其他不多写了 我要准备准备去面试了,有大佬公司有坑位的 可以告知一下

感谢。

Oneops运维系统的更多相关文章

  1. 百度系统部 在 北京市海淀区西二旗首创空间大厦 招聘 Python-交付运维系统研发工程师 - 内推网(neitui.Me)

    百度系统部 在 北京市海淀区西二旗首创空间大厦 招聘 Python-交付运维系统研发工程师 - 内推网(neitui.Me) 汪肴肴 (wa**@baidu.com) 发布了 Python-交付运维系 ...

  2. (转)医疗IT运维系统

    http://www.ewei.com/ask/87.html 含义解释 itil运维管理系统,为用户提供专业的it运维管理,对网络运行的状态.故障.性能等监控,又从业务的视角为管理人员提供综合分析和 ...

  3. 程序员简单打造一个灵活智能的自动化运维系统C#实例程序

    你是一个程序员,被派去管理公司500台计算机.这些机器可能需要执行一些自动化任务,一台台手动操作会把你累死.重复性的工作还是交给电脑处理,怎么解决这个问题呢?一个自动化的运维系统是必须的.自己实现的好 ...

  4. 修改linux操作系统的时间可以使用date指令 运维系统工程师必会技术

    修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下. d ...

  5. 无需认证的mail,适用于ZABBIX等运维系统

    cat main.cf | grep "^\s[^# \t].$" queue_directory = /var/spool/postfix command_directory = ...

  6. 【运维--系统】nacos介绍和安装

    目录: 简介 安装java 安装mysql 安装nacos 附录 简介 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服 ...

  7. 【运维工具】Git代码发布系统

    引言 代码发布系统是互联网公司必备的运维系统,作用主要用户发布业务代码 到 业务服务器 为什么需要代码发布系统 有的同学可能说,我们公司服务器就那么一台,做个发布系统太麻烦了? 不认同这说法 发布系统 ...

  8. 运维开发实践——基于Sentry搭建错误日志监控系统

    错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...

  9. CheungSSH国产自动化运维工具开源Web界面

    CheungSSH web2.0 发布文档 CheungSSH 简介 CheungSSH是一款国人自主研发的Linux运维自动化管理服务器软件,秉着为企业降低运营成本,解放管理员双手和自动化生产的理念 ...

随机推荐

  1. Maven下Java、JavaWeb约定标准项目结构

    1.Maven Java 项目结构: 2.Maven JavaWeb 项目结构: 注意:webapp下必须要有WEB-INF文件夹,WEB-INF文件夹下必须要有web.xml 跟 classes文件 ...

  2. windows设备相关位图与设备无关位图

    windows支持两种位图格式,DDB(device-dependent bitmap),DIB(device-independent bitmap).设备相关位图用于windows显示系统中,其图像 ...

  3. C# 实例解释面向对象编程中的开闭原则

    在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解.灵活和可维护.这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原 ...

  4. Solution -「LOCAL」充电

    \(\mathcal{Description}\)   给定 \(n,m,p\),求序列 \(\{a_n\}\) 的数量,满足 \((\forall i\in[1,n])(a_i\in[1,m])\l ...

  5. CentOS7编译安装升级openssh8.7p1

    因生成环境服务器安全扫描出的漏洞问题,只能升级最新的openssh,适用于centos6和centos7的升级使用. 一.编译前工作 openssl版本要求1.0.1以上,zlib版本要求1.1.4以 ...

  6. suse 12 二进制部署 Kubernetets 1.19.7 - 第02章 - 部署etcd集群

    文章目录 1.2.部署etcd集群 1.2.0.下载etcd二进制文件 1.2.1.创建etcd证书和私钥 1.2.2.生成etcd证书和私钥 1.2.3.配置etcd为systemctl管理 1.2 ...

  7. angular访问后台服务及监控会话超时的封装实现

    以前一直没有想过写一些东西来把项目中用到的知识点及技术实现做一个归纳整理并分享出来.现在打算逐渐的把项目中的一些东西整理并分享出来,与大家共勉! angular本身自带访问组件http和httpcli ...

  8. 数据分析工具那么多,掌握Smartbi这一个就够了!

    经常听见有人问,数据分析用什么工具好? 被大家熟知的数据分析工具有很多,比如Excel.BI.R.Python--具体选择哪个这要看个人的需求,如果非要说哪个好,其中BI工具小编觉得"老少皆 ...

  9. for循环中i++和++i 的区别(转载)

    ++i是先执行i=i+1再使用i的值,而i++是先使用i的值再执行i=i+1: for循环的执行顺序是这样的: for(a;b;c){ d; } 进入for循环,首先执行起始语句a,然后判断语句b是否 ...

  10. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第四版,稳定支持Qt5编程,zqt5语法升级,MA函数提升性能1000%,更多公式算法的内置优化实现。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...