JustGiving 是世界上最大的慈善筹款在线社交平台之一。该组织的总部位于伦敦,拥有 2400 万注册用户,帮助超过 13000 个各种各样的慈善项目募捐了 35 亿美元,其中包括阿尔茨海默氏病研究、海地地震救援以及阻止人口贩卖的行动。JustGiving 成立于 2001 年,它会从其平台上的捐款中抽取 5% 的交易费用,然后将所得收益重新投入到平台的开发和创新上。

JustGiving Creates New Big-Data Platform on the AWS Cloud (3:35)

thumb_justgiving

JustGiving 的发展得益于其与社交网络的集成、对移动捐款的支持、社交馈送以及宣传活动和众筹产品的推出,所有这些使 JustGiving 用户能够增强筹款举措、覆盖更多人群并为慈善事业筹集更多资金。同时,发展也给该组织的技术和运营团队带来了挑战,他们需要遵从公司的使命,跨所有平台提供富有吸引力的用户友好型体验,同时尽可能降低成本和开销。

“过去几年来,我们发现越来越多的人选择通过各种网络和渠道分享筹款活动。”JustGiving 的首席信息官 Richard Atkinson 说道,“大量社会现象像病毒一样从四处涌现出来,这导致我们的流量高峰进一步上涨。我们使用的是同位数据中心环境,要进行扩展则需要额外的成本,复杂性也会增加,因此这样的做法费用高昂且不切实际。”

“数据的急剧增加也给组织的内部分析流程带来了巨大压力。”JustGiving 的解决方案架构师兼数据科学家 Richard Freeman 博士说道,“我们的分析团队和功能的发展速度非常快,这导致 Microsoft SQL Server 数据仓库无法处理数据科学家和分析师所需的新数据量、速度和查询复杂性。”Freeman 说道。

为了解决这些问题,该公司决定将其常规运营迁移到云中,并托管一个名为 RAVEN (报告、分析、虚拟化、试验、网络) 的全新大数据分析平台。该平台可与现有数据仓库配合使用,旨在为 JustGiving 数据分析师提供相应工具,以便其针对点击流、日志、事务性和外部数据源运行试验。分析团队还希望运行更多传统报告并检查关键性能指标 (KPI),而无需不断重复不同的提取、转换和加载 (ETL) 流程。

JustGiving 之所以选择 Amazon Web Services,是因为该服务可以提供测试和生产环境,并且特别注重于增强分析能力。Atkinson 称,这个选择归结于信任:“我们是一个受 2400 万位用户信任的品牌,有 13000 个项目通过我们筹集资金。”他说道,“我们希望找到一种云服务解决方案,以便将其用于该信任网络。而 AWS 则是我们的不二之选。”

JustGiving 将其软件重新设计为 微服务。 此类服务可以通过自动化连续交付管道进行部署,从而使用多种 AWS 服务来使 JustGiving 员工无需支持和维护基础设施,并充分利用 AWS 平台的可扩展性和弹性。这些服务包括 Amazon Elastic Compute Cloud (Amazon EC2)、Auto ScalingElastic Load BalancingAmazon ElastiCacheAmazon Relational Database Service (Amazon RDS) 和 Amazon Simple Storage Service (Amazon S3)。

该组织还借助若干种 AWS 服务将 AWS 用于其 RAVEN 分析平台,这些服务包括 Amazon RedshiftAmazon Elastic MapReduce (Amazon EMR)、Amazon KinesisAWS LambdaAmazon DynamoDBAmazon Simple Queue Service (Amazon SQS) 和 Amazon Simple Notification Service (Amazon SNS)。

“许多供应商提议使用图形界面来实现大数据集成,但是我们发现,在实际情况下,使用临时触发的实际 SQL 代码加载和查询数据来进行数据科学试验或实现 KPI 控制面板和报告的自动化将更加有效。”Freeman 说道,“通过使用 AWS,我们构建了事件驱动型 ETL 管道,以及可通过稳健的基于 SNS 和 SQS 的托管消息收发流程进行通信的系统。我们还了解了现有的开源工作流框架,但这些框架均要求具有需要进行设置和为其提供支持的专用设备。对于我们的使用案例,要对这些框架进行自定义则太过复杂。”

