【案例分享】Raygun 有了.NET Core,App 效能監控的處理能力比起原本的 Node.js 提高了 20 倍!
高效能、即時應用程式監控
開發人員都知道,幾乎所有的軟體都有一些小缺陷。但只有約 1 % 的終端用戶回報問題 ; 即使他們做了,通常還是不會提供開發人員解決問題所需的完整資訊。Raygun 雲端的錯誤與毀損回報平台正面臨著這樣的挑戰。它默默地監控網頁和行動應用,每日檢測數十億個錯誤數據點和毀損事件,然後透過詳細的診斷報告即時通知開發人員。
該產品的核心是使用微軟 .NET 技術和 Visual Studio 工具。而其 API 節點應用程式,負責從客戶端接收數據、進行驗證並審核通過,則是採用 Linux 上的 Node.js 技術以支持應用能夠快速地調整規模大小。
隨著時間的推移,Raygun 工程師注意到 Node.js API 的效能降低了。Raygun 聯合創始人兼技術長 Jeremy Boyd 說:「隨著新版本的出現,我們發現 Node.js 作為一個框架已經變得越來越慢、負擔越來越重。」 工程師考慮要增加伺服器數量,但是即使雲端伺服器的成本相對較低,大幅增加還是會導致成本上升。
用 C#編寫 Linux 應用程式
Raygun 開發人員決定專注於最大化現有的 API 節點的效能。當公司知道微軟即將發佈 .NET Core,一個開源的 .NET 平台,允許開發人員使用 C# 編寫 Linux 應用程式時,他們就立刻開始著手使用。Raygun 執行長兼創始人 John-Daniel Trask 提到「我們的程式碼庫大部分都是以 C# 撰寫,所以我們的工程師能夠使用它來對 API 層做修改,表示有更多的人可以在此專案上工作。」
兩個開發人員花了兩個星期將 API 移植到 .NET Core,緊接著驗證測試工作負載的效能。當他們滿意地發現 .NET Core 版本的 API 是正確的,他們啟動了一組運行新軟體的節點,然後將這些節點加入現有生產環境的節點叢集中。當 .NET Core 節點成功運行,Raygun 才逐漸汰換原先的 Node.js 節點。
「透過 .NET Core,我們可以使用相同大小的伺服器,
從原本 Node.js 節點每秒處理 1000 個請求提升到每秒處理 20,000 個請求。」
- John-Daniel Trask ,Raygun 執行長兼聯合創始人
提高了 20 倍的處理能力
效能的改善是立竿見影的。Trask 表示:「透過 .NET Core,我們可以使用相同大小的伺服器,從原本 Node.js 節點每秒 1000 個請求提升到每秒 20,000 個請求。」處理能力增加了 20 倍,意味著 Raygun 可以將自身伺服器數量減少 60 %。Raygun 可以更進一步降低伺服器數量、以降低成本,保持更高的生產量進而更有效地處理突發尖峰狀況。Boyd 說:「當我們需要時,備用盒已經啟動並準備好加載,還能同時節省資金,完全是個意料之外的好處。」
(本文出自:App performance monitoring provider increases throughput by 2,000 percent with .NET Core)