Confluence v8.5.9 安装和问题
老板了解到,我们同行的很多公司,都使用 Confluence 作为公司级的知识库,于是,要求也为我们公司部署一个。尝试在公司使用和推广。
一、什么是 Confluence?
Confluence 是一个专业的团队协作软件,由澳大利亚的软件公司 Atlassian 开发。这个工具旨在帮助团队成员共享知识、协调工作,并有效管理项目文档。Confluence 通常被用作企业内部的知识管理系统和团队协作空间。
主要特点包括:
页面和空间: 用户可以创建页面来记录信息,并将这些页面组织到不同的“空间”中,以便团队可以根据项目或部门的不同需求来访问和协作。
模板和编辑工具: Confluence 提供多种页面模板,支持富文本编辑,使得撰写、格式化文档变得容易。
集成: 它能够与Atlassian的其他产品(如Jira)以及各种第三方应用程序(如Slack、Google Drive等)无缝集成,增强工作效率。
权限和安全: 管理员可以设定详尽的权限,控制不同用户和团队成员的访问和编辑权限。
搜索和组织: 提供强大的搜索功能,帮助用户快速找到所需内容,同时支持标签和其他元数据,以便更好地组织文档和信息。
Confluence 常用于文档管理、会议记录、项目计划和团队协作等多种场景,非常适合需要处理大量信息和跨部门协作的企业使用。
Atlassian 提供 Jira 和 Confluence 的网络服务,价格也并不贵,一家 300 人的公司,如果同时使用 Jira + Confluence 的话,价格大概在每人每年 100 美元左右的费用。这个价格并不算太贵,腾讯的 TAPD 企业版,价格在 800 元每人每年。而 TAPD 并不具备知识库的功能,只能对标 Jira 的功能。当然两个软件背后的设计思路完全不同,不能简单的等价,仅供参考。
不过,一次性几万美元的一个支出,对于任何一家企业来说都并不容易,因为作为使用者来说,很难向决策者证明其带来的价值。者就是企业软件销售困难的主要原因。一个常见的做法就是,我们先安装一个免(po4)费(jie3)的版本,让大家用起来,让决策者看到其中的价值。这时候再去购买,阻力就会小很多。
虽然官方没有明确说明,但是我想他们应该心知肚明,也默许了这种做法。
二、如何安装 Confluence
商业软件的尴尬在于,如果不确认这个东西的 ROI,老板一般很难为产品埋单。而私有部署的产品,如果用户不付费,那么厂商一般也不愿意投入资源。简单说,你不让我用,我怎么知道好不好用?另一边是,你不买,我怎么让你用?死锁。
解决之道,唯有破解。
关于如何安装,以及如何破解,可以参看这篇文章《这里》。试用得好,大家还是汇报老板早日付费保平安。
三、私有部署 Confluence 可能面临的问题
我重点讲讲,如果公司打定主意,想用破解版的 Confluence 的话,可能要做好准备的一些问题。
1. 账号管理问题
我觉得但凡是一个稍微认真一点的团队,管理账号,必定是必须考虑的问题之一。每天都有新人入职,离职,转岗,如何安排好每个人的账号设置和回收的问题?
一般企业都会使用单点登录。Confluence 也支持单点登录。不过只支持两种标准,第一,OpenID Connect,第二,SAML。此前,我应该也介绍过 OpenID 是怎么回事,SAML 则是另一种。
最近十年开发的系统,一般都应该支持 OAuth 或者 OpenID,可能问题还不是太大。如果大家使用 Google Workspace,也可以直接用 SAML 对接。
这里想说的是,Confluence 的用户分组和权限管理,可能不是那么尽如人意。容我细细说来。
如果你对接了单点登录,根据常识,就应该不用考虑注册的问题,直接 SSO,根据获取到的用户信息,就自动完成注册工作。这个功能 Confluence 提供了,这个特性叫做 JIT Provisioning。
不符合常识的问题在哪里呢?你如果进入一个系统,在里面获取了一些权限,那么你下次用 OAuth 登录的话,这些权限会怎么变呢?应该不变。这是一般人的理解。但是这个 Conflunce 很不一般,它会用预设的组权限,初始化你的账号,等于你首次登录成功后,手动设置的各种权限组,被还原了。像刚注册一样。这就是 JIT Provisioning 的含义,每次都将你重新注册。荒了个大谬。
如果我不开启 JIT Provisioning 呢?那么确实,重新登录不会导致问题,权限组也不会变化。但是如果你此前没有账号,那么是无法用 SSO 登录的。坑爹。
自动注册功能和权限保持功能,二选一。这就是商业闭源软件坑爹的地方,你没法二次开发整改这种特殊的设定。
我大概也能理解 Atlassian 这么做的理由,它自己旗下好几款产品,有一个统一的用户和权限管理中心产品,这么做等于将用户和权限划出去单独占一个模块,显然有利于组合,但是它每个产品都要付费,不是每个公司都想买全家桶的。
当然,Confluence 也支持 Windows 的 Active Directory,或者 LDAP 等等目录,不过我们一般的网络公司,都不会用这种 Windows 体系或者目录管理,那就很糟糕了。你得完全开发去解决这些 shit,或者自己开发通过 SAML 整合进去,无论哪一点,都是工作量巨大。
2. 备份与恢复
除了账号管理,对于管理员来说,就是运维与安全。备份与恢复,就是重要的一个考量点。数据库使用的是 MySQL,大家只要连接一个云数据库,我觉得就可以解决数据库的备份。难的是文件。
因为是 Wiki 一类的产品,用户铁定会上传附件或者图片。那么默认情况下,这些东西保存在磁盘,就是一个很难备份的部分。好在,Confluence 支持 S3。
我本以为这是一个福音,谁知道,也是一个坑。腾讯云和阿里云都支持亚马逊 S3 的 API,我以为直接配上就行了,谁知道,这个鬼东西,竟然写死了 Amazon 的域名,导致任何兼容 S3 的 API 都不可用,只能买 Amazon 的 S3,对于中国用户来说,用户友好度 -1。国内会有什么正经公司用 Amazon 的 Infra 么?我反正不认识,只能说用的人很少。
既然,无法配置进去使用 S3 兼容的 API ,怎么办呢?网上看到的解决方案是,将阿里云的云存储,映射成网盘,采用附件存储位置的方法,将云存储接入,这样文件才能安全无虞。
Updated:2024-10
一开始,我们只是挂在了云盘,代替了附件的目录:1
/var/atlassian/application-data/confluence/attachments
挂载目录,建议挂载到:1
/var/atlassian/application-data/
这样把 attachments 和 backups 目录都包括进去,不然的话,attachments 同样会产生 backups,磁盘还是会爆掉。
以为万事大吉了,没想到,很快,硬盘就报警了,不要忘记还有:1
/var/logs
以及:1
/var/atlassian/application-data/confluence/backups
随着更多的员工使用,这两个目录的容量速度增长太快,很快服务器就会容量告警。
三、总结
一个新业务系统的引入,哪怕是不重要的 Wiki 系统,都会给运维带来无限的麻烦。而闭源系统,往往还堵住了运维开发最后的路。是风险极高的选择,如果没有老板的直接命令,哪怕是东西再好用,都不要轻易踏入这个大坑。背后往往是无穷无尽的麻烦。