编者注:本文刊登在《新一代堡垒机建设指南》(JumpServer v3.0发布纪念版)序言部分,文章作者为JumpServer开源堡垒机项目创始人广宏伟。点击文章底部“阅读原文”链接,即可下载新版《新一代堡垒机建设指南》白皮书。
“九年时间,用心做好一款堡垒机”
2014年6月到2023年6月,JumpServer开源堡垒机项目已经走过了九年的时间。之前我们常说的口号是:“改变世界,从一点点开始。”那么,在过去九年的时间里,我们为改变堡垒机应用市场所做的努力应该被大众所看见并感受到了。从一个简单的运维脚本萌发,到现在成为累计安装部署至少250,000次的开源项目,JumpServer实现了自我的价值,也承载着用户越来越多的期待,更面临着许多现实的挑战。
JumpServer的V2版本是在项目诞生的第六年(2020 年)发布的。在这个大版本之下,我们坚持按月发布新版本的节奏,在V2的大版本内累计迭代了28个版本。在两年多的时间里,JumpServer的研发团队激进过,也妥协过,在功能迭代的过程中发现了一些产品设计不合理、冗余的地方。而这样长时间的高速迭代也使得JumpServer的部分功能设计没有经过完全的深思熟虑,开发起来十分复杂,导致整个系统变得臃肿。
站在项目发展第九年的时间节点,我们需要对JumpServer做“减法”了。与此同时,社区用户的反馈也让我们感知到了不同规模企业用户对于JumpServer的现实需求。一些规模较大的企业用户的部分功能需求在JumpServer V2版本的技术架构之下难以满足,主要的原因归结于JumpServer底层架构设计的局限。
在产品架构重塑和用户需求的双重驱动下,JumpServer开源项目组在2022年3月决定启动JumpServer v3.0版本的研发,在这个新的版本编号的旗帜之下对JumpServer的技术架构进行重构。
整个重构工作耗时近一年的时间,2023年2月27日,JumpServer正式发布v3.0版本。在此之后,JumpServer每月迭代一个小版本,解决在用户真实环境中遇到的版本升级、资产迁移等问题,目前已经形成了一个相对成熟、稳定的新版本JumpServer。
在JumpServer v3.0版本中,我们重构了底层技术架构,通过改变管理模型的方式来兼顾不同规模和类型用户的实际使用场景,基于用户、系统用户、资产和授权这四个维度对JumpServer中的大部分使用场景进行了重新设计。
在产品设计过程中,我们秉持“内外兼修”的原则,希望进一步提升用户的使用体验,真正用心做好一款开源堡垒机。在产品的内在方面,我们对核心功能进行了全面的优化设计。具体如下 :
■ 系统用户重构为账号,放弃系统用户中间层
在JumpServer过去的版本中,系统用户承担了太多的职责,系统用户的功能显得十分臃肿。JumpServer设计系统用户的初衷其实是作为账号存在的,通过特权账号创建系统用户。这在资产规模比较小、大多数用户的账号密码相同的情况下,使用起来十分便捷。但是随着JumpServer用户规模和使用范围的不断扩大,对于拥有大量IT资产,并且等保安全要求资产密码都要不一样的大中型企业,这就带来了比较大的困扰。
为了解决这个问题,我们将系统用户和账号进行分离。系统用户关联资产时会产生一个账号,一个系统用户在不同的资产上允许产生不同的账号,联表计算之后形成账号列表。这样就满足了拥有大规模 IT 资产场景用户的需要,但在面对计算量庞大的业务场景时,账号列表很容易出现问题而崩溃,因此我们决定对系统用户进行重新设计。在JumpServer v3.0版本中,系统用户重构为账号,放弃系统用户中间层。这就意味着在JumpServer v3.0以及后续版本中,不会再有“系统用户”的概念。
■ 资产和应用合并
起初JumpServer设计中只有资产,后来为了支持数据库连接,新增了应用。因为每种应用可能都有单独的一些字段,为了和资产进行区分,我们不得不新增了Application表,这也就导致很多后端的数据关系表会和资产一样存在多份,数据库和API都存在冗余的现象。在JumpServer v3.0版本中,我们化繁为简,将资产和应用合并,统称为资产,强化资产平台方面的职责。
■ 平台是资产的抽象和约束
资产与应用合并之后,强化了资产平台的作用,因此也需要对资产平台进行重新设计,对资产进行约束。原有的资产平台本质上只是起到标记的作用,而在JumpServer v3.0版本中,新平台除了区分资产类型外,还可以定制功能。
另外,新平台还可以灵活定义自动化配置,所有的自动化功能都依赖于Ansible自动化运维工具,不需要我们再进行额外的Python代码填写,可以直接选择资产和账号来进行配置。这样一来,不仅提升了系统的自动化程度和配置效率,在一定程度上还减轻了我们的工作量,让我们有更多的精力专注于更重要的功能优化。
■ 远程应用是未来扩展的核心
原来的RemoteApp远程应用是一种应用类别,只是作为JumpServer的一种能力存在的。在JumpServer v3.0版本中,我们对远程应用进行了重新设计。远程应用是JumpServer未来扩展的核心,也是JumpServer v3.0版本重构中非常重要的部分。我们的研发团队很重视远程应用的重新设计, 在JumpServer v3.0版本中做了重大的更新, 并且面向社区开源, 希望未来远程应用能够实现“万物皆可连”的目标。
此外,作为一款企业IT部门高频使用的工具类软件,JumpServer的用户使用体验也非常重要。因此,在重新设计内在架构和功能的同时,专业设计师还对JumpServer v3.0的操作界面进行了全新的UI设计,重新调整功能布局,只保留核心菜单,仪表盘数据更加直观,简约而直白的设计大幅提升了用户的使用体验。
六月对于JumpServer是有着特别意义的。JumpServer项目的第一行代码是在2014年6月写下的,JumpServer v2.0版本发布日期是2020年6月。在2021年6月,JumpServer开源项目组编写了第一版《新一代堡垒机建设指南》白皮书,以此为载体回顾堡垒机作为一个IT产品品类的发展历程,及其在云计算时代所面临的问题,以及新一代堡垒机建设的想法与实践。在过去两年的时间里,有超过4000位的社区用户下载了《新一代堡垒机建设指南》电子版,有超过6000本《新一代堡垒机建设指南》纸质版送达广大用户手中。
2023年7月,《新一代堡垒机建设指南》特别推出JumpServer v3.0发布纪念版。结合过去两年广大社区用户的反馈,在这一版本中,我们进一步升级了新一代堡垒机的内涵解读,对最新版本JumpServer的功能架构及核心优势进行了详细阐述,并与大家分享JumpServer v3.0版本的研发设计思路和功能进化。另外,我们还同步更新了包括腾讯海外游戏、货拉拉、万华化学在内的最新企业应用案例,以帮助用户更好地推进JumpServer开源堡垒机在企业的落地实践。
将JumpServer开源项目的发展进程、产品能力和用户案例定期集结成册,已经成为我们与社区用户互动的重要方式。《新一代堡垒机建设指南》(JumpServer v3.0发布纪念版)让我们站在了一个新的起点。在这个万物皆盛的时节,我们将和广大用户和客户一起,为了“用心做好一款堡垒机”不懈努力。
JumpServer开源项目创始人 广宏伟
2023年6月