这是在公司将服务部署上线的一个记录,只是部署很小的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文件的地址就好

转载于:https://www.cnblogs.com/qingjiaowoyc/p/6994489.html

公司上线流程 pushonline_alpha相关推荐

  1. 安卓和苹果上线流程:

    安卓和苹果上线流程: 1.虽说APP开发是一个项目开花结果的过程,但APP开发后上线以及推广也是整个APP生命过程中不可或缺的一部分,整个APP设计开发上线推广是个庞大工程,若想开发一个相对完美的饿A ...

  2. APP开发的上线流程

    APP的使用已经非常普及,对于企业来说通过APP可以加强和客户的沟通,展现最新的产品和服务.随着APP应用商店对用户隐私的重视,APP的上线规则比以前更加复杂,甚至出现APP需要反复修改数十次才能上架 ...

  3. iOS—APP打包上线流程

    iOS-APP打包上线流程 1 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件和证书之类的文档下载好了,所以无需再安装此类文件 ...

  4. 国外APP外包开发及上线流程

    现在很多APP都做成全球通用版,尤其是一些小游戏类的APP,玩法全球基本都类似,在多个国家上线多个销售渠道.今天和大家分享一下Google Play上线流程及注意事项,希望对大家有所帮助.北京木奇移动 ...

  5. web前端项目上线流程是怎样的

    web前端项目上线流程是怎样的? (1)流程建议 模拟线上的开发环境 本地反向代理线上真实环境开发即可.(apache,nginx,nodejs均可实现) 模拟线上的测试环境 模拟线上的测试环境,其实 ...

  6. 公司工作流程——开发流程

    摘要 本博文主要是介绍在公司中开发实际的流程,帮助你的更好的进入工作.快速熟悉的公司的流程.同时本人在世界五百强软件公司工作,我们我们公司的开发流程请大家参考,每一个公司的流程稍微不一样.但是大致的流 ...

  7. 国外APP项目的上线流程

    现在很多创业者希望自己的项目能走出国内,向全球各地发展,尤其对于一些通用APP来说,国外可以增加一个新的收入渠道.比如常见的出海APP有小型游戏.手机清理.杀毒软件等等,这些类型的APP在全球的使用基 ...

  8. 第6章 测试上线流程

    第6章 测试&上线流程 6.1 测试相关 6.1.1 公司有多少台测试服务器? 测试服务器一般三台. 6.1.2 测试服务器配置? 有钱的公司和生产环境电脑配置一样. 一般公司测试环境的配置是 ...

  9. 模拟运维中产品上线流程

    1.LAMP与LNMP 1)什么是LAMP? LAMP(Web应用软件组合)是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统(准确来讲是系统内核) Apac ...

最新文章

  1. Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4
  2. node2vec python_node2vec应用记录
  3. (MS SQL)如何实现相关文章功能(多关键字匹配)
  4. 存储类型_malloc_typedef小结
  5. WildFly上具有AngularJS的Java EE 7和Java WebSocket API(JSR 356)
  6. 自考--网络经济与企业管理--选择易考题
  7. android 好用的工具,android studio 的几个好用的工具
  8. 最好的ppt转pdf软件
  9. Hyper-V故障转移群集搭建(1)
  10. 如何卸载mysql5.6.28_如何完全删除MySQL以进行全新安装
  11. Atitit.异常机制的设计原理
  12. 如何远程配置DHCP服务器
  13. 水稻生物育种突破 国稻种芯-何登骥:功能性农业外源植物导入
  14. ThinkPHP3.2中使用第三方库(phpQuery)
  15. ArcGIS亚洲字体(CJK)垂直显示
  16. 如何解决html文档无法复制,职场必备技能:网页文档无法复制,3招教你轻松搞定...
  17. Curl转python在线工具
  18. 《Linux命令行与shell脚本编程大全》笔记一
  19. 好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析
  20. 基于Ant Design和jQuery UI的表单设计器

热门文章

  1. UA MATH563 概率论的数学基础 鞅论初步4 Radon-Nikodym定理,条件期望的存在唯一性
  2. UA MATH564 概率论VI 数理统计基础3 卡方分布的正态近似
  3. MongoDB使用入门
  4. Vue -- element-ui el-table 的合计在第一行显示并可点击
  5. The Linux Command Line读书笔记(二)
  6. 参加技术会议的一些小窍门
  7. JavaScript之事件的绑定与移除
  8. android.graphic.Path
  9. 上周热点回顾(10.1-10.7)
  10. poj 3352【Road Construction】