JustGiving 是全球最大的慈善募款線上社交平台之一。組織總部位於倫敦,有 2,400 萬名註冊使用者,已協助超過 13,000 個慈善事業募得共 35 億美元,資助了阿茲海默症研究、海地震災救濟和終止人口販賣計劃等各種慈善活動。JustGiving 成立於 2001 年,收取捐款時會扣除百分之五做為手續費,然後將這筆收入重新投資在平台的開發和創新。

JustGiving 在 AWS 雲端上建立全新的大數據平台 (3:35)

thumb_justgiving

JustGiving 結合了社交網路、行動裝置捐款支援、社交資訊饋送,以及舉辦活動和推出群眾募資產品等方式大幅刺激成長,這些都有助於讓 JustGiving 使用者的募款活動獲得更多關注、觸及更多人,進而為慈善事業募得更多款項。成長也為組織的技術和營運團隊帶來很大的挑戰,不但要遵循公司在所有平台上提供優質易用體驗的目標,還要盡可能降低成本和開銷。

「我們在過去幾年來看到越來越多人透過各式各樣的網路和管道分享募款活動,」JustGiving 資訊長 Richard Atkinson 表示。「有很多突發的熱門社會現象,導致我們的流量峰值不斷攀升。我們以前使用的共置資料中心環境讓擴展變得很困難,不但需要耗費額外的成本,還必須執行複雜的部署,因此既昂貴又難以實行。」

JustGiving 解決方案架構師和資料科學家 Richard Freeman 表示,資料的大量增加也讓組織的內部分析程序無法負荷。「我們過度快速地擴展分析團隊和功能,導致 Microsoft SQL Server 資料倉儲無法處理資料科學家和分析師所需的全新資料量、速率和查詢複雜度,」Freeman 表示。

為了解決這些問題,公司決定移到雲端以處理一般操作,並託管名為 RAVEN (報告、分析、視覺化、實驗、網路) 的全新大數據分析平台,以便與現有的資料倉儲搭配運作。移轉的目的是為 JustGiving 資料分析師提供工具,以便針對點擊流、日誌、交易和外部資料來源執行各種實驗。分析團隊也希望不必持續重複不同的擷取、轉換、載入 (ETL) 程序,就能執行更多的傳統報告和檢驗關鍵效能指標 (KPI)。

JustGiving 選擇用 Amazon Web Services 執行測試和生產環境,並特別著重於增強分析功能。這個決定總歸還是信任的問題:「我們是很有信譽的品牌,有 2400 萬名使用者和 13,000 個慈善事業使用我們來募款,」Atkinson 表示。「我們希望找到一個可以引進這個信任網路的雲端服務解決方案,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 用於其 RAVEN 分析平台,並倚賴下列多個 AWS 服務: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 表示。「現在 Amazon EMR 可以執行 Hadoop 或 Spark 叢集,因此他們可以輕鬆啟動含有數百個 Amazon EC2 執行個體的叢集,以運算可擴展的圖形處理、自然語言處理,以及機器學習和串流分析演算法。例如,我們會使用此功能來推薦群眾募資專案、了解使用者網路、自動化慈善標記,以及提高使用者參與。」

分析團隊同時搭配使用 Amazon Kinesis、AWS Lambda 和 Amazon DynamoDB,以執行以往無法實作的複雜任務。例如,網站點擊流事件現在能以近乎即時的速度寫入 Amazon Kinesis。AWS Lambda 函數會執行程式碼以回應事件、進行處理,然後將它們寫入 Amazon DynamoDB。此外,Lambda 也用於進行測試、事件監控和主動通知,而 DynamoDB 則用來做為 Kinesis 事件的持久性資料存放區,以及做為視覺化監控工具。

Atkinson 指出,新的分析平台是全新 IT 處理方式的一部分,對 JustGiving 非常有幫助。「使用 AWS 之前,JustGiving 做決策時只會考慮單一高階資料來源,」他表示。「如今使用全新的 AWS 工具之後,我們可以根據數百萬筆捐款和數十億個事件,從大量的來源擷取更精細的資料,然後使用這些資訊為訪客提供更好的平台。」

AWS 平台的可擴展性和經濟實惠的特點,尤其是按用量付費的商業模型,也是協助組織持續成長的關鍵。「我們一向都會將成本對應到營運週期和創造的價值上,」Atkinson 表示。「之前我們把大量的金錢花在硬體上,花了錢之後資產就放在那裡,通常使用率很低。使用 AWS 之後,我們已將管道自動化,而且因為有了新的分析平台,現在我們只需將錢花在工具和資料上,就可以從資料產生洞見、提高價值,以及為所有造訪 JustGiving 的使用者提供即時的決策支援。」

要進一步了解 AWS 如何協助您處理和分析大數據,請瀏覽我們的大數據詳細資訊頁面:http://aws.amazon.com/big-data/