藉由採用 AWS,我們將能為全球使用者提供更多的冗餘和靈活度,進而替公司未來的成長開啟一個嶄新的世界。 
Vijay Ramesh 首席資料工程師

Change.org 是全球最大的社會變革平台,在 196 個國家擁有超過 1.3 億使用者。做為一家通過認證的 B 型企業 (將商業力量運用於社會公益的新型公司),該公司的使命是讓世界各地的人們有能力實現他們想看到的改變。透過這個開放平台,任何人都能發起活動,立即動員當地數百人或世界各地成千上萬的網友推動改變,包括停止校園霸凌到杜絕印度的酸液攻擊事件。Change.org 的總部設在舊金山,投資者包括 Bill Gates、Richard Branson、Arianna Huffington,以及 LinkedIn、Yahoo、Twitter 和 eBay 的創始人。 

Change.org 在過去幾年快速成長,尤其是在國際社群之間,因此他們試圖更積極地推出新的網站功能。不過,如果沿用舊有的受管雲端基礎設施,組織將會缺乏執行此工作所需的彈性。「我們的資料科學團隊特別希望能提高迭代的速度,但是在之前的環境遇到了一些問題,所以有時很難快速增加新的資源。」Change.org 資料科學首席資料工程師 Vijay Ramesh 指出。「我們還需要提高靈活度,以便使用不同類型的機器拓撲來進行機器學習。例如,我們想使用具備多核心的機器,同時利用可進行平行處理的小型機器。」

Change.org 也極度依賴持續整合 (CI) 這項開發實務,這需要每天多次將程式碼整合至儲存庫,以確保高品質的程式碼。但是該組織使用的自製 CI 系統,導致新功能發佈延遲。「每個 CI 組建都需要長達 1 小時的時間才能完成,不僅耗費太多時間,」Ramesh 說。「也讓我們更難快速測試新功能並進行部署。」此外,系統需要大量人力進行手動維護。「我們有好幾位工程師每天花幾個小時維護 CI 工作流程,但那並不是我們的核心競爭力。」Ramesh 表示。「我們希望能將所有時間投入開發新功能。」

為了因應流量峰值,該組織還需要能夠更輕鬆地擴展網站平台。「例如,只要有人在媒體上提到 Change.org,網站流量就會大幅增加,但我們卻無法輕鬆地即時啟動伺服器節點來支援這些流量,」Ramesh 表示。「我們必須自行手動干預,而且這往往需要 1 小時以上的時間才能啟動新的資源並部署到生產環境以因應流量峰值。」

Change.org 資料科學團隊打定主意要尋找一個更靈活且可擴展的 Web 平台,因此決定將部分機器學習資源移到 Amazon Web Services (AWS)。「我們很喜歡 AWS 的彈性和可擴展性,」Ramesh 說。資料科學團隊開始在生產環境中使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,以進行電子郵件尋標和批次管線工作。

接著,Change.org 設定了兩個 Amazon Redshift 叢集,每個叢集共有 16 TB 的容量。這兩個叢集容納該公司所有的關聯式和事件資料。第一個是生產環境商業智慧 (BI) 叢集,將客戶的資料從 MySQL 資料庫串流至 Redshift。第二個叢集則用於離線分析和研發,收集來自 Amazon Simple Storage Service (Amazon S3) 的實驗和日誌事件資料,再上傳至 Redshift。此叢集透過 AWS Data Pipeline 服務保持最新狀態。「我們要推出新功能及變更網站之前會進行多方實驗,所以替工程師設定了一個系統,讓他們用來做任何想做的事,這樣就不必擔心會影響生產環境,」Ramesh 說。此外,該組織的商業分析師可建立報表及執行儀表板,以分析 Redshift 中的事件串流資料。該組織許多的電子郵件工具都會查詢 Redshift。

雖然 Change.org 仍將部分資源保留在現場部署環境中,但越來越常使用隨需 AWS 資源,且目前正在將完整生產環境遷移到 AWS。

