数据驱动之数据采集
数据驱动早已不是什么新概念,现在我们听说过的互联网公司无一不是数据驱动类型的公司,数据的重要性直接关乎企业的命运。数据驱动一般分为4个步骤的循环:数据获取、数据分析、数据应用和数据反馈。
其中种类最多、工作最繁琐的当属数据获取,每个业务方根本没有人力物力单独建设一套完整的日志采集系统。阿里和Facebook、Netflix、LinkedIn等公司一样,都已将日志采集作为公司的基础设施进行建设和维护。
全球化数据采集的新挑战
建设一套完备的日志采集基础设施并不简单,尤其在全球化逐渐普及的今天,我们需要去面对各种各样的应用类型、客户端类型、数据类型、网络条件、地域限制、数据安全性、合规性等等问题。
其中有两项工作最繁琐和艰难:
- 繁琐主要体现在需要建设各种各样的数据采集手段,包括服务端采集Agent、移动端采集SDK、IOT/智能设备采集、网页、应用程序、数据库、关联应用等,每项工作看似简单,但都是数据采集必不可少的环节。
- 艰难体现在全球化数据网络的建设,现在更多的数据在端设备中产生,无论是手机、摄像头、智能音箱、穿戴设备等等,而端上产生的数据对于用户行为分析也至关重要。但对于分布全国、全球各个角落的端设备,我们面对着运营商链路、偏远地区网络质量、跨洋数据传输、链路质量波动、劫持等等问题,这些并不是简简单单软件层面能够解决的问题,更多的需要对整个网络硬件的投入。
上图为某短视频的下载延迟和可用性基准测试结果
作为用户最终的目标是为了分析数据。但这些问题的存在,需要消耗大量人力、精力和物力,干了不一定干得好。
而阿里云日志服务(SLS)就是一款专门解决日志采集、处理、分析的开箱即用型产品,本篇文章我们把重点放在如何基于日志服务把全球化数据采集做的又全、又快,更关键的是省时、省力、省钱。
采集端构建
日志服务提供30+种开箱即用的数据采集手段,包括直接和云产品打通的日志、移动端、服务端、程序、SDK、网页、嵌入端等。在之前的一篇全方位数据采集中,我们对各种日志采集方式进行了全方位的介绍。
概括起来,这些采集特点与试用场景如下:
方式 | 应用场景 | 当前规模 | 优势 |
---|---|---|---|
Logtail | X86服务器采集 | 百万-千万 | 功能强 |
Android/IOS SDK | 移动端数据采集、手机、POS机等 | 千万DAU | 断点续传 |
C Producer Library | 硬件资源受限的系统(如 IoT、嵌入式、RTOS等) | 千万-亿级 | 资源消耗低 |
Web Tracking | 网页静态数据采集 | 千万-亿级 | 轻量级,无验证 |
采集加速通道
近期日志服务联合阿里云CDN推出了一款全球数据上传自动加速方案:“基于阿里云CDN硬件资源,全球数据就近接入边缘节点,通过内部高速通道路由至LogHub,大大降低网络延迟和抖动 ”。
该方案有如下特点:
- 全网边缘节点覆盖:全球1000+节点,国内700+节点,分布60多个国家和地区,覆盖六大洲
- 智能路由技术:实时探测网络质量,自动根据运营商、网络等状况选择最近接入
- 传输协议优化:CDN节点之间走私有协议、高效安全
- 使用便捷:只需1分钟即可开通加速服务,只需切换到专属加速域名即可获得加速效果
采集加速原理
日志服务全球加速会为加速project专门开通一个加速域名,所有通过加速域名的访问均具有加速效果。对于加速域名的请求处理流程如上图所示,整体流程详细说明如下:
- 用户向日志服务的加速域名
{your-project}.log-global.aliyuncs.com
发起日志上传、下载等请求,首先需要向公共DNS发起域名解析请求。 - 公共DNS处的
{your-project}.log-global.aliyuncs.com
域名指向的是CNAME地址{your-project}.log-global.aliyuncs.com.w.kunlungr.com
,此时域名请求会转发至阿里云CDN的CNAME节点。 - CNAME节点基于阿里云CDN智能调度系统,会将最优的CDN边缘节点IP返回给公共DNS。
- 公共DNS将最终解析到的IP地址返回给客户端。
- 客户端根据获取的IP地址向服务端发起请求。
- CDN边缘节点接收到请求后,基于动态路由查找、私有传输协议将请求路由至距离日志服务服务端最近的节点,最后将请求转发到日志服务。
- 日志服务的服务端接收到CDN节点请求后,将请求结果返回给CDN节点。
- 最后CDN将日志服务返回的请求结果/数据透传到客户端。
如何使用
全球加速使用极其方便,只需根据文档步骤开通加速服务,对于日志服务提供的30+种采集方式,都可切换到全球加速方式:
Logtail日志采集
安装Logtail时可选择 全球加速 方式即可。
其他采集方式
其他通过Web Tracking,Android SDK,IOS SDK ,Producer 等访问日志服务的方式均可通过替换endpoint获得加速效果:将endpoint替换为log-global.aliyuncs.com
。
加速效果
在我们的日志上传基准测试中,全球7个区域对比整体延时下降50%,在中东,欧洲、澳洲和新加坡等效果明显。除了平均延时下降外,整体稳定性也有较大提升(参见最下图,几乎没有任何抖动,而且超时请求基本为0)。确保无论在全球的何时何地,只要访问这个加速域名,就能够高效、便捷将数据采集到期望Region内。
测试地域 | 延时ms(普通公网) | 延时ms(加速) | 超时占比%(普通公网) | 超时占比%(加速) |
---|---|---|---|---|
杭州 | 152.881 | 128.501 | 0.0 | 0.0 |
欧洲 | 1750.738 | 614.227 | 0.5908 | 0.0 |
美国 | 736.614 | 458.340 | 0.0010 | 0.0 |
新加坡 | 567.287 | 277.897 | 0.0024 | 0.0 |
中东 | 2849.070 | 444.523 | 1.0168 | 0.0 |
澳大利亚 | 1491.864 | 538.403 | 0.014 | 0.0 |
测试环境:日志服务所在Region:华北5(呼和浩特);平均上传数据包大小:10KB;测试时间范围:1天(取平均值);请求类型:HTTPS;请求服务器:阿里云ECS(规格1C1GB)。