社区分享|货拉拉通过JumpServer纳管大规模云上资产

发布于 2022年08月09日

编者注:在2022年7月9日举办的“2022 JumpServer开源堡垒机城市遇见· 深圳站”活动中,深圳依时货拉拉科技有限公司核心基础设施部资深运维工程师李享海分享了题为《JumpServer在货拉拉中的运用》的主题演讲。以下内容根据本次演讲整理而成。

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

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

▲  图1 货拉拉核心基础设施部资深运维工程师 李享海

为什么选择JumpServer堡垒机?

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

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

■ 多云资产纳管的需要

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

■ 原先的堡垒机无法满足发展需求

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

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

1. 开源社区支持

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

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

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

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

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

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

4. 高可用、易开放

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

JumpServer在货拉拉的部署架构

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

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

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

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

▲  图2 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带来的价值收益

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

■ 服务入口统一

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

■ 流程一体化

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

■ 高可用部署

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