分布式儲存系統的最佳實踐 系統發展路徑

2021-09-13 03:17:42 字數 1583 閱讀 9954

分布式儲存系統從整體架構的角度看大同小異,實現起來卻困難重重。自主研發的 分布式儲存系統往往需要兩到三年才能逐步成熟起來,其中的難點在於如何把系統做穩定。系統開發過程中涉及架構設計、關鍵演算法實現、質量控制、團隊成員成長、線上運維、應用合作等,任何乙個環節出現問題都可能導致整個專案失敗。

本文章介紹通用分布式儲存系統發展路徑。

通用分布式儲存系統不是設計出來的,而是隨著應用需求不斷發展起來的。它**於具體業務,又具有一定的通用性,能夠解決一大類問題。通用分布式儲存平台的優勢 在於規模效應,等到平台的規模超過某個平衡點時,成本優勢將會顯現。

通用分布式儲存平台主要有兩種成長模式:

公司高層制定戰略大力發展通用平台。這種模式前期發展會比較順利,但是往往會因為離業務太遠而在中期暴露大量平台本身的問題。

**於具體業務並將業務需求通用化。這種模式會面臨更大的技術挑戰,但是團隊成員反而能夠在這個過程中得到更多的鍛鍊。

第2種發展模式相對更加曲折,大致需要經歷如下幾個階段。

起步:解決特定問題

在起步階段,需要解決業務提出的特殊需求,這些特殊需求是以前的系統無法解決或者解決得不太好的。例如,oceanbase 系統起步時需要解決**收藏夾業務提出的兩張大表左連線問題。起步期的挑戰主要在於技術挑戰,團隊成員能夠在這個階段獲得較大的技術成長。

求生存:應用為王

為了證明平台的通用性,需要接入大量的業務。如果沒有公司戰略支援,這個階段將面臨「雞生蛋還是蛋生雞」的問題,沒有業務就無法完善平台,平台不完善就無法吸引更多業務接入。在這個階段,優先順序最高的事情是接入合適的應用並把應用服務好,形成良好的口碑。求生存階段還將面臨乙個來自團隊內部的挑戰,團隊成員缺乏起步期的新鮮感,部分成員工作熱情會有所降低。這個階段需要明確團隊的願景,耐住寂寞,重視每個細節。

平台化:提公升易用性、可運維性

當應用數量積累到一定程度後,就需要花大力氣提公升易用性和可運維性了。易用性的關鍵在於採用標準的使用介面,相容應用以前的使用方式,從而降低學習成本和應用改造成本,提公升可運維性要求將系統內部更多狀態暴露給運維人員並開發方便的部署、監控、運維工具。

成熟期:持續不斷地優化

分布式儲存系統步入成熟期後,應用推廣將會比較順利。開發團隊在這個階段做的多情主要是持續不斷地優化系統,並根據應用的需求補充一些功能支援。隨著平合規模不斷增長以及優化工作不斷深入,平台的規模效應將顯現,平台取得成功。

通用儲存平台發展過程中困難重重,要求團隊成員有強烈的信念和長遠的理想,能夠耐得住寂寞。另外,系統發展過程中需要保持對技術細節的關注,每個實現細節問題都可能導致使用者抱怨,甚至引起線上故障。

從公司的角度看,是否發展通用分布式儲存平台取決於公司的規模。對於小型網際網路公司(員工數小於100人),那麼,應該更多地選擇廣泛使用的儲存技術,例如mysql開源關聯式資料庫;對於中型網際網路公司(員工數在100到1000人之間)。那麼,可以組合使用各種sql或nosql儲存技術,改進開源產品或者基於開源產品做二次開發,例如基於mysql資料庫做二次開發,實現7.1節中的mysql sharding架構;對於大型網際網路公司(員工數超過1000人),那麼,往往需要自主研發核心儲存技術,包括分布式架構、儲存引掌等。通用分布式儲存系統研發週期很長,系統架構需要經過多次選代,團隊成員也需要通過研發過程來獲得成長,因此,這種事情要麼不做,要做就務必堅持到底。

閱讀原文

分布式儲存系統的最佳實踐 系統發展路徑

分布式儲存系統從整體架構的角度看大同小異,實現起來卻困難重重。自主研發的 分布式儲存系統往往需要兩到三年才能逐步成熟起來,其中的難點在於如何把系統做穩定。系統開發過程中涉及架構設計 關鍵演算法實現 質量控制 團隊成員成長 線上運維 應用合作等,任何乙個環節出現問題都可能導致整個專案失敗。本文章介紹通...

python分布式儲存系統 分布式系統

danger 什麼是分布式系統 分布式系統是由一組通過網路進行通訊 為了完成共同的任務而協調工作的計算機節點組成的系統。分布式系統的出現是為了用廉價的 普通的機器完成單個計算機無法完成的計算 儲存任務。其目的是利用更多的機器,處理更多的資料。首先需要明確的是,只有當單個節點的處理能力無法滿足日益增長...

分布式儲存系統概述

雲計算 大資料,這些熱點詞彙,後台的基礎設施離開不了分布式儲存系統,它的兩個特點,一是規模大,二是成本低。其實分布式系統的設計是根據需求來變化的,那麼我們接下來就看,我們需要儲存哪些資料,以及,分布式儲存系統有哪些分類。1.分布式儲存的資料 大致可以分為三類 結構化資料 這個最容易理解,關聯式資料庫...