这是在公司将服务部署上线的一个记录,只是部署很小的python脚本,各公司不同,参考性不是很大

开始吧(版本管理是git)

1.整理好代码后:git add xxx.py

git commit -m "输入这次提交的说明"

2.代码review:git push origin HEAD:refs/for/master%r=username, r=XXX

在公司相应得review管理网页中中找到相应的提交,review通过后submit就好

3.原来就在master分支上,就不用这步了,如果不在的提交到master分支上去

git push origin HEAD:master

4.开发机上 输入Pushonline_alpha 我的理解是将代码提交到远程的机器上去。然后就等代码部署好

关于pushonline_alpha命令是个什么东西,看下面这个:

背景

由于业务规模扩大,pushonline的速度和稳定性已经不能满足业务需求;所以基于nodekeeper,开发了新的上线系统;由于新的系统处于小流量阶段,所以暂时取名pushonline_alpha。老的pushonline上线的流程是先由一个server打一个bundle,然后放到hdfs,再ssh到所有需要上线的机器,然后将bundle下载下来再apply完成上线。这个过程首先是受限与上线的单机能力,所以在处理一些上线机器众多的情况效率会非常低。另外,由于上线以来ssh,所以上线会很不稳定,遇到一些负载高的节点会拖慢整个上线。HDFS作为离线存储,实时性比较难保证,上传下载bundle经常会hung住一段时间。最后,新增节点的库应该上什么版本并不知道,需要专门的初始化的过程。

实现

pushonline_alpha摒弃了ssh的思路,采用基于nodekeeper的方案来实现。nodekeeper简单来说是采用了Master-agent的框架,每个机器会有一个agent与Master保持心跳,Master通过心跳下发agent需要执行的命令,已经执行过的命令会定期检查其状态,保证机器的环境处于一致的状态。因此新增机器也可以通过增加tag来完成节点初始化,详细介绍可以参考nodekeeper。

另一方面,pushonline_alpha也废弃了同步打bundle的方案,采用一个bundle service来订阅gitlab和gerrit的push事件,收到新的push事件后,会马上开始打bundle,上传到一个maven库,需要上线的时候,直接从maven库下载就可以,节约了打bundle的时间。

用户调用pushonline_alpha上线,实际上只是记录一下当前的commit_id,然后向nodekeeper提交一个命令将XX库更新到XX commit,然后交给agent去执行,并定期从nodekeeper获取执行的进度。

5.切换管理员用户(最高权限的用户)。在开发机上ssh user@10.2.xxx.xx 如果发现要输入密码的话,先退出来,输入kinit命令,输入你的邮箱密码。然后在ssh就好了。   切换用户后  用gg 命令就跳转到想要把服务跑起来的机器上(gg 22.161这样)

6.在机器上看下git的代码是不是已经是修改完毕的代码,然后:

(1)进入/home/tiger/.server 目录 ,在这个目录下建立要启动服务的软链,就是建立real_run所在的文件夹的软链

软链就相当于一个快捷方式的感觉,用命令: ln -s 目标文件夹 服务名称      来建立

(2)有些机器没找到.server目录 ,在/home/tiger/.config/systemd/user/ 下执行相同的操作

7.建立连接后 服务就启动了,svc命令来处理服务相关

svc -d 服务名称   :停止服务

svstat 服务名称  :查看服务状态,如果启动时间一直是0s,1s的就说明没启动起来

svc -u 服务名称 :启动服务

svc -i 服务名称  :重新启动服务,查看状态时,启动时间会更新

8.注意,启动的脚步需要有执行权限,遇到了服务怎么都启动不起来,就是real_run脚本没有x权限,要chmod +x 添加下权限

9.关于脚本怎么写,可以在.server文件夹下随便找个服务看看人家的怎么写,基本上格式都一样,改个执行py文件的地址就好

