JumpServer开源堡垒机的自白:改变世界,从一点点开始

发布于 2021年05月19日

编者注:本文刊登在《新一代堡垒机建设指南》(2021年5月第I版)序言部分,文章作者为JumpServer开源堡垒机项目创始人广宏伟。

改变世界,从一点点开始

老广

2014年6月,JumpServer开源堡垒机项目诞生。在那个时间节点,这个项目要到哪里去?我的手中没有地图。

那时我是一名运维工程师,入职了一家新公司。上班第一天领导给了我一个EXCEL表格,让我把公司服务器的账户名和密码改一下。让我没想到的是,这项单调的工作花费了一周的时间。一系列的问题导致密码修改的工作需要用大量的时间去沟通和核对。我就产生了一个想法,能不能编写一个程序来替代这种运维工作交接的EXCEL表格呢?

当时Python语言非常流行,能不能使用Python编写一个程序解决这个问题?有了这个想法,我开始学习Python语言,大概学了半年左右,在业余时间写出了一个稚嫩的脚本。这个脚本的主要功能是,当用户登录服务器后会自动运行该脚本,在命令行中输入IP地址,脚本程序会在数据库中提取账号和密码,并且完成登录。使用了一段时间后,觉得这个脚本还是挺有价值的,就把它发布到GitHub,并通过QQ群分享项目进展。

将JumpServer项目发布到GitHub之后,陆续又发布了一些小的版本,QQ群的用户也迅速增加到了200多人。当时JumpServer的操作界面十分粗糙,我的一个同学提供了很好的建议,在0.1.0版本中,我们一起对JumpServer的UI做了升级。到了0.2.0版本,QQ群的用户数快速增加,并且有5位社区开发者为JumpServer项目贡献代码,大家利用业余时间进行协作,项目开发的规划和效率都得到了提升。

2016年4月发布的0.3.2版本对于JumpServer有着里程碑的意义。这个版本基本上覆盖了堡垒机的关键功能,能够满足企业用户的基本需要。直到2019年,还有很多企业用户在使用这个版本。这一版本发布后,JumpServer在GitHub上的Star数量突破了3000个,社区开发者也增加到8个人。

火爆的背后是隐忧。比如代码的结构、API的设计都存在一些问题,这些都是JumpServer在项目早期遗留下来的。我们的团队尝试去重构JumpServer,希望使其更加规范化。当时我们进行了很多的讨论,考量了很多先进的技术路线,但是在真正落地时却举步维艰。这种思考、讨论和尝试的状态大约持续了半年的时间,却没有收获任何进展。由于大家都是利用业余时间参与项目开发,当项目陷入停滞时热情开始消退。失望的情绪笼罩着我们,成员们开始陆续离开。

从顺利起跑,到中途的迷茫,我自己也不得不面对难过和失望。调整了一段时间,感觉还是要再坚持一下。因为拥有了很多喜欢JumpServer的用户,感受到了作为开发者的开心和荣耀,至少不能在这里放弃。这时候我摒弃了一些不切实际的技术构想,聚焦于当下用户关注的核心问题,在2017年5月发布了0.4.0 beta版本。这个版本虽然有很多未解决的问题,但是却实现了API的标准化,并且做到了组件解耦。这个版本发布后,在用户群中获得了非常多的认可和鼓励。也正是这个版本,让JumpServer和FIT2CLOUD飞致云结缘。

后续的发展大家可能比较了解了。JumpServer有了更大的发展平台,并且真正进入了持续成长的阶段。目前,JumpServer开源项目在GitHub上的Star数量已经突破15,000个,代码贡献者超过70人。根据粗略的统计,从JumpServer项目诞生至今,其累计安装部署已经超过了200,000次。也有安全平台曾经公布过相关数据,2020年仅在公网运行的JumpServer数量已经超过20,000台。

从一个由Python新手编写的脚本,到一个被企业用户广泛验证、可信赖的关键基础软件,JumpServer花费了七年的时间。我们并非生而骄傲,甚至很多时候还很低微,但是在变革的时代里,我们真的可以做一些不一样的事情。回望那些曾经的欢喜和彷徨、希望和失望,似乎总有一种使命感与JumpServer项目相伴。这种使命感就是——“改变世界,从一点点开始”。

正是“从一点点开始”的信念,让JumpServer项目在退守至最后一人的至暗时刻坚持了下来。来自于开源社区用户的认可、鼓励、批评和质疑,一直在激励着我们,也不断推动着JumpServer项目的成长与发展。从用户的反馈中,我们一直能够获得前进的勇气和动力。非常庆幸JumpServer项目在一开始就选择了开源的运营模式,它赋予了JumpServer项目耕耘和成长的沃土。

FIT2CLOUD飞致云的价值观中有一句非常重要的话——“软件用起来才有价值,才有改进的机会”。JumpServer项目用七年的时间诠释了这句话的内涵,我们还将继续践行下去。