8. 案例研究&社区分享货拉拉通过JumpServer纳管大规模云上资产

JumpServer在货拉拉中的运用实践分享。

编者注:在2022年7月9日举办的“2022 JumpServer开源堡垒机城市遇见·深圳站”活动中,腾讯海外游戏安全运营负责人林鼎盛分享了题为《锻造行业领先游戏安全技术与运营能力》的主题演讲。以下内容根据本次演讲整理而成。

货拉拉于 2013 年创立, 2014 年同时进入中国大陆和东南亚市场,是一家从事同城/跨城货运、企业版物流服务、搬家、零担、汽车租售及车后市场服务的互联网物流商城。货拉拉通过共享模式整合社会运力资源,完成海量运力储备,并依托移动互联、大数据和人工智能技术,搭建“方便、科技、可靠”的货运平台,实现多种车型的即时智能调度,为个人、商户及企业提供高效的物流解决方案。

作为一家国际化运营的互联网物流商城,货拉拉通过在中国、东南亚和拉丁美洲的不断深耕,业务已经遍布全球多个城市。目前,深圳依时货拉拉科技有限公司(以下简称为“货拉拉”)负责大陆地区运营。截至 2022 年 4 月,货拉拉业务范围已覆盖 352 座中国内地城市,月活司机达 66 万,月活用户达 840 万,已经成为国内同城货运平台的头部企业。

背景与需求

其实早在三年前,货拉拉就开始使用 JumpServer 的开源版本。我们所在的部门主要是负责公司的核心基础设施,需要管理整个云基础设施,同时作为工具开发团队嵌入性使用 CI/CD(持续集成与持续交付)。在公司业务发展的早期阶段,需要纳管的资产并不多,只需要对阿里云上的资产进行管理,因此公司当时使用的是阿里云堡垒机。

但是随着货拉拉业务的迅速发展,我们在国内又接入了华为云进行纳管,面对资产规模的迅速扩张和多云资产纳管的需要,原先的堡垒机已经无法满足我们的需要:

■ 多云资产纳管的需要 我们在多云环境下有将近 1 万台的资产需要进行纳管,资产规模比较庞大,资产无法实现自动同步,需要运维人员手动创建资产并进行授权。这其中的工作量巨大,需要一个运维管理平台进行统一的管理;

■ 原先的堡垒机无法满足发展需求 原先使用的阿里云堡垒机,无法嵌入到我们的 DevOps 流程中,并且无法适应多云环境下资产的纳管需要,因此需要寻找一款可以对接外部 CMDB(配置管理数据库)系统的堡垒机。

基于以上的需求,货拉拉的运维团队开始在市面上寻找新的堡垒机方案。我们了解到了 JumpServer 开源堡垒机,也对比了其他品牌的堡垒机,使用下来,发现 JumpServer 能够满足货拉拉对企业 IT 安全运维的需要。

  1. 开源社区支持

早期我们使用开源版本的时候,使用过程中遇到了难以解决的问题,向 JumpServer 官方寻求技术支持,开源社区的技术团队积极进行问题排查,并告知我们该如何解决问题,由此带来的良好体验也让我们对 JumpServer 产品本身,以及其技术服务团队产生了信赖;

  1. 系统安全运行的稳定性保障

由于公司资产规模庞大,使用人员也比较多,IT 系统运维对 JumpServer 堡垒机依赖程度不断增加,因此系统稳定运行的重要性也在不断攀升。货拉拉的资产、人员与堡垒机系统逐渐发展成为了一个密不可分的体系。

系统运行不稳定就会导致公司整体业务受到很大的影响,因此我们希望获得专业化的服务支持,遇到问题快速提供解决方案,确保JumpServer 堡垒机在企业内部长期稳定地运行。这也是我们最终选择 JumpServer 堡垒机企业版的重要原因之一;

  1. 迭代速度快、功能丰富

JumpServer 一直以来保持着快速迭代的节奏,每月发布一个新的版本,不断完善自身的功能,快速响应用户需求,基本能够满足公司安全运维的需要;

  1. 高可用、易开放

JumpServer 支持跨机房、跨云部署,支持高可用部署。同时,JumpServer 也支持二次开发,提供 API 接口,支持与 CMDB 进行对接,从而可以通过 CMDB 接口自动同步资产。