公司上线流程 pushonline_alpha的更多相关文章

  1. 海量用户-高并发SAAS产品测试上线流程

    海量用户高并发SAAS产品测试上线流程 SAAS产品测试上线流程-以Web插件产品为例子 1   概述 在互联网产品中,IT公司之间更加注重产品功能之间的协作,SAAS形态的产品扮演着越来越重要的作用 ...

  2. 刚刚结束了公司EP流程,开始KMS项目开发了

    刚刚结束了公司EP流程,开始KMS项目开发了 EP流程:AGpoint+MOSS+C# KMS:MOSS上的文档管理系统

  3. node服务通过Jenkins上线流程

    构建流程 构建服务器: 拉取指定分支代码 构建服务器: 安装依赖 构建服务器: 执行构建 构建服务器: 如果上线流程,则在 git 上创建 tag,供回滚使用 构建服务器:打包 node 服务代码,和 ...

  4. 重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」

    作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 场地和场景的重要性 射击

  5. 微信小程序从开发到上线流程

    一.微信小程序从开发到上线流程 注册小程序 1.登录微信公众平台 https://mp.weixin.qq.com 2.在微信公众平台>立即注册>小程序中注册微信小程序 3.在邮箱中激活并 ...

  6. 自学linux——16.LAMP项目上线流程

    LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ①    下载nginx 网页下载https://nginx.org/en/downlo ...

  7. ios上线流程

    一.前言: 作为一名iOSer,把开发出来的App上传到App Store是必要的.下面就来详细讲解一下具体流程步骤. 二.准备: 一个已付费的开发者账号(账号类型分为个人(Individual).公 ...

  8. IOS在自己网站发布APP(企业版$299上线流程)

    最近刚上线一个企业内部应用,前期准备账号和后期上线过程发现网络上的资源不是非常全面,在这里写给大家分享一下我的发布过程 首先是企业账号的申请我们企业账号前前后后一共花了16天时间,由于公司各方面都非常 ...

  9. 公司采购 流程flowable例子

    Name: Flowable BPMN 2.0 designer Location: http://flowable.org/designer/update/ 业务描述:1. 公司采购,因为办公用品价 ...

随机推荐

  1. sublimetext3-实用快捷键整理

    实用快捷键 Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+ ...

  2. axio post 请求后端接收不到参数的解决办法

    原因是没有对参数进行序列化 默认情况下,axios将JavaScript对象序列化为JSON. 要以应用程序/ x-www-form-urlencoded格式发送数据. 在拦截器前修改 方法一,用原生 ...

  3. JSTL-3

    .循环标签:forEach标签, forTokens标签 <c:forEach>:标签:该标签根据循环条件遍历集合(Collection)中的元素 <c:forEach [var=& ...

  4. Python开发基础-Day25-28FTP项目(待补充)

    optparse C:\Users\Mr.chai>python C:/Users/Mr.chai/Desktop/PythonProject/DAY/day27/LuffyFTP/client ...

  5. code forces 505A

    Mr. Kitayuta's Gift Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64 ...

  6. POJ 1222【异或高斯消元|二进制状态枚举】

    题目链接:[http://poj.org/problem?id=1222] 题意:Light Out,给出一个5 * 6的0,1矩阵,0表示灯熄灭,反之为灯亮.输出一种方案,使得所有的等都被熄灭. 题 ...

  7. 【CF contest/792/problem/E】

    E. Colored Balls time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  8. [BZOJ3583]杰杰的女性朋友(矩阵快速幂)

    杰杰的女性朋友 时间限制:10s      空间限制:256MB 题目描述 杰杰是魔法界的一名传奇人物.他对魔法具有深刻的洞察力,惊人的领悟力,以及令人叹为观止的创造力.自从他从事魔法竞赛以来,短短几 ...

  9. HNOI2017滚粗记

    DAY0: 高三学长说了考前要么就完全颓废要么就完全学,所以我们就完全开启了颓废模式.上午教练带队去烈士公园游玩,中途机房歌神和QYS一直在谈论如何用LCT动态维护树的直径,ORZORZORZ.... ...

  10. Android Studio安装后提示No JVM installation found解决办法

    Android Studio安装后提示No JVM installation found解决办法 问题描述:Android Studio安装完毕,打开时出现提示"No JVM install ...