写点什么

发布和流程管理的利器——奥丁桌面

  • 2020-05-14
  • 本文字数:1950 字

    阅读完需:约 6 分钟

发布和流程管理的利器——奥丁桌面

本文和大家探讨 Qunar 机票项目管理的利器:奥丁桌面。


在 JIRA 的提测 &发布栏右上角,有一个名为“奥丁桌面”的按钮,就是本文重点介绍的工具平台:



对这个奥丁桌面,Qunar 的很多同学并不陌生,也有很多业务线同学在使用它进行发布管理。它是国内机票 QA 自主研发的流程管理平台,支持发布管理、信息整合、持续集成。


使用奥丁桌面进行发布,则无需再通过 Jekins 平台发布、Git 获取工程信息、JIRA 找分支和发布人员、去环境管理平台自行发布等等各种平台的切换。奥丁做了发布系统和信息的整合、奥丁方便填写分支发布和回滚、奥丁集成了日志查看、奥丁有环境和机器绑定。


使用奥丁桌面,无需再担心回滚的分支不对,无需再担心所使用的测试环境和别人有冲突,无需再担心人员对代码检查、自动化测试等流程的执行情况。


以上是奥丁的一些主要功能,但并非全部功能,奥丁承接的和能够实现的,比上述功能还要都很多,下面来顺着笔者的思路,看看我们是否可以让奥丁更强大,让项目管理流程更智能化、标准化。

桌面管理

既然是桌面管理,首先奥丁做了发布系统、环境信息、JIRA 项目信息、代码信息、人员信息、监控信息、工具类等信息的整合。


如图所示是当前奥丁桌面能够看到的功能展示:



本文重点介绍几个有趣的、值得推广和探讨的功能。

环境信息

在奥丁背后,对接了容器化环境管理平台。当测试环境创建、销毁、更新时,会发送消息,奥丁后台的阿波罗系统监听消息,将环境完整的信息持久化入库,并提供接口,供奥丁桌面和其它工程使用。


这些信息包括:环境列表、环境中的工程信息、端口、路径、module、工程类型、环境名称和标识、应用部署基本信息等等。


JIRA 信息

同样,奥丁会获取 JIRA 中的项目信息,包含:人员信息、工程信息、分支信息、模块信息。将这些信息整合展示在奥丁桌面中。

回滚信息

有了上述的工程和代码分支信息以及发布信息,那么奥丁自然而然可以后台去获取该工程最新的上一次 master 代码,进行有效回滚分支号的自动填充,方便回滚操作、rebuild 操作。

一键群聊

奥丁能够获取到 JIRA 的所有相关人员,于是提供了“一键群聊”的功能,点击自动创建以项目名称命名的含所有项目成员的内部沟通群。提效、避免沟通遗漏。


除了这些,还整合了测试发布过程中会用到的监控平台、数据平台、mock 平台、case 平台、发布周知等等入口。支持入口随时添加修改。


聪明如你,看到奥丁桌面能够整合如此完整的信息,是否已经开始了各种设想?各种流程管理的方案呢?


在此,简单举几个在实践的、运用的很好的案例供大家参考:

奥丁环境分配隔离

容器化环境管理是面向全员的,缺少权限管理和环境分配策略。其初衷是人手一套环境,但这个在现实中很难完全落地实现。


于是,在奥丁中将环境通过标记进行区分隔离,例如 Dev 角色成员只能在 Dev 标签下操作,所选环境只能是 Dev 环境,有效做到环境按角色隔离。


同时,做环境工程占用管理。判断当前 PMO 要发布的工程信息和环境中的部署情况,如果待选环境中已有同样工程的另外分支或 PMO 占用,则该环境不可选。


当 PMO 关闭或手动解绑环境时,释放环境资源。

奥丁整合自动化执行流程

上面的过程中,奥丁已经实现了发布、环境分配、人员和分支状态的判断逻辑,那么,只要我们后端实现了对应工程的自动化测试,则只需要自动化给奥丁系统提供一个调度接口,奥丁就会判断该工程在提测、发布、灰度发布等等环节做自动化环境的自动部署和自动执行,并将结果反馈。


同时,可以做流程管理功能,如自动化执行不通过,则将线上发布选项置灰,不允许发布线上。


目前 Qunar 机票自动化即采用上述的奥丁流程自动强拦截控制。有效保障自动化落地程度。

奥丁整合灰度环境的指定部署

