現代的科技變化快速,不管是位處早期階段的新創公司,還是世界知名的大型企業,在這樣的環境中,都面臨該如何建構及部署現代應用程式的挑戰。而對於這些應用程式的核心開發人員來說,首要任務即是如何應用最新的技術,為自家應用程式保有最佳生產力。
三星電子數位家電事業部的 Sungbin Lim 在 2023 年 9 月的 MongoDB.local Seoul,以「MongoDB Atlas 讓研發工程師得以在夜晚享受工作與生活中的平衡」為題上台演講, 分享 MongoDB 實際為他的團隊在工作效能上帶來的改變。歡迎點擊以下連結觀看完整影片(內容為韓語)
透過 MongoDB Atlas,進行有效的家電資料管理
以三星的 SmartThings 為核心,三星電子數位家電事業部持續應用最新的 AI 及物聯網技術,開發各式 AI 驅動的家用電器及技術。
Smart Home 智慧家庭服務是數位家電事業部上線最久且規模最大的平台。三星家電的資料都會集中至這個平台,事業部則將資料用於提供多樣的資料驅動服務。
這個使用者及裝置檔案管理伺服器於 2014 年推出,可透過手機應用程式控制及監測三星家電,而三星 Smart Home 智慧家庭服務是在 MySQL 資料庫上管理應用程式資料。
2015 年時,團隊建立了彙整家電所產生的即時事件資料的基礎架構,並用於資料驅動服務,像是訓練未來的 AI 服務。
同時團隊也採用了社群版本的 MongoDB,這是一款文件模型,以 JSON 格式更有彈性地處理及使用應用程式資料工作負載,在開發工作上活用功能強大的 NoSQL。
擴大服務,建立更穩固的基礎架構
團隊剛開始接觸 MongoDB 時採用的是社群版本的 MongoDB,應用過程非常平穩。不過隨著家電的數量增加,傳送至伺服器的資料流量越來越大,團隊在服務的穩定度上遇到了挑戰。
尤其在夏天時期,冷氣和冰箱這類家電的使用時間增加,資料會集中在特定的時間傳送至伺服器,使得困難度更加提升。
社群版本的 MongoDB 優點在於可依據開發人員的需求與期望進行調整,但在問題發生時,也會需要開發人員花時間管理及維運資料庫。
此外,隨著公司擴大服務項目,開發團隊發現需要相當多的技術背景才能善加運用 MongoDB、具彈性的叢集及更好的儲存及監控方案。因此在 2022 年,三星電子數位家電事業部決定全面遷移至 MongoDB Atlas,提升 Smart Home 智慧家庭服務操作上的效率。
在考量各項方案的限制及停機時間後,三星電子數位家電事業部最後採取的是透過 Mongomirror,將資料遷移至專用的網絡。
主導資料遷移專案的 Sungbin Lim 表示:「對三星 Smart Home 智慧家庭服務來說,重點在於維持基礎架構管理及商業邏輯發展之間的平衡。透過遷移至 MongoDB Atlas,我們得以減輕基礎架構管理上的負擔,專注於應用程式的開發及創新。」
Sungbin Lim 進一步提到:「應用 MongoDB 之後,我們的平均反應時間降低了超過一半以上,從8毫秒降至3毫秒,而磁碟讀取延遲時間也從3秒降至18毫秒,大幅提升了可用性。而對開發人員來說,遷移至 MongoDB Atlas 之後最大的變化,是我們至今沒有因為資料庫處理失效,而出現問題或警示訊息。」
在 Smart Home 智慧家庭服務擴大時,MongoDB Atlas 扮演了相當重要的角色,提供的穩固基礎協助團隊更輕鬆地處理日益增加的資料流量。
提升開發人員生產力,同時也提高服務品質
三星電子 SmartHome 智慧家庭團隊的主要任務是管理寫入密集型的工作負載,也就是來自裝置不停更新狀態時產生的事件,像是感應器因冷氣(溫度、濕度等)狀態改變,或是冰箱開關而出現的變化。
數位家電事業部與 MongoDB 韓國團隊針對主要成效指標進行分析之後,發現在目前的副本進行的擴充計畫,將無法迅速更新和管理以前所未有速度增加的流量及工作負載,特別是在夏天的高峰時期。
而遷移至 MongoDB Atlas 後所帶來的顯著改善,讓三星電子數位家電事業部決定採取分片式叢集作為基礎的全新擴充策略,以克服現有副本的寫入工作負載限制。
Sungbin Lim 解釋道:「我們與 MongoDB 韓國團隊進行了幾次的工作坊及概念驗證(proof of concept , PoC) ,事先找出了問題所在,並完成分片流程。透過設定時間點復原 (point-in-time recovery, PITR),我們得以在分片過程中發生錯誤時,有效地復原資料。」
分片之後,每一個分片可分配 300-400 個節點連結,過去副本中只能分配約 800 個連結,相比之下大大提升了負載平衡。而 MongoDB 的邏輯資料大小也從 82 GB 降至約 42 GB,提高了工作負載的效率。另外磁碟的每秒讀寫次數也降低幾乎一半,從過去的 16-20k/s 降至 8-10k/s,改善了磁碟使用率。
因為 MongoDB Atlas 所提供的資料庫零停機及高可用性,讓三星電子數位家電事業部的研發工程師得以找到工作和生活中的平衡,並專注於提供消費者新服務。
三星電子數位家電事業部遷移至 MongoDB Atlas 並進行分片後,建立了高效率且可靠的基礎架構,未來將會持續與 MongoDB 韓國團隊攜手,更有效地運用資料工作負載。