JustGiving-AWS-diagram-overview-091815

JustGiving 基于 AWS 的 RAVEN (报告、分析、虚拟化、试验、网络) 平台架构。

Freeman 对 AWS 平台支持的功能称赞不已。“AWS 提供了我们在自己的大数据分析平台上快速制作原型、进行 数据科学 试验、计算指标以及运行报告所需要的一切内容。”他说道。

对于 JustGiving 分析团队,Freeman 表示,Amazon Redshift 经证明是一种颇为有效的产品,可进行数据探查和查询大型结构化数据集 (包含位于不同群集上的数十亿个数据点)。“我们构建了一整套用于运行事件驱动型 ETL 任务并集成内部和外部的 API 的工具。”他说道,“以前在 SQL Server 中需要 30 分钟才能运行完的查询现在只需数秒钟便可运行完。我们可以运行之前不可能实现的较为复杂的查询。我们甚至发现,与使用专用图形数据库相比,较为简单的图形类查询 (如慈善机构和活动与用户的关系) 的执行速度要更快。我们第一次能够为企业用户提供事务性和非事务性数据 (如页面访问次数、募捐活动和共享管道) 的综合视图。Redshift 是一款更快捷、更易于使用的产品,它为我们提供了更加有用的工具来支持我们的生产环境。”

JustGiving 使用 AWS EMR 来针对数 TB 数据运行大型自动化 ETL 和分析流程,而无需管理群集基础设施设置和维护。“在使用 Amazon EMR 之前,我们的数据科学家只能使用可在一台设备上运行的算法,并且这些算法不适用于示例数据集。计算任何较大规模的数据则需要数天的时间。”Freeman 说道,“现在,借助运行 Hadoop 或 Spark 群集的 Amazon EMR,他们可以轻松启动拥有数百个 Amazon EC2 实例的群集来计算可扩展的图形处理、自然语言处理、机器学习和流分析算法。举例来说,我们可以使用此项功能推荐众筹项目、了解用户网络、自动标记慈善机构以及提高用户参与度。”

分析团队可以结合使用 Amazon Kinesis、AWS Lambda 和 Amazon DynamoDB 来执行过去难以实施的复杂任务。例如,以近乎实时的方式将网站点击流事件写入 Amazon Kinesis。AWS Lambda 函数可以运行代码以响应事件,从而处理事件并将其写入 Amazon DynamoDB。此外,Lambda 可用于测试、事件监控和有效通知,而 DynamoDB 可用作 Kinesis 事件的持久数据存储和虚拟化监控工具。

Atkinson 指出,这个新的分析平台是 JustGiving 走向 IT 之路的新方法的一部分,对 JustGiving 大有裨益。“在使用 AWS 之前,JustGiving 基于单一高级数据源制定决策。”他说,“现在,借助新的 AWS 工具,我们可从基于数百万募捐活动和数十亿事件的多个来源提取更精细的数据,然后使用此类信息为我们的访客提供更好的平台。”

AWS 平台的可扩展性和经济效益,尤其是按需付费的业务模式,也是促进该组织不断发展的关键。“我们现在一直将成本投入在运营周期和价值创造上。”Atkinson 说道,“之前,我们将大量资金投入在硬件上,我们花钱所得的资产就固定在那里,其利用率通常不高。使用 AWS 之后,我们实现了管道的自动化,借助新的分析平台,我们只需将钱花在相关工具和数据上,以便生成洞察信息、增加价值并实时支持针对所有访问 JustGiving 的用户的决策。”

要详细了解 AWS 如何帮助您处理和分析大数据,请访问我们的大数据详细信息页面:http://aws.amazon.com/big-data/