Qunar负责的项目汇总。
感谢Qunar让我成长 !!!背景
统计一下负责项目的说明。
统计
ID | 项目名称 | 中文名称 | 重要程度 | 技术架构 |
---|---|---|---|---|
1 | backyard | 骆驼帮 | ★★★ | 前后端分离项目【Python + React】 |
2 | isapi | 员工信息API | ★★★ | rest api,Python编写 |
3 | new_hrtools | AD账号管理系统 | ★★ | 任务脚本较多,Python编写 |
4 | officedb | 办公大厦管理系统 | ★ | 后台【Flask】+ 模板 |
5 | opsapp | Qtalk Apis | ★★ | rest api |
6 | outage | 故障系统 | ★★★ | 后台【Flask】+ 前端【angularjs】 |
7 | psapproval | qtalk审批申请 | ★★ | rest api,Python编写 |
8 | wwwhr | 员工信息采集系统 | ★★ | 后台【Flask】+ 模板 |
9 | newoa_api | newoa审批Api | ★★ | rest api,Python编写 |
10 | opsbi | Ops故障可视化bi系统 | ★ | 后台【Flask】+ 前端【angularjs】 |
11 | smsdb | 短信狗 | ★★ | 软件 + 硬件 |
12 | opstools-cron | 定时任务 | ★★ | Node |
项目说明
Isapi
简述
Isapi是一个提供qunar员工信息数据的api项目,主要针对的用户群体是内部员工。数据来源于ehr系统(peoplesoft,简称:ps),ps使用的是Oracle数据库,基于ps提供的view试图,把员工数据同步到一个新的数据库,Isapi选择使用了postgresql,把员工信息数据封装json,通过http api接口的方式开放给用户,不仅解决了其他系统使用员工信息数据的问题,还有让ps数据隔离,提高了安全性、可用性。
backyard
简述
用于Qunar员工内部使用的一个web内网系统,主要用于员工信息查询、考勤、公司相关的制度、条例等信息,是一个员工访问量相对较大的一个web系统。
new_hrtools
简述
项目主要用于员工ad账号相关的处理,主要有API接口和定时任务2大部分组成,其中定时任务是重点,与ldap、数据库均有交互,是一样日常运维工作较多的一个项目。
officedb
简述
Officedb系统是Qunar行政管理员工办公大厦的一个内部系统,主要针对于Qunar行政、QunarIT对办公大厦进行费用、员工信息等管理,实现Qunar办公大厦的自动化。
opsapp
简述
opsapp跟Isapi实现的功能大致一样,这个项目是专门用来提供给qtalk移动端在外网情况下进行使用的一个api接口,这个接口实现了访问内网需要的api接口,实现了在非内网情况使用qtalk功能。
outage
简述
主要用于用户进行报故障所用,主要有故障通报、故障review、故障产品线、对外API4大部分。
psapproval
简述
主要用于ehr系统部分流程审批、申请在qtalk移动端进行操作。ehr系统主要用于管理员工、员工使用的一个人事系统,只能通过pc端进行操作,为了能在qtalk移动端也同样进行操作,psapproval接入ehr的员工使用流程。
wwwhr
简述
用于采集入职Qunar员工基本个人信息的一个外部系统,信息主要用于ehr系统使用,是一个正常入职Qunar员工必须走的一步。
newoa_api
简述
newoa_api是专门针对于PC端Newoa表单在移动端详情展示,主要用于数据格式化。
opsbi
简述
Opsbi是针对于Ops组造成故障的数据做的一个可视化web系统,数据源来源于Outage故障系统,是一个前端【angularjs + echart】+ 后台【python】一体的项目。
smsdb
简述
smsd是一个针对于机票事业部短信收发做的一个项目,实现了机票部门短信接收、发送、代收等功能。
opstools-cron
简述
Opstools-cron项目主要针对于其他项目有定时任务写的一个请求request crontab,由pm2进行管理。
发布
提交代码
1
2
3
4
5
6
71 git add .
2 git commit -m "XXXX"
3 git tag q-xxxxxxxx-xx
4 git push origin master --tags自动化发布
1 打开自动化发布url。
2 左侧查看通过tag触发构建的项目,等待构建完成。如果构建过程中出现问题,请联系相关负责人进行处理。
3 点击Qunar Build,选择QA【beta环境】,先进行beta环境发布,参数详解如下:
server_list_group:A
tag_name:q-xxxxxxxx-xx
server_list_group代表发布机器组,发哪个组写哪个组名即可,全部写ALL。
tag_name为构建的tag名称。
4 QA发布完成环境之后。
5 在选择OPS【线上环境】进行发布,建议发布一台检查一台的方式去进行发现线上环境。
项目启动
常规
1
2
3
4
5(sudo) python tools/install_venv.py
(sudo) tools/with_venv.sh python setup.py develop # develop 软链
(sudo) tools/with_venv.sh main --config-file 配置文件 -v调试
1
2
3
4
5
6
7
8
9(sudo) virtualenv .venv
(sudo) source .venv/bin/activate
(sudo) sudo pip install -r requirements.txt -i 源地址 --trusted-host 源地址域名
(sudo) tools/with_venv.sh python setup.py install # install 复制
(sudo) tools/with_venv.sh main --config-file 配置文件 -v
supervisorctl管理
登录服务器上切换到sudo用户,执行supervisorctl:
常用命令说明:
- status 查看项目运行状态
- restart outage-www 重启outage-www 项目
- start outage-www 启动outage-www 项目
- stop outage-www 停止outage-www项目
- start all 启动所有项目
- stop all停止所有项目
- tail -f outage-www 动态的查看outage-www项目日志