公司上线流程 pushonline_alpha

 这是在公司将服务部署上线的一个记录,只是部署很小的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 [email protected] 如果发现要输入密码的话,先退出来,输入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文件的地址就好

时间: 2024-10-26 18:15:26

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

SVN代码上线流程

为了确保维护svn代码的正确性,特制定上传代码流程如下: 开发人员开发: 开发人员本地分支----取得svn最新代码(根据前一天的最后tag合并)-----代码开发----提交分支. 合并时候注意事项,对于冲突的文件看是不是自己本地正在修改的文件,不是的话就按照诛仙的tag来覆盖,否则按照本地,最好提前解决冲突问题(不好操作的话就被分好自己本地代码,讲SVN代码拿过来,好好看一下冲突冲突的问题),这样在回合的时候就可以按照自己分支来操作了(当然我们也要看一下,以防止别人先合并) 开发人员代码合并

业务数据库开发上线流程v1.0

XX业务数据库开发上线流程v1.0 草拟时间:2015.11.23制订时间:修订时间: 0x00 目的 本文定义了业务在开发上线发布过程中涉及的数据库相关流程,指引业务人员高效完成数据库上线工作,最终确保上线质量可控. 0x01 适用范围 人员:所有研发人员,运维人员数据库:业务所有MySQL 数据库 0x02 流程说明 流程内容包含:数据库申请-->功能开发---功能与性能测试-->提交审核-->运维审核--->上线变更---验证---上线结束 1. 数据库服务申请 流程负责人员

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

海量用户高并发SAAS产品测试上线流程 SAAS产品测试上线流程-以Web插件产品为例子 1   概述 在互联网产品中,IT公司之间更加注重产品功能之间的协作,SAAS形态的产品扮演着越来越重要的作用. 一个典型的完全由宿主代理的SAAS服务的通讯流程如下图: 这样的产品一般具有如下特点: 一般由第三方提供专门的服务 通常以网络为媒介来提供服务 具备嵌入的客户端功能 具备第三方服务端功能 一般不以独立的产品形式直接面向客户 一般需要集成“寄生”在宿主产品中来面向客户 SAAS形态的主要产品有:

代码上线流程以及版本发布小结

之前的上线流程很简单粗暴如图: 这简直是灾难性质的,上传 SVN,在测试服务器上看看正在调试的接口没问题,直接 sync 到线上服务器.代码无法回滚,只能覆盖.而客户端的同学需要稳当的 api 作为调试,最初的做法,他们需要新数据,我们就需要上线代码.这很坑爹,也许某人某段代码正写了一半,又正好提交.被另外一个人上线了,那么就线上出了严重 BUG.对此我们很头疼,所以做了如下规划: 首先建立三个版本库 开发服务版本库(对应图片中 dev,假设为 http://211.155.84.144/top

一个完整的网站上线流程(转)

上线的流程 1. 上线流程包含下列几个方面:1.1. 网络规划1.2. 系统规划1.3. 数据迁移2. 网络规划包含的内容2.1. 挑选机房2.2. 是否需要划分多个网段2.3. 出口是否需要VSRP2.4. 交换机之间如何进行备份2.5. 各个交换机之间的连接速度大小3. 系统规划包含的内容3.1. 挑选服务器3.2. 选择存储3.3. 选择操作系统3.4. 网站如何进行分层3.5. 各个应用如何良好分配到不同的服务器上3.6. 系统的监控3.7. 系统的备份4. 数据迁移4.1. 静态存储的

代码上线流程

目录 上线流程 填写申请单 运维人员操作流程 上线流程 填写申请单 填写<系统变更.上线申请单> 顶目名称:顶目名称,如 Linux运维 项目版本:版本号 申请时间:需在工作日13点前作出申请 上线时间:由运维经理指定上线时间(一般是工作日下午17点左右,紧急情况例外) 完成时间:代码上线所有操作完成时间(代码上线.回滚,确认) 变更内容:需申请人对此处上线引起的结构.内容等变化,详细记录 申请人:填写申请代码上线人的姓名 上线人:填写服务器操作人的姓名(由运维经理指定) 技术经理:技术经理亲

将公司上线的 App软件生成二维码操作

将上线到App  Store 的软件生成 二维码,通过扫描二维码即可实现自动跳转到App Store 找到该软件进行下载安装 准备工作: 1. 一台mac  电脑 2. mac 版的  iTunes  软件(苹果电脑自带) A.  接下来就是在mac电脑的 iTunes 软件上找到贵公司上线的App软件(通过输入App软件的名称进行搜索到) 1. 打开mac电脑上的这个iTunes软件 2.  点击应用程序,然后在后面的搜索框中输入贵公司的App名称 回车键进行搜索 3. 接下来将搜索到的App

公司注册流程

我会在接下来的注册过程中逐步完善该流程. 为公司取一个名字 填写已准备好的公司名称,由工商局上网(工商局内部网)检索是否有重名,如果没有重名,就可以使用这个名称,审核通过后领取<企业名称预先核准通知书>,同时领取相关的设立(开业)登记申请书. 所需文件:<<企业名称预先核准申请书>> (含指定代表或者共同委托代理人授权委托书及身份证件复印件) 常见问题: 核准登记的流程是怎样? 内资企业名称预先核准登记 名字登记要注意什么? 名称登记问题解答 主营项目和经营范围怎么填写

iOS 上线流程

今天说一说上线,希望对上线流程不太熟悉的小伙伴提供一些帮助.如果有不明白的地方,可以私信我哦! 上线流程我们可以分为三部分: 证书,APPID和描述文件的配置 Xcode设置 iTunes填写APP信息 1,证书,APPID和描述文件的配置 首先我们要登陆开发者网站 开发者网站 登陆开发者账号 登陆开发者账号 进入证书.APPID和描述文件的创建页面 证书创建 创建证书 如果有发布证书,这里就不需要创建了,从创建发布证书的电脑上面导出P12即可!如果没有,就需要点击Production创建发布证