云妹导读:
618、11.11 等电商节已经成为电商平台的头等大事之一,在数亿消费者与商家狂欢的同时,如何保证平台的稳定、各项存储服务到位、如何保持复杂的网络环境下的数据使用和多方调用等问题,成为考验平台技术部门的重要一环。在《揭秘京东618大促背后的技术基石》线上沙龙中,来自京东的 5 位技术专家带来了五大精彩议题,覆盖 618 大促保障的各项核心技术能力,下面就跟着云妹一起来回顾这场沙龙的精彩内容吧!
6 月 18 日 24 时,2020 年的 618 大促落下帷幕,京东 618 大促期间累计下单金额达到 2692 亿元,创下新纪录。
与往年不同,今年 618 是京东核心业务全面上云的第一年,也是京东融合人工智能、云计算、物联网等业务板块升级为京东智联云之后其技术能力的第一次大考。
面对创新高的云端数据和流量洪峰,京东技术扛住了,这主要得益于作为京东技术基石的京东智联云全栈出征,为 618 搭建了一套稳固且高弹性的技术底座,支撑超大流量、超高并发的技术平台。
近日,京东智联云技术沙龙在线上举行,来自京东的 5 位演讲嘉宾带来了各自的主题分享,分别从分布式图搜系统、分布式文件系统、全方位安全体系、数据库等角度,揭秘京东技术全栈是如何为今年的 618 大促提供技术支撑的。
朱洪银,京东软件工程师
演讲题目:《支撑618大促流量洪峰利器——分布式文件系统ChubaoFS》
演讲精华:
今年的 618 大促,京东面临着很多难题与挑战,这主要包括计算和存储分离的需求,数据的生产者和消费者使用不用的协议访问文件,容器平台需要提供可持久化的分布式存储平台,提供更大的磁盘空间,以及对海量小文件友好、同时可以提供高性能、高可用、高可扩展性。
这些挑战,被京东自研的融合分布式文件系统与对象存储服务的 ChubaoFS一一化解。
从架构上来看,ChubaoFS 包含 Master、MetaNode、DataNode、Client 四个模块,具有高性能、多租户、通用存储引擎、高可扩展性、兼容POSIX接口、支持对象存储 6 个关键特征。
ChubaoFS 的元数据子系统是由多个 MetaNode 节点组成的,可以水平扩容,在一个 MetaNode 上可以分布多个 MetaPartition。
在京东,ChubaoFS 已经稳定服务于 2000 多个应用以及在线业务,为公司节省了上千台机器,成本节约效果明显。
朱洪银介绍到,618 大促期间,客户端的数据剧增,各个业务方可能根据访问量的变化进行大量扩容,这时 Master 就会遇到带宽瓶颈,如果几十万个 Cilent 同时访问一台机器,会对一台机器造成很大的压力,所以 ChubaoFS 在中间加了一层以缓存系统的元数据,这样客户端几十万的请求,最终打到 Master 集群上可能会缩小 1000 倍,Master 的压力明显降低。
第二点是大促期间的热点数据访问。面对热点数据访问场景,有三种处理手段,第一种是 S3;如果使用的是 POSIX,则直接开启 cache 缓存选项,提升读写性能;第三种是从集群的角度,在创建 vol 时会多分配一些 DataPartition 和 MetaPartition 资源,减小每台机器的 IO 压力和内存压力,从而提升响应速度。
在 618 期间,ChubaoFS 的整体 QPS 读达到 3000W,而 TP999 只用 5 毫秒,写是 800W,响应速度是 65 毫秒,性能非常高。
最后一点是高可用,ChubaoFS 支持磁盘故障自愈,并具有 FollowerRead 功能,支持跨机房、跨 pod 部署,单机房出现了问题,另外一个机房也可以提供服务,从而解决高可用的问题。
目前,ChubaoFS 已在 GitHub 开源,感兴趣的同学可以通过以下链接详细了解。
项目地址:https://github.com/chubaofs/chubaofs
论文地址: https://arxiv.org/abs/1911.03001
白亚东,京东智联云云产品研发部架构师
演讲题目:《京东智联云数据库如何支撑百万级QPS大促》
演讲精华:
白亚东透露,京东智联云以超高弹性应对海量并发,流量洪峰较去年 618 提升了 195% 多,总带宽也同比增长 113%,云安全防护保障实时拦截攻击 12.3 亿次,支撑超过去年京东双十一峰值 1.8 倍计算上云专区专线峰值流量。京东智联云云数据库 RDS 的 QPS,更是达到平时的 3.5 倍,流量洪峰达到平时的 3 倍。
京东智联云云数据库 RDS 分八个步骤备战大促,首先是识别保障范围,明确边界范围,明确保障业务优先级;第二步是业务评估及与检查,评估整个业务链路上需要的资源,提前扩容和采购;第三步是预案整理,包括服务高可用、数据高可用预案、降级保护预案、弹性扩容预案等;监控及报警梳理,发现系统压力,在系统真正故障或不可用时及时介入处理,以确保系统运行平稳;第五步是业务压测及预案演练;第六步是值班,让整个业务链路完全串起来;当这些前期准备工作做到位后,6 月1 日起做好值班工作,值班通信 24 小时无缝衔接,确保线上报警第一时间响应;最后一项重要工作是大促技术复盘,找到需要完善、改进,以及未来需要进一步加强的地方,为下一次大促做长远准备。
对于数据库来说,可用性和可靠性是永恒的话题,商用数据库提供全套管理系统,但缺点是贵。开源数据库也有很多生态工具,借助其他组件解决的方案,也能完成相应的功能,但有一定的技术门槛和维护成本。
数据备份是容灾的基础,也可以防止系统出现操作失误和系统故障导致数据丢失。京东智联云云数据库 RDS 提供数据备份和日志备份两种备份功能,并提供覆盖恢复、按备份恢复、按时间点恢复三种恢复功能,用户如果误删实例,可以通过多种方法恢复数据。
另外,在跨地域容灾方面,通过将云数据库 RDS 实例备份文件同步到不同 Region 的地域,RDS 可实现跨地域容灾,开启跨地域备份服务,不会对原云数据库 RDS 实例使用性能造成任何影响。
在高可用性方面,京东智联云为用户多个地域提供了云计算服务,同一个地域下的不同可用区网络延迟在 1.5 毫秒以内,支持单可用部署,支持迁移可用区,并可实现故障自动切换、故障自愈。
京东智联云云数据库的产品,目前支持 MySQL、Percona 和 MariaDB 等,实例管理有生命周期管理、只读管理、高可用管理,以及升配降配、实例重启等其他运维,备份管理、帐户管理、恢复管理、库管理。
在安全、审计和日志方面,RDS 现支持标准模式和高安全模式,高安全模式具备一定的 SQL 拦截能力,通过分析关键系统函数来实现防御 SQL 注入;审计上,云数据库 MySQL 开启审计后会统计所有 DDL 和 DML 操作信息;性能优化上,RDS 可以从多个角度统计 SQL 执行性能和及索引的各种统计数据,帮助用户发现问题SQL和潜在性能瓶颈,有针对性地进行优化;在日志方面,提供完整的 binlog 日志下载,云数据库 MySQL 实例每 5 分钟会自动同步最新的实例日志文件至云存储,且 binlog 产生的空间占用不收费。
邱雁杰,京东智联云云产品研发部架构师
演讲题目:《护航京东618大促,如何构建全方位立体安全体系》
演讲精华:
京东 618 大促面临很多安全威胁及挑战,包括 DDoS 攻击等基础安全、业务风控和数据安全。618 大促期间,京东智联云共遭受过 800G DDoS 流量攻击,在 CC 攻击方面拦截64亿次攻击,CC 和 WEB 漏洞攻击都是七层的应用攻击。在其他攻击方面,京东还防护了包括暴力破解、远程漏洞利用、敏感文件探测等 4 亿次其他攻击。
邱雁杰还指出了企业加快数字化转型必须面对的几个安全痛点。第一,资产管理盲区导致木桶响应;第二,防御建设成本与攻击成本的不对等;第三,边界式防御模式中的内部管控缺失;第四,业务多样化导致的数据安全问题;第五,缺乏体系化安全建设思路,难从公司整体安全角度考虑安全体系建设。
要构建一个从基础设施到应用安全的全方位多层次安全体系,首先要清楚企业整个的系统架构,再针对用户、员工和第三方合作伙伴这三个不同的层次,有针对性地构建安全防护体系。
京东智联云推出一系列基于云的原生安全能力及产品,第一,在安全基础设施层,京东智联云用户可以使用 Anti-DDoS 系统,对所有流入京东智联云机房流量做统一的流量清洗;第二,京东智联云提供原生全链路加密,在端上可以使用 KMS、SDK 与 KMS 交互,进行数据加密;第三,京东智联云原生 DevSecOps 服务提供项目管理、代码托管、流水线几大功能,且在项目管理时加入 Sec 流程,在项目设计过程中提供安全自查 CheckList,以规避安全设计缺陷;第四,体用统一的安全中心对所有的安全风险作统一管控和处理。
结合企业安全体系结构和京东智联云云原生的安全功能,可以看到基于云原生功能和安全产品,可以构建从基础设施到应用安全的全方位多层次安全防护体系,为企业数字化转型护航。
俞凯,京东智联云视觉研发部资深软件工程师
演讲题目:《分布式图搜系统在618大促期间的落地——应对海量商品审核,实现秒级响应》
演讲精华:
618 大促期间,所有商家、用户评论、客户咨询等图片都需要进行审核,过滤涉黄涉暴图片。这一操作的人工成本巨大,需要借助AI的力量来实现。图片过滤面临着巨大的困难和挑战,包括大库低时延、大库高并发,并需要保证数据的实时性、一致性和可靠性。
为应对上述挑战,京东智联云在业务中积累出一个通用化、高可用、高性能、高并发、可插拔、自动化的图搜平台,希望支持亿级底库、海量并发、秒级返回,支持动态入库、实时可查,支持第三方算法库的接入,对外赋能。
微服务架构
○ 采用 K8s 进行服务部署、编排。
○ 采用 Istio 进行负载均衡和流量管理。
○ 采用 OSS/mysql 进行数据持久化。
○ 采用 redis 进行业务数据缓存。
○ 采用kafka/http/grpc进行服务通信。
服务分层
○ 基础服务:包含算法仓库、图片服务、索引服务。
○ 核心服务:包括调度服务和路由服务。
○ 业务服务:包含人脸识别、行人重识别、商品识别服务。
该图搜系统的核心模块包括调度模块 scheduler,路由模块 router、索引服务
indexServer、注册服务 register,以及算法仓库模块 algoHub。针对此前版本遇到的痛点,该系统进化出一些关键技术,比如针对解决亿级底库,海量查询的痛点,通过把亿级底库分成多个 Slice,通过调度模块,根据一定的策略调度到合适的 IndexServer 上,以提高性能。
之前的版本将底库和服务器做了静态绑定,这种方案灵活性、扩展性和容灾能力差,无法感知库数量和大小的动态变化,为了支持实时建库、入库,设计了 scheduler 模块,由它来监控 group、slice、indexServer 的状态,根据这些状态对 slice 进行调度和 rebalance,并发布 slice 到 indexServer 的路由信息, router 模块根据路由信息,路由入库信息以及分发搜索请求、聚合搜素结果。
在性能参数上,618 期间,该图搜系统承受了 QPM 为 80W 的查询洪峰,特征服务使用了约 120 张 P40 卡,tps 为 180;索引服务使用了 25 台 32 核机器;接入服务使用了 460 台双核机器;底库数量达 100 万,召回率达 98% 以上,调用量最高的一天达 5 亿次。
贺思远,京东物流架构师
演讲题目:《京东物流数据同步平台——数据蜂巢Dcomb大促保障之路》
演讲精华:
数据蜂巢(Dcomb)是一款轻量级数据处理系统 ,已在京东物流大规模使用,系统采用分布式架构,具有高可用及负载均衡的特性,可实现数据实时采集、历史数据加工同步、实时数据单表加工同步,以及实时数据宽表加工同步四大功能。
Comb 系统架构采用的是 Master、Slave 分布式架构。Slave 内部包含 pieworker、streamworker、batchworker 几个部分。其中,stream 负责数据采集;Store 采用文件队列,将解析过的数据存到本地;单表对数据进行消费、加工;宽表按照 join 逻辑,将多表关联,实时输出;此外还支持数据的离线同步。
目前,Dcomb 系统已经应用于京东物流多个核心业务上,对业务数据进行加工同步,输出相关报表用以指导生产。
为了保证今年 618 顺利进行,Dcomb 系统做了很多优化工作。
1. 首先是如何保证数据采集传输。大促期间,binlog 生成的速度极快,几十秒就会生成 1G 的 binlog 文件,在数据采集上,瓶颈主要在于序列化和压缩、解析上,Dcomb 对 MySQL 的 binlog 进行预处理,再并发进行解析,以提升性能。
2. 传输。在跨区域将数据从园区传到 IDC 时,Dcomb 也做了优化,比如二次压缩,并发传输,最大程度的利用区域带宽,以解决因网络质量引起的延迟,提高时效性。
3. 消费。当数据到达 IDC 后对数据进行分发可能面临并发的问题,Dcomb 提供了多种策略,包括严格串行,表级,行级并发等保证数据的正确性。
实时宽表加工是 Dcomb 系统重点开发的一个功能,当前的处理方式类似于 Storm,但团队正在通过借鉴 Flink 等优秀流式计算框架的思想研发第二代宽表计算引擎,这是 Dcomb 未来的一个重要发展方向。
以上仅为演讲嘉宾观点的精彩提炼,如想了解完整演讲内容,请点击『阅读原文』,进入官网查看完整演讲视频。也可扫码关注京东智联云开发者微信公众号,获取更多技术内容。