Change.org 還選擇採用 Solano CI 這個託管的 CI 解決方案。Solano CI 完全在 AWS 上執行,使用 Elastic Load Balancing 路由傳入流量,利用 Amazon S3 進行資料儲存,並運用 Amazon Relational Database Service (Amazon RDS) 執行資料庫。Solano CI 是一個可擴展的系統,旨在減少開發人員的測試時間,同時免除維護 CI 系統的負擔並優化 AWS 執行個體的使用情形,進而大幅降低 TCO。「實作 Solano CI 之後,我們可以徹底關閉自製的 CI 系統,」Ramesh 說。  

藉由利用 AWS 的隨需彈性,Change.org 可更快速地開發新功能。「因為 AWS 極具彈性,所以我們的資料科學團隊能夠很快地進行迭代,」Ramesh 說。「舉例來說,建立推薦引擎時,運算需求絕大部分取決於使用的演算法類型或涉及的資料多寡。但是使用 AWS,便可以根據專案的工作,僅使用需要的資源。因此,不需要購買伺服器,也不需要提前規劃。」

該組織還可藉由 Solano CI 自動測試環境,減少測試時間,以及更快在生產環境中推出新功能。改用 Solano CI 之後,該組織透過 Solano CI 的自動平行化功能,將平均建立時間從 1 小時縮減為 15 分鐘。「我們每天可部署更多的 CI 組建,換句話說,每天可推出更多網站變更內容,」Ramesh 表示。「多虧有 Solano CI,我們現在能更快為最終使用者創造更多價值。」此外,由於透過 Solano CI 可執行更多測試,因此 Change.org 能更快找出漏洞。他說:「提高漏洞偵測速度,我們就能確保更高品質的程式碼,以及最終產出更完善的功能。」

Change.org 還具有支援流量峰值所需的可擴展性。「AWS 讓我們可以更輕鬆地回應網站的流量激增,」Ramesh 說。「只要流量增加,新的後端伺服器便會自動上線;當流量減少,這些伺服器會再次離線。既可靠又快速。而且工程師不需要手動干預,也就不必花 1 小時來擴充新的資源。有需要時馬上就能使用。」

此外,Solano CI 環境是針對擴展需求所設計,這讓 Change.org 能夠更妥善地支援更多的測試組建需求。「有時候,當我們要發佈主要功能且接近最後期限時,會需要執行非常大量的組建,」Ramesh 說。「受益於 AWS 的可擴展性,Solano CI 才能擴展以支援這些需求。」

而且由於 CI 系統現在位於雲端,Change.org 開發人員不再需要費時進行維護工作。Solano CI 會視情況自動進行測試優化,因此 Change.org 開發人員無須管理 CI 系統、設定虛擬機器,或確保 CI 節點正常運作。「我們的開發人員不必費心思考如何維護 CI 系統,」Ramesh 表示。「Solano CI 會包辦所有工作,讓他們可以專心發揮所長,為我們的網站建立功能強大的工具,替全球最終使用者創造最大的價值。」

Change.org 計劃在完成遷移至 AWS 環境後,大幅擴展公司的 AWS 使用量。「我們很高興 AWS 在全球支援多個區域和可用區域,這是以前的解決方案所沒有的,」Ramesh 說。「有能力建立一個可因應全球流量的網站架構,這對公司而言將會是如虎添翼。過去幾年,我們在國際上有了很大的成長,而使用 AWS 能讓成長步調加快。我們將能為全球使用者提供更多的冗餘和靈活度,進而替公司未來的成長開啟一個嶄新的世界。」

solano-labs-logo

一家具備 AWS DevOps 能力的 AWS 合作夥伴網路 (APN) 進階技術合作夥伴。Solano Labs 針對持續整合 (CI) 與持續部署 (CD) 作業提供強大的可擴展系統,讓軟體開發人員能夠提高工程效率和品質,同時降低成本。

如需 Solano Labs 如何協助您的公司建立與管理 AWS 環境的詳細資訊,請參閱 AWS 合作夥伴目錄中的 Solano Lab 清單
 

要進一步了解 AWS 如何協助您管理網站,請瀏覽我們的網站與網站託管詳細資訊頁面