Thomson Reuters:以經濟高效的方式加載和處理流式數據
對于企業和專業人士來說,Thomson Reuters 是全球領先智能信息來源之一,也是全球最受信任的新聞組織之一。它為公司提供尋找可信答案所需的智能、技術和人類專業知識,幫助公司更迅速作出更明智的決策。其客戶覆蓋金融、風險、法律、稅務、會計和媒體市場。
挑戰
Thomson Reuters 有數百種產品和服務,面向從法律事務所、銀行到消費者等各行各業的客戶。2016 年,Thomson Reuters 決定構建一種解決方案來捕獲、分析和可視化其產品/服務生成的分析數據,從而提供洞察意見來幫助產品團隊持續提升用戶體驗。
市場上有很多現成的商用使用情況分析服務。然而,Thomson Reuters 決定構建自己的分析服務,以便管理成本、掌握分析數據所有權,并通過文件元數據之類的其他信息豐富分析數據。
該公司清楚自己希望在云中構建這種解決方案,并且知道底層平臺的諸多要求。首先,需要利用動態和靜態加密保護信息。還需要每秒處理數千事件,并需要彈性擴展以適應突發新聞時雙倍或三倍增長的流量。而且,由于負責構建該解決方案的小組規模相當小,公司需要最大程度縮減行政和管理任務,以便他們能專注于構建新功能和支持產品團隊。最后,Thomson Reuters 希望解決方案能快速上線,他們只有五個月的時間。
為什么選擇 Amazon Web Services
Thomson Reuters 很快就意識到 Amazon Web Services (AWS) 是能夠滿足其所有需求的唯一平臺。該公司已然在眾多功能中使用 AWS,很熟悉它的能力和規模。Thomson Reuters 構建的分析解決方案 Product Insight 依賴于多種 AWS 服務。
初始事件攝取層由 Elastic Load Balancing 以及 Auto Scaling 組中的自定義 NGINX Web 服務器組成。在 SSL/TLS 結束后,攝取層使用元數據增加事件并使用 AWS Key Management Service (KMS) 將它們加密。
攝取層將受保護的數據傳遞到由 Amazon Kinesis Streams、Amazon Kinesis Firehose 和 AWS Lambda 無服務器計算構成的流式數據管道。Thomson Reuters 評估了包括 Apache Kafka 在內的其他流式數據工具,但發現它們難以管理和擴展。該公司不希望在管理軟件堆棧和服務器隊列上殫精竭慮,因此選擇了完全托管的 Amazon Kinesis。
Amazon Kinesis 流式處理數據管道能夠自動批處理數據并以經濟高效的方式將其傳遞到主要數據集,從而永久存儲到支持跨區域復制的 Amazon Simple Storage Service (Amazon S3) 存儲桶內。通過主要數據集,Thomson Reuters 可以應用額外轉換步驟、在系統處于丟失狀態時恢復事件中的數據,并支持新的業務案例。如果事件無法即時從攝取層分派到數據管道,故障轉移機制會將它們傳遞到 Amazon S3,以待系統恢復正常運行時重新執行相應操作。
在 AWS Lambda 的幫助下,Thomson Reuters 能夠以經濟高效的方式加載和處理流式數據,而無需預置或管理任何服務器。Lambda 會從 Kinesis 管道收集數據并將其加載到 Amazon S3 中的主要數據集。另外,每當有新數據存儲時,Amazon S3 的數據通知會觸發 Lambda,從而對主要數據集執行額外轉換。僅當數據通過集成 Kinesis 和 Amazon S3 觸發 Lambda 時,Lambda 才會運行代碼;并且僅當代碼運行時,才需要對計算處理付費。
附加到 Amazon Kinesis 流的并行實時管道會通過連接到 Thomson Reuters Services 平臺的自定義提取、轉換和加載 (ETL) 服務器將事件傳遞到安全的多租戶 Elasticsearch 集群。所有環節均在 AWS 中托管。Kibana 這個開源的數據分析和可視化工具會將實時數據提供給經授權的 Thomson Reuters 產品團隊。
另外,Thomson Reuters Services 平臺使用 AWS Identity and Access Management (IAM) 和 Amazon S3 跨賬戶訪問功能提供身份驗證和授權層。為監控解決方案,該公司使用了 Amazon CloudWatch。
效益
Product Insight 早于計劃時間兩個月發布,超出了技術性預期。“我們最初的目標是每秒處理 2000 個事件。”Thomson Reuters 產品創新高級經理 Anders Fritz 說道,“我們的測試顯示 AWS 上的 Product Insight 可以每秒處理多達 4000 個事件,并且預期可以在一年內提升到每秒處理 10000 多個事件。” 這意味著每個月可以處理超過 250 億次事件。
即便是這么高的吞吐量,系統從始至終都沒有丟失任何數據。“因為強大的故障轉移架構和 AWS 的技術能力,我們從開始收集數據起就沒有丟失過一次事件。”Fritz 說。
這期間還發生了美國總統大選和英國脫歐之類的新聞事件,遭遇過使用量暴增。“即使每日事件數量雙倍增加,攝取管道也能平穩擴展和收縮,沒有絲毫問題。”Thomson Reuters 首席軟件工程師 Marco Pierleoni 說道。
內部產品團隊很快采納了 Product Insight,并快速且輕松地將它們加入系統中。“我們可以快速建立團隊,時間從幾小時到幾天不等。”Fritz 說道,“大多數時間都用來計劃團隊想要分析的數據。在后端,我們可以設置系統,在幾分鐘內接收產品收據。” 上手過程在 SDK 和標準化數據架構的作用下獲得了加速。
由于 Product Insight 是使用 Amazon Kinesis 在流式數據架構上創建,因此產品團隊幾乎可以實時訪問數據。“使用 Amazon Kinesis,我們的解決方案可以在 10 秒內將新事件傳遞到用戶控制面板。”Fritz 說道,“我們的產品團隊可以即時了解并響應使用模式,而我們的運營專業人員可以監控表現以便及時檢測并緩解異常情況,以免影響客戶體驗。”
因為 Product Insight 要求最小化行政參與,所以工程師可以集中精力與產品團隊合作增加業務價值,而不是花時間管理基礎設施。而且,AWS Key Management Service 實現的安全性可以幫助確保解決方案滿足內外合規性要求。