可擴展的高可用性雲解決方案
場景:我將在幾個月後推出一款雲軟體。這將是一個面向多個客戶的 SaaS 解決方案。該軟體處理醫療保健 o 靜態加密是一項要求。它是用 .Net 編寫的,首選數據庫是 Sql Server。
每個客戶端至少需要 10Gb 的數據庫儲存和 100Gb 的文件儲存。我正在尋找可以輕鬆從 1 個客戶端擴展到 10,000 個客戶端的雲產品。現在 10,000 個客戶端相當於 100TB 的數據庫儲存和 1PB 的文件儲存。
我正在考慮的三個提供商是 AWS、Azure 和 Rackspace(由於支持而首選)。
設置:選項 1:擁有可以隨著客戶增加而擴展的雲伺服器。但是,雲伺服器能否擴展至 100TB 的儲存空間以容納在其上執行的數據庫?更重要的是,擁有一個為所有客戶端保存數據的 VM 是否是個好主意。如果不是,我如何將數據分佈在多台機器上,同時讓 Web 服務輕鬆辨識為特定客戶端查詢哪個數據庫?
選項 2:為每個客戶端設置環境。我很想這樣做,因為它可以避免單點故障。Azure webites/Rackspace CloudSites 類型的設置。不過這裡的問題是,我將如何加密數據庫?Sql Server 確實提供 TDE,但僅在企業版中提供。另外,在這種情況下如何自動升級。升級可能意味著新程式碼和/或數據庫架構更改。
選項 3:您可能認為適合這種情況的任何其他選項。
謝謝, 安庫爾
選項 1:擁有可以隨著客戶增加而擴展的雲伺服器。
不聰明。如“我*****”。為什麼要一台伺服器?如果您像這樣擴展 - 這永遠不會具有成本效益。像雲一樣執行雲。機器的“微集群”(2-3 - Web 前端、數據庫、文件儲存,可能帶有複製以實現高可用性),然後根據需要在盡可能多的實例中使用它們。根據容量的需要創建新的。無需去“SUUUUUPPPPPER BIIIIIIGGGG SSSIIIIIIIINNNNNNGGGGLLLLEEEEE SSEEEEERRRVER”——這只需要花費。
然後,正如我所說,在每個微集群中都使用標準機制來獲得 HA——Web 前端是標準的簡單,文件儲存需要一些複製,數據庫也是如此。重點是——即使某些微集群出現故障——它也不會影響所有客戶。
另外在這種情況下如何自動升級
腳本,專業管理員的標準工具,允許您完全自動化地執行此操作 - 您認為Google如何更新數十萬台伺服器?可能會聘請具有一定經驗的管理員來計劃 - 因為我們無法為您做到這一點。
升級可能意味著新程式碼和/或數據庫架構更改
是啊,那又怎樣?腳本可以做到這一點——關閉微集群前端和處理、備份、執行必要的更新並重新啟動,所有這些都在約定的維護視窗內。初學者的專業管理。使用窗戶?SCOM、SCCM 正是為此而生的工具。