自2019年加入一家传统生物医疗器械公司以来,我们组建了一支40余人的团队主攻企业数字化转型,做新产品和新业务模式探索。一年多的时间,我们也搭建了一整套基于阿里云的微服务架构的平台体系,包括K8S服务编排、监控预警日志、基于Gitlab和Jenkins的CI/CD等等。此外还使用过Leangoo、Jira、Confluence、企业微信在线文档、NextCloud等协同工具,最后稳定在Jira+Confluence+Nextcloud组合。但由于各个系统不方便打通伴随人员增加,管理压力和安全隐患等问题逐渐暴露出来,所以近期就在考虑用全家桶方案整合各个系统。

我们先后也看了不少方案,像Worktile、Teambition、Jira等。早在18年,我也看过阿里云云效平台,那时候的版本功能和UI还比较简陋,尤其是项目协同这块“很不好用”。而Jira太重,不符合国内用户的使用习惯。最后还是在今年的云栖大会上,重新认识了Teambition。新的UI设计、流水线的引入、知识库WIKI的整合等等,至知识库还支持Markdown、Roadmap、思维导图,而且是在线协同。本来已经选定Teambition了,无意间又在阿里云云效看到新出了云效的2020版,简单浏览过,发现就是Teambition的整合版,与阿里云做了打通,加入了代码仓和成品仓(正因为如此,云效2020的费用比Teambition企业版要贵近200/人年)。此外,还推出了云鹰计划,99人的团队只需1万多就可以用一年。所以我们决定通过云鹰计划试水,毕竟跟我们正在用的阿里云有很好的结合。

任何迁移,任何第一个吃螃蟹的都要付出代价。虽然阿里云效2020确实提供了一些很好用的功能,帮我们解决了一些问题,但还是存在一些“缺陷”,或者是我们使用方法不对又或者是使用习惯问题。我们把这些坑暴露出来,也是希望给到“后人”一些参考,也希望能给到阿里云一些有价值的建议。

1. 项目协作 Projects

  • 任务类型切换不方便

    任务类型的切换要下拉选择,用户需要两步操作,感觉繁琐。而Jira则是需求和任务显示在一个维度里。个人感觉Tag或者Tap的切换操作更好。

  • 添加任务时不能直接添加子任务

    要等主任务添加完成才可以点击添加子任务,不是很方便。

  • 给任务添加工时字段

    任务模板默认没有“工时”字段,而在Scrum中通常需要这个字段作为评估工作量的指标。云效2020(Teambition)是支持自定义任务字段的,进入某个项目,在右上角的“菜单” - 项目设置 - 任务设置 - 任务类型设置 - 选择具体的类别 - 进入字段设置 - 增加“工时”字段。也可以在系统设置中设置,全局项目生效。

2. 知识库 Thoughts

  • 添加路线图思维导图

    云效2020的知识库虽然底层也是Teambtion的Wiki,但两者UI略有差异。Teambtion的路线图和思维导图可以在文档创建的时候直接选择(图1),而云效则需要在创建文档后添加(图2、3)。

    这里面还有个小插曲,我们在使用云效2020找不到路线图和思维导图后,曾询问过阿里云效团队的技术支持同学,同学答复跟产品确认过,暂不支持路线图,且短期内也不支持。但后来我们却在帮助文档中找到原来路线图和思维导图都藏在创建好的文档里面。不知是没表述清楚还是两边沟通不同步,这个乌龙实属不该。

  • Word、Excel暂不支持在线协同

    目前不论是Teambition、云效还是Teambition新出的网盘,都只是实现txt、markdown的在线编辑,而Word和Excel只提供了在线预览。目前对于Office文档的在线协同还不能实现微信或者钉钉类似的在线文档功能,算是有点影响使用的功能。所以目前迫于无奈,我们依然有一些文档的协同管理没办法迁移到云效。

3. 代码仓 CodeUp

  • 从Gitlab导入代码会出现UI报错但实际导入成功的情况

    我们从Gitlab批量导出到CodeUp,部分代码Repo在UI显示超时错误,但实际上后台已经完成了代码迁移,我们跟云效团队沟通,证实确实会存在该Bug,好在影响不大,删除后重新操作即可。

  • 从Gitlab导入代码并不会保持后续同步

    从Gitlab中导入的项目只是导入了当时的状态,后续如果继续有Commit在Gitlab,并没有提供功能做同步,只能删除该Repo,重新导入。这个功能的确实导致在迁移的时候稍微有点不方便。

4. 流水线 Flow

  • 实现withCredentials注入

    Jenkins可以把Gitlab或者Docker Reg的认证信息进行单独管理,在使用的时候注入,以保证认证信息不泄露。但Flow暂不支持,只能Source到环境变量。Flow支持私密配置项,但不支持多行文本或者文件。

  • 关于模板复用问题

    我们想通过少量的流水线设置不同的变量进行不同项目不同分支的CICD,以减少流水线的维护管理。了解到Flow支持模板,并基于模板快速创建新流水线,但修改模板后,已经基于模板创建的项目不会更新,应该也是出于安全考虑。此外由于传入的参数和方式有限,较难实现一个或少量流水线通吃,最后我们也是选择了通过模板逐个创建的方法。

  • 关于内置变量使用问题

    内置变量的使用需要注意空格,复制粘贴时往往会带上空格,导致Flow不能识别。

  • 暂时无法实现等待、超时等参数的设置

    Helm部署的时候,没有等待所有资源对象ready机制、没有超时机制、没有原子化操作的机制化。如Helm的–wait、–timeout、–atomic参数。导致项目CD超时不好控制,与云效团队沟通,反馈后续会在任务设置上加上相关参数。

5. 测试管理 Testhub

  • 暂时不支持导出用例

    Teambition的测试用例已经支持导入导出(上图),而云效2020还不支持导出(下图)。

6. 制品仓 Packages

  • 制品仓暂不支持helm

    目前支持npm和maven,预计2020年12月会开放helm,但目前还无法确认。所以在CI阶段输出helm的value配置并作版本管理、版本回退暂时不方便。

7. 企业设置和人员管理

  • 人员不支持批量编辑和批量删除

    给人员批量修改角色或删除用户比较麻烦

  • 人员解绑换绑邮箱

    目前人员绑错了邮箱管理员没办法在后台修改,只能该用户自己登录系统,绑定新邮箱,就会自动解绑旧邮箱。

以上是我们团队近1个月使用云效2020遇到的部分问题,时效仅限于2020年11月,仅供参考。