Qunar 机票近期开发了全链路灰度测试方案,该方案拟在发布前,首先要求先发布灰度环境,灰度验证无误后,再发线上。通过灰度监控对比的方式,在小流量范围内提升线上问题的主动发现率。


其触发原理简单:识别灰度标记的机器,识别需要走灰度发布的工程,在该工程的关键节点触发灰度部署,后台发消息给灰度链路系统,触发监控染色。

奥丁整合环境创建分配

基于容器化的环境管理思路,奥丁可以实现在分支创建后,自动调用环境接口,自动创建环境,自动检查环境可用度,主动提供全新可用的测试环境。


只是由于机票环境模板的巨大,这个功能暂未在机票团队落地。其它业务线如有需要,可以随时实现。

其它应用场景

奥丁可以整合业务监控面板的调取、发布雷达的信息获取、集合监控自动埋点平台的使用、集成故障演练降级等平台的使用…


之所以叫做奥丁平台,源于它的无限创造力和支撑力。


奥丁是项目管理的有力支撑工具,是流程管理的最有效管控手段,是信息整合和输出的理想平台。


留一些想象空间,给有需要的你 : )


作者介绍


王怀坤,Qunar 机票事业部 QA,多年互联网经验,秉承技术驱动的工作理念,潜心耕耘质量体系建设之路。


2020-05-14 16:52814

评论

发布
暂无评论
发现更多内容

在Goroutines中如何处理Error

Jack

OneCode :如何构建部署低代码引擎工程

codebee

浅谈 Spring 如何解决 Bean 的循环依赖问题

做梦都在改BUG

Java spring 循环依赖

Service进阶

梦笔生花

service intentservice 轮询

加密了100个小姐姐的PDF文档,1行代码搞定,网友:快男!

程序员晚枫

Python 加密 PDF 自动化办公

月内狂飙 50%的 ZBC ,连续登顶Solana 链交易量排行榜

股市老人

GitHub标星35k+微服务深度原理实践进阶PDF,竟让阿里换下了Dubbo

做梦都在改BUG

Java 架构 面试 微服务

template竟能使一套C++代码支持多个客户?

老王同学

c++ template

毕业项目-618秒杀系统

不爱学习的程序猿

一路披荆斩棘腾讯6面面经(已拿offer)大厂远没想象中的难

小小怪下士

Java 程序员 面试 后端

月内狂飙 50%的 ZBC ,连续登顶Solana 链交易量排行榜

威廉META

性能测试入门实践路线图

老张

性能测试 稳定性保障

Python数据分析库介绍及引入惯例

timerring

Python pandas

前端面试实录HTML篇

Immerse

html 面试 前端 HTML5, CSS3

熬夜肝完! 阿里P8的Java进阶知识典藏版,我从18K飙到30K

程序知音

Java 编程语言 java面试 java架构 Java面试题

创业公司如何不沦为OpenAI“死侍军团”:训练小众数据,服务特定用户

B Impact

真的香!腾讯SpringBoot高阶笔记,限时开源48小时

程序知音

Java 微服务 编程语言 springboot java架构

卓越工程之开发过程管理

agnostic

卓越工程

设计模式之美--经常被用错的KISS、YAGNI原则

GalaxyCreater

设计模式

字节资深架构师用7大部分13章节,彻底讲透SpringBoot生态体系

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现

bin的技术小屋

内存管理 Linux Kenel 内核 内存池

为 NGINX 配置免费的 Let’s Encrypt SSL/TLS 证书

NGINX开源社区

阿里内部最新发布的并发图册+JDK源码速成笔记,终于解脱束缚了

开心学Java

Java jdk 高并发

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

洛神灬殇

4月月更 时间轮(TimeWheel) 算法指南 技术调整

从0为你讲解,什么是服务降级?如何实现服务降级?

做梦都在改BUG

涨薪跳板! 2023阿里突击版Java面试宝典

程序知音

Java 编程语言 java面试 java架构 后端技术

阿里CTO最新分享神仙级“多线程手册”全套笔记,涵盖了多线程相关所有知识点

开心学Java

Java 线程 多线程 阿里

一个神奇的需求:doc批量转docx,1行Python代码实现

程序员晚枫

Python word 自动化办公

Django笔记一之运行系统、创建视图并访问

Hunter熊

django

论模式与反模式

凌晞

构架

发布和流程管理的利器——奥丁桌面_文化 & 方法_王怀坤_InfoQ精选文章