JumpServer 部署架构

目前,货拉拉的资产主要都部署在云上,在华为云、阿里云、亚马逊 AWS、Azure 等多云环境中都有分布式资产,资产规模庞大,还包含一些虚拟机、Kubernetes 以及容器部署。考虑到高可用性和海外资产的安全性,跟 JumpServer 交付团队讨论过后,最终决定采用分布式部署方案。

在阿里云和华为云分别部署一套 JumpServer,阿里云为主环境,华为云为备环境,跨云备份确保高可用。同时,阿里云到华为云之间打通多条专线,这样一来,日常使用在阿里云环境中进行,华为云作为备环境,一旦出现专线中断的情况,可以直接切换至华为云环境,通过修改 SLB 公网地址直接进行登录操作,确保系统正常稳定运行。

在数据同步方面,阿里云和华为云环境通过 DRS(分布式资源调度程序)同步工具实现双向数据同步,确保环境数据一致。

此外,审计录像记录存储在阿里云 OSS 和华为云 OBS,实现录像的永久存储。同时,命令记录存储在 Elasticsearch 集群,减少对MySQL 服务器的压力。

附图45 JumpServer 在货拉拉的部署架构

JumpServer 在货拉拉的部署架构

应用场景

JumpServer 在货拉拉的应用场景主要有以下三个:

■ 发布平台对接服务节点场景 我们部门主要负责开发货拉拉内部的一个发布平台,被称为“Lalaplat”,并且将 JumpServer 嵌入到该发布平台中。在新申请服务时需要绑定一些发布服务,服务名称对应人员,比如服务负责人、开发、运维、测试人员等,并将其同步到 CMDB 中,通过 API 接口,自动同步到 JumpServer 上。

我们利用 JumpServer 的 Web Terminal,在发布平台直接对接了登录服务节点。这样一来,开发人员在进行发布操作的时候就会自动落到节点上。一般会有多个节点,一个服务可能会有上百个节点,在开发人员进行尝试性测试的时候,可以通过登录 JumpServer查看服务信息;

■ 发布平台对接 Kubernetes 场景 我们利用 JumpServer 的 Web Terminal,可以在 Lalaplat 发布平台直接登录 Kubernetes Pod,提高了运维管理效率。其实刚开始的时候我们也考虑过直接通过 JumpServer 进行 Kubernetes 纳管,但是对于开发人员来说,在发布平台进行发布操作时还需要登录 JumpServer 比较繁琐,因此最终通过 JumpServer 的Web Terminal和API将 Kubernetes 嵌入到发布平台上,实现了统一的管理;

■ 统一的服务器准入平台场景 货拉拉融合了多套 JumpServer 堡垒机,建立了集资产权限查询、工单申请、权限授权、审批于一体的统一准入平台,提高了公司安全运维的效率。

Lalaplat 这个平台的建立也经历了相当长的发展历程。最初货拉拉的所有资产、权限都是通过 CMDB 直接对接到 JumpServer 上,并通过一个工单系统来进行管理。当人员需要申请比较高的权限时,通过工单系统填写工单信息,经常发生人员不查看文档导致沟通成本比较高的情况,而且国内外系统分开管理,容错性比较差。

基于上面的情况,货拉拉通过 JumpServer 堡垒机建立起了一个统一的服务器准入平台,将国内及海外的服务器整合在一起,形成了规范的审批流程。当人员需要申请权限时直接点击“申请”按钮即可,审批人员可以直接在飞书上进行确认,简化了权限申请的审批流程,极大地降低了团队的沟通成本。由此,也渐渐形成一个规范、体系化的准入平台,让大家可以将时间聚焦在更重要的事情上。

价值收益

JumpServer 在实际应用的过程中为货拉拉带来了很多价值收益,具体有以下几方面:

■ 服务入口统一 技术人员进行二次开发,完成了 CMDB 系统与 JumpServer 的对接,实现资产自动同步,统一服务器入口;

■ 流程一体化 对接工单系统,实现发布平台通过接口对虚拟机、Kubernetes 等资产进行自动化授权;

■ 高可用部署 在阿里云和华为云分别部署 JumpServer,阿里云为主环境,华为云为备环境,跨云备份确保系统高可用。