Enjoy the good lift everyday!
Qunar项目之总结篇 | PyGo²

Qunar项目之总结篇

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

项目说明

  1. Isapi

    简述

    Isapi是一个提供qunar员工信息数据的api项目,主要针对的用户群体是内部员工。数据来源于ehr系统(peoplesoft,简称:ps),ps使用的是Oracle数据库,基于ps提供的view试图,把员工数据同步到一个新的数据库,Isapi选择使用了postgresql,把员工信息数据封装json,通过http api接口的方式开放给用户,不仅解决了其他系统使用员工信息数据的问题,还有让ps数据隔离,提高了安全性、可用性。

  2. backyard

    简述

    用于Qunar员工内部使用的一个web内网系统,主要用于员工信息查询、考勤、公司相关的制度、条例等信息,是一个员工访问量相对较大的一个web系统。

  3. new_hrtools

    简述

    项目主要用于员工ad账号相关的处理,主要有API接口和定时任务2大部分组成,其中定时任务是重点,与ldap、数据库均有交互,是一样日常运维工作较多的一个项目。

  4. officedb

    简述

    Officedb系统是Qunar行政管理员工办公大厦的一个内部系统,主要针对于Qunar行政、QunarIT对办公大厦进行费用、员工信息等管理,实现Qunar办公大厦的自动化。

  5. opsapp

    简述

    opsapp跟Isapi实现的功能大致一样,这个项目是专门用来提供给qtalk移动端在外网情况下进行使用的一个api接口,这个接口实现了访问内网需要的api接口,实现了在非内网情况使用qtalk功能。

  6. outage

    简述

    主要用于用户进行报故障所用,主要有故障通报、故障review、故障产品线、对外API4大部分。

  7. psapproval

    简述

    主要用于ehr系统部分流程审批、申请在qtalk移动端进行操作。ehr系统主要用于管理员工、员工使用的一个人事系统,只能通过pc端进行操作,为了能在qtalk移动端也同样进行操作,psapproval接入ehr的员工使用流程。

  8. wwwhr

    简述

    用于采集入职Qunar员工基本个人信息的一个外部系统,信息主要用于ehr系统使用,是一个正常入职Qunar员工必须走的一步。

  9. newoa_api

    简述

    newoa_api是专门针对于PC端Newoa表单在移动端详情展示,主要用于数据格式化。

  10. opsbi

    简述

    Opsbi是针对于Ops组造成故障的数据做的一个可视化web系统,数据源来源于Outage故障系统,是一个前端【angularjs + echart】+ 后台【python】一体的项目。

  11. smsdb

    简述

    smsd是一个针对于机票事业部短信收发做的一个项目,实现了机票部门短信接收、发送、代收等功能。

  12. opstools-cron

    简述

    Opstools-cron项目主要针对于其他项目有定时任务写的一个请求request crontab,由pm2进行管理。

发布

  1. 提交代码

    1
    2
    3
    4
    5
    6
    7
    1 git add .

    2 git commit -m "XXXX"

    3 git tag q-xxxxxxxx-xx

    4 git push origin master --tags
  2. 自动化发布

    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. 常规

    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
  2. 调试

    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项目日志
  • 本文作者:mingliang.gao【一个爱老婆的python程序猿。。。。。。】
  • 本文链接: https://gis90.github.io/articles/30296/
  • 版权声明: 本博客所有文章欢迎转载,转载请注明出处!
觉得有帮助,请喝个咖啡
0%