博客列表
/

带你走进Choerodon猪齿鱼的知识管理

带你走进Choerodon猪齿鱼的知识管理

作者:吴国凯 全部标签: 技术类
2019年01月28号

知识管理是Choerodon猪齿鱼的一个重要功能,支持在线自定义文档编辑、成员协助共享等功能,帮助团队集中管理创意、需求和设计。本文将会和大家聊一聊知识管理对敏捷团队的重要性,介绍Choerodon选用XWiki作为开发基础的原因,以及开发团队如何设计Choerodon知识管理,最后会简单介绍一下Choerodon知识管理的一些主要功能和特色。

敏捷团队的知识管理

对于软件开发团队来说,每个成员都是知识工作者,知识工作者需要具备一个很重要的能力——知识管理能力。知识是软件行业的灵魂和生存之本,然而很多时候大家都忽略或轻视了团队知识管理的重要性,所以Choerodon希望能够为团队提供一个便捷高效的知识管理方式。

Choerodon猪齿鱼知识管理是为了解决敏捷团队在快速迭代的开发过程中可能忽视的知识沉淀、文档管理和团队协作等问题而诞生的。

印第安人在赶了3天路之后,会停下来小憩一天,因为他们要等待自己的灵魂跟上来。敏捷开发过程也是如此,在经历一个迭代或者冲刺之后,也需要做一些休整,那就是敏捷回顾。每次回顾时,团队成员需要归纳总结开发过程中积累下来的各种问题或经验,并将这些知识记录在可共享的wiki上,这样既便于团队成员互相学习,也利于以后需要时快速查阅。

为什么基于XWiki开发Choerodon知识管理

现在常见到的wiki有很多,开源免费的如 MediaWiki、DokuWiki,企业收费的如 Confluence等。在开发Choerodon猪齿鱼知识管理初期,团队希望能够选择一款既开源,又能针对Choerodon猪齿鱼平台的应用场景,做定制化的wiki系统。比如适应Choerodon的组织项目层级结构,以及与Choerodon猪齿鱼中的敏捷管理、测试管理等做更多的互动,让用户能够在使用平台时,快速准确地记录下自己的知识,让知识管理在应用交付和自动化运营过程中发挥更大的价值。在经过许久对比和甄选之后,团队选择了一个优秀、强大的开源wiki系统——XWiki。

XWiki是由一家法国的公司XWiki SAS于2004年开发出的一款wiki系统,并于2007年开源。至今已经10多年,这个社区仍然有众多活跃的贡献者和使用者,并且拥有大量的客户群体和产品案例。XWiki有健壮的编辑器、强大的编辑语法,能提供多种拓展特性来定制化wiki。除了XWiki官方提供的功能以外,还有超过100个社区参与者贡献的拓展项目,这些拓展都可以直接在XWiki系统的拓展市场上安装和管理。

XWiki、Confluence以及MediaWiki对比

接下来通过XWiki与Confluence以及MediaWiki的对比,来谈谈Choerodon为什么选择XWik作为其知识管理的基础。

XWiki是一个开源的项目,使用了LGPL开源协议,使用者可自己搭建和拓展XWiki而不需要购买任何授权。它使用java语言开发,提供了众多面向企业的特性,并且拥有丰富的拓展库和宏,灵活性与拓展性很强。有许多如Amazon、AFP、EDF等大型的公司使用XWiki创建知识库或者协作工具,也有一些企业和组织使用XWiki搭建门户网站。

Confluence是一个团队协作软件,由澳大利亚的公司Atlassian开发和销售,它是一个面向业务的专业wiki,使用java开发,主要应用于企业环境。目前Confluence有许多大型客户案例,如Facebook、eBay、Adobe等,不过使用Confluence,需要向Atlassian公司购买授权。

MediaWiki是一款使用PHP开发的开源wiki软件,它最著名的案例就是维基百科,所以也是受众最大的wiki。MediaWiki支持多语言管理、各种扩展和媒体格式,还能够配置wiki外观。但是MediaWiki在权限管理,组织架构管理上并不适合Choerodon的解决方案,也不太适用企业的业务需求。

除了上面谈到的三款wiki软件之外,我们还对比了其他比较流行的wiki软件,综合考虑之后,最终选择了开源的、有强大的拓展特性以及适应企业多种业务场景的XWiki。

Choerodon猪齿鱼知识管理的设计

Choerodon猪齿鱼平台是基于spring cloud的微服务架构开发,而Choerodon知识管理选择以XWiki作为开发的基础,那么就需要做到统一的用户、权限以及组织架构。因此开发团队开发了微服务wiki-service,这个微服务主要用于监听Choerodon平台中其他服务的操作,比如IAM的创建组织、创建项目等,然后使用http请求的形式,让XWiki做对应的业务处理,比如创建对应的空间和页面。另外XWiki需要使用Choerodon猪齿鱼平台统一的登录和权限校验,所以Choerodon在XWiki中添加了OAuth登录认证。下图是Choerodon猪齿鱼知识管理设计示意图:

Choerodon猪齿鱼平台中有三层组织层次,即全局层、组织层和项目层。Choerodon 使用三层组织结构来管理用户、权限、项目、环境资源、菜单,以及其他系统资源和功能。其中全局层包含了系统的一些基本设置,例如组织管理、菜单管理、全局角色管理等;组织层管理用户、权限、项目、环境资源,以及其它系统资源和功能;项目层用来管理软件的开发,项目属于组织。Choerodon知识管理也是按照组织层和项目层,以及组织和项目下的空间来管理wiki的。为了保证XWiki与Choerodon平台有统一的组织和项目以及组织、项目对应的人员、权限等,需要将每个组织项目的创建、角色分配等都在XWiki中做对应的处理。下图是当IAM创建一个组织时,wiki-service为保证数据一致性做的处理:

Choerodon猪齿鱼知识管理功能介绍

Choerodon知识管理实现了一个强大的Wiki平台,允许用户根据自己的特定需求自定义Wiki,为企业、IT团队提供方便的项目协作平台和强大的项目内容管理平台,集中式管理产品相关内容,例如需求收集、架构设计、功能设计、开发规范、命名规范、会议记录、计划安排等。目前Choerodon知识管理除基础的空间页面创建、文档编辑、文档共享等,还开发了一些特色功能,如个人空间、组织项目文档权限控制、匿名分享、文档模板等。

基本概念简介

  • 空间

空间相当于一个分组,它是一类文档的集合,组织和项目下都可以创建空间。在空间下可以创建对应类型的文档树,实现各类文档的分别维护和管理。

  • 页面

页面是Wiki中的基本内容单元,也就是使用者在空间下创建的文档。页面可以创建在空间下或者在其他页面之下,这样用户就可以随意地组织团队的文档结构。页面可以进行编辑、分享、评论、收藏等操作,还支持使用多语法编辑和多人协作编辑,另外每个页面都可以有版本控制。

个人空间

Choerodon知识管理中除了组织项目下的共享空间之外,Choerodon还设计了一种特殊的空间——个人空间。这个空间为每个wiki用户提供了一个私人的编辑区域,用户可以在个人空间中随意编辑和记录文档,并且可以选择将一些文档发布到需要的公开区域,比如某个组织或者项目下。

空间、页面权限

在Choerodon知识管理中,空间和页面采用相同的权限模型,以用户组的形式配置权限。对于组织和项目下的空间、以及空间下的页面,在不单独配置权限的情况下,默认是继承组织和项目的权限的,也就是只有组织或者项目成员才可以查看。

同时,用户可以针对某个页面或者空间,个性化配置权限,可以是对某个用户组开放,也可以对所有人或者匿名用户开放,权限包括视图查看、评论、编辑、修改脚本、删除和设置管理员。如下图的权限配置页面所示:

匿名访问

Choerodon知识管理的内容使用空间和页面的形式组织,并且受到组织项目权限的管控,当用户想将文档分享给未注册用户时,可以将一些需要公开的文档设置成可匿名访问,既不影响其他页面的权限,也保证了文档的安全。在权限设置中选择未注册用户勾选相应权限即可。

文档模板

Choerodon知识管理预置了产品需求和敏捷回顾会议记录等文档的模板,可以直接进行编辑,简化了用户编辑排版操作。平台管理员也可以自定义创建团队常用文档模板、修改页面布局界面。

其他功能概述

除了上面提到的几个特色以外,Choerodon知识管理还提供了比如:

  • 所有更新、热门:用户可以查看最近wiki中发生的文档创建、编辑、评论等操作,以及一些浏览量较高的文档,能够了解到一些新的文档动态,及时的学习和共享。

  • 最近工作、最近访问:用户可以在wiki中查看到自己最近编辑以及查看的文章,方便用户查看自己的历史操作记录。

  • 通知:页面的操作可以通过站内信或者邮件的形式通知到关注者,帮助用户及时跟进文档的状态。

  • 搜索:wiki系统提供了强大的文章搜索引擎,可以搜索到文章中的关键字,提高搜索精度。

  • 导入、导出:页面还可以进行批量的导入导出,可以导入office文档,wiki会自动解析文档内容,并添加到页面中。

了解更多功能,请查看Choerodon知识管理用户手册

总结

Choerodon Agent 自发布以来,经历了一系列优化与改进,不管是易用性还是稳定性都在不断提升,例如应用Chart模板中的资源对象将不用再预先插入平台所需要的标签,每个环境一个Agent客户端改成了一个集群一个客户端。增加了定期同步各资源状态的逻辑,有效地消除了平台中与集群的K8S资源状态的不一致,GitOps流程也越来越稳定。同时也感谢社区的朋友们反馈的一些Bug和建议,一起为产品完善而努力。

关于猪齿鱼

Choerodon 猪齿鱼是一个开源企业服务平台,基于 Kubernetes 的容器编排和管理能力,整合 DevOps 工具链、微服务和移动应用框架,来帮助企业实现敏捷化的应用交付和自动化的运营管理的开源平台,同时提供 IoT、支付、数据、智能洞察、企业应用市场等业务组件,致力帮助企业聚焦于业务,加速数字化转型。

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

作者:吴国凯

出处:Choerodon

欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。