大咖分享 | ProjectMan是如何炼成的

大家好,我是华为云DevCloud管理与协同域的产品经理恒少,

有句话叫做:“Soda&恒少出品,必定来自双手沾满泥的精品实践”。

随着DevCloud的客户逐步了解敏捷/DevOps的理念,并实际基于DevCloud进行软件交付后,更多的客户提出新的问题:你们能不能分享你们每天都怎么开发的,你们的团队组织是怎样的?有哪些坑?有哪些雷?

为此本期的“双手沾满泥”的精品实践,特别邀请长期与恒少奋战的Service Leader,我们的Soda,亲自撰文“Projectman 是如何炼成的”,感谢Soda.

前言

提到ProjectMan,可能很多人没听过,但是只要提到中文名称:项目管理服务,不少用户可能会听说。简单说,ProjectMan是DevCloud的一个服务,提供项目、成员、需求及缺陷管理等功能,是DevCloud使用最频繁、用户最多、UV/PV都比较高的服务。

而我就是这个服务的研发团队负责人。有一次,一个客户跟我反馈说,他们在研发的过程中,经常遇到各种各样的技术问题,而华为有三十年研发经验,能不能分享一些技术方面的文档,让他们能够参考和学习,提高自身的研发效率,避免走一些弯路。我认为确实很有道理,客户的研发效率提高了,既对客户有益,也符合华为的利益。于是我先抛砖引玉,先介绍一下我们服务,如果效果好,可能会有更多比我经验更丰富的专家出来分享技术干货,希望最后DevCloud不仅是提供研发效能的服务,也能形成一个华为与客户之间技术分享和交流的平台。

我们的故事

很多IT创业公司在最开始的时候,为了快速抢占市场,对产品研发的时间要求是非常短的。我们也一样,第一个版本要求在一个月内上线。为了快速开发,我们调研了很多已有的项目管理工具,最终选择了基于公司内部的一个已有的架构进行开发。后端使用SpringMVC+ MyBatis框架,MySQL数据库,前端页面则使用Angular框架开发。

像大多数系统一样,第一个版本上线以后,大量的需求蜂拥而至。随着不断叠加的功能,代码的复杂度变得越来越高,维护成本也越来越大。

去年年底,我们顶着巨大的压力,对系统进行重构。为了使代码解耦,功能模块之间可以独立升级,我们把后台一个微服务拆分成了四个微服务。同时我们更换成了功能更强大的Spring Cloud框架。

在系统重构的几个月里,我们并没有中断需求的交付,仍然以每周一个迭代,每个迭代几十个需求的节奏运作,一直到今年3月份才完成。重构之后,我们的代码结构得到了优化,不会互相影响,现网的问题比重构前减少了80%以上,而且不同功能模块之间升级互不影响,平均每天至少一个微服务在升级,大幅提高了需求交付效率。接下来我就介绍一下我们是如何运作的。

团队运作

1.我们的团队是全功能团队,独立负责ProjectMan端到端的交付和运维。总共有10名开发人员,包括4名前端和6名后端,因为总共有6个微服务,所以平均不到2个人负责一个微服务。而且,没有专门的测试和运维人员,所有测试和运维工作全部由开发人员承担,例如用例、环境部署等,可以说我们每个团队成员都是集开发、测试、运维能力于一身的全能型人才,每个角色在主要工作分布上略有不同,作为Service Leader的我会更多承担一些服务设计的工作,但是我写的代码,也一定是我自己测试,自己部署

2.研发流程模式上,我们采用scrum,固定每周一个迭代,每个迭代会发布多个版本。为了打磨我们的产品,我们所有的工作都使用DevCloud ProjectMan上来管理,用业界时髦的实践就是“吃狗粮”。产品经理会将需求按照Epic-Feature-Story的层级整理好,然后通过迭代会议制定迭代计划,大概的流程图如下:

3.分支模式。Projectman有好多个微服务,每个微服务在开发过程中,都是采用分支开发,主干发布的方式,具体的流程如下:

Master分支要时刻保持可发布版本的状态;

Develop和release分支是测试分支,对应不同的测试阶段;

每个特性都要单独拉feature分支开发,并合入Develop和release分支进行测试,测试通过后才能合入master分支;

在迭代的过程中,如果遇到现网问题,则在master分支拉取代码到hotfix分支,测试通过后再合入master分支发补丁;

代码review只需要在release和hotfix分支合并到master分支时进行就可以过拦截大多数代码缺陷

这样的分支管理方式,每个特性完成开发后,测试通过即可发布上线。一个需求完成之后无需等待统一版本,可以灵活发布。4月份,我们总共发布了40多个版本,平均每个工作日2个版本。

持续发布,持续监控

既然发布版本这么频繁,如果没有一个高效的发布工具,是万万办不到的。这个工具就是DevCloud上的流水线,及其调用的代码检查、编译构建、部署等任务。每个微服务会创建一条流水线,上面集成了代码检查、编译构建、部署、自动化测试等任务。而且一条流水线会将所有环境串联起来,研发环境测试通过之后,才能执行下个环境,最后是生产环境。虽然华为的研发流程比较复杂,发布到生产环境之前要在其他4个环境测试通过,但是由于这些都由流水线自动完成,所以总共只需要20-30分钟即可完成版本发布。

在现网,我们使用了很多华为云的其他资源,系统是部署在华为云的ECS上,总共几百台虚拟机实例,数据库使用RDS,文件存储使用SFS等等。得益于自动化运维平台,这些资源,我们开发人员自己可以维护。我们不仅可以在所有节点查看日志、下载文件,还能批量在虚拟机上执行脚本等等。不仅如此,为了能快速响应现网问题,我们采用监控平台对现网的报错进行监控。一旦报错,哪怕只是一个错误码,或者抛个异常,都会被监控平台捕捉到,并且会精确到哪行代码出了问题,然后给负责人发短信提醒。除了对异常的监控,我们对性能指标、资源使用情况等都有监控。

结束语

作为一个Service Leader,业务交付的效率,服务的质量,用户的增长和活跃,架构和技术能否持续健康,甚至控制服务运行所消耗的资源成本,如何削峰填谷,都是需要平衡考虑的。这里面包含了很多的思考和实践,我们会根据大家的反馈,陆续分享一些内容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容