分散式儲存系統的最佳實踐:系統發展路徑
分散式儲存系統從整體架構的角度看大同小異,實現起來卻困難重重。自主研發的 分散式儲存系統往往需要兩到三年才能逐步成熟起來,其中的難點在於如何把系統做穩定。系統開發過程中涉及架構設計、關鍵演算法實現、質量控制、團隊成員成長、線上運維、應用合作等,任何一個環節出現問題都可能導致整個專案失敗。
本文章介紹通用分散式儲存系統發展路徑。
通用分散式儲存系統不是設計出來的,而是隨著應用需求不斷髮展起來的。它來源於具體業務,又具有一定的通用性,能夠解決一大類問題。通用分散式儲存平臺的優勢 在於規模效應,等到平臺的規模超過某個平衡點時,成本優勢將會顯現。
通用分散式儲存平臺主要有兩種成長模式:
- 公司高層制定戰略大力發展通用平臺。這種模式前期發展會比較順利,但是往往會因為離業務太遠而在中期暴露大量平臺本身的問題。
- 來源於具體業務並將業務需求通用化。這種模式會面臨更大的技術挑戰,但是團隊成員反而能夠在這個過程中得到更多的鍛鍊。
第2種發展模式相對更加曲折,大致需要經歷如下幾個階段。
起步:解決特定問題
在起步階段,需要解決業務提出的特殊需求,這些特殊需求是以前的系統無法解決或者解決得不太好的。例如,OceanBase 系統起步時需要解決淘寶收藏夾業務提出的兩張大表左連線問題。起步期的挑戰主要在於技術挑戰,團隊成員能夠在這個階段獲得較大的技術成長。
求生存:應用為王
為了證明平臺的通用性,需要接入大量的業務。如果沒有公司戰略支援,這個階段將面臨“雞生蛋還是蛋生雞”的問題,沒有業務就無法完善平臺,平臺不完善就無法吸引更多業務接入。在這個階段,優先順序最高的事情是接入合適的應用並把應用服務好,形成良好的口碑。求生存階段還將面臨一個來自團隊內部的挑戰,團隊成員缺乏起步期的新鮮感,部分成員工作熱情會有所降低。這個階段需要明確團隊的願景,耐住寂寞,重視每個細節。
平臺化:提升易用性、可運維性
當應用數量積累到一定程度後,就需要花大力氣提升易用性和可運維性了。易用性的關鍵在於採用標準的使用介面,相容應用以前的使用方式,從而降低學習成本和應用改造成本,提升可運維性要求將系統內部更多狀態暴露給運維人員並開發方便的部署、監控、運維工具。
成熟期:持續不斷地優化
分散式儲存系統步入成熟期後,應用推廣將會比較順利。開發團隊在這個階段做的多情主要是持續不斷地優化系統,並根據應用的需求補充一些功能支援。隨著平合規模不斷增長以及優化工作不斷深入,平臺的規模效應將顯現,平臺取得成功。
通用儲存平臺發展過程中困難重重,要求團隊成員有強烈的信念和長遠的理想,能夠耐得住寂寞。另外,系統發展過程中需要保持對技術細節的關注,每個實現細節問題都可能導致使用者抱怨,甚至引起線上故障。
從公司的角度看,是否發展通用分散式儲存平臺取決於公司的規模。對於小型網際網路公司(員工數小於100人),那麼,應該更多地選擇廣泛使用的儲存技術,例如MySQL開源關聯式資料庫;對於中型網際網路公司(員工數在100到1000人之間)。那麼,可以組合使用各種SQL或NoSQL儲存技術,改進開源產品或者基於開源產品做二次開發,例如基於MySQL資料庫做二次開發,實現7.1節中的MySQL Sharding架構;對於大型網際網路公司(員工數超過1000人),那麼,往往需要自主研發核心儲存技術,包括分散式架構、儲存引掌等。通用分散式儲存系統研發週期很長,系統架構需要經過多次選代,團隊成員也需要通過研發過程來獲得成長,因此,這種事情要麼不做,要做就務必堅持到底。
相關文章
- 分散式系統中資料儲存方案實踐分散式
- 分散式系統中的資料儲存方案實踐分散式
- 分散式系統關鍵路徑延遲分析實踐分散式
- 分散式儲存與傳統網路儲存系統相比有哪些區別分散式
- 分散式儲存系統可靠性:系統量化估算分散式
- Bayou複製分散式儲存系統分散式
- 分散式追蹤系統,最佳核心設計實踐分散式
- 滴滴Ceph分散式儲存系統最佳化之鎖最佳化分散式
- 雲端儲存及其分散式檔案系統分散式
- 分散式塊儲存系統Ursa的設計與實現分散式
- IPFS分散式儲存挖礦技術系統開發分散式
- 載均衡技術全解析:Pulsar 分散式系統的最佳實踐分散式
- 分散式儲存系統可靠性如何估算?分散式
- 金融使用者實踐|分散式儲存支援資料倉儲業務系統效能驗證分散式
- 儲存系統實現-構建自己的儲存系統(一)
- 大型系統儲存層遷移實踐
- [技術思考]分散式儲存系統的雪崩效應分散式
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- 分散式系統技術:儲存之資料庫分散式資料庫
- 杉巖PACS影像系統分散式儲存架構分散式架構
- 騰訊重磅開源分散式NoSQL儲存系統DCache分散式SQL
- 分散式kv儲存系統之Etcd叢集分散式
- 分散式 Key-Value 儲存系統:Cassandra 入門分散式
- IPFS分散式儲存挖礦系統開發軟體技術分散式
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- 搜尋引擎分散式系統思考實踐分散式
- MacOS系統Docker預設儲存路徑遷移方法MacDocker
- 在 CentOS 7.1 上安裝分散式儲存系統 CephCentOS分散式
- 分散式系統2:分散式系統中的時鐘分散式
- GFS分散式檔案系統、結合實驗分析各種儲存卷的特點。深入刨析分散式儲存的方式。分散式
- 分散式系統:系統模型分散式模型
- 基於Raft的分散式MySQL Binlog儲存系統開源Raft分散式MySql
- 分散式檔案儲存系統 fastdfs 的 Composer 包釋出!分散式AST
- 儲存系統
- 系統設計實踐(02)- 文字儲存服務
- 分散式系統的跟蹤系統分散式
- Logstash實踐: 分散式系統的日誌監控分散式
- 滴滴Ceph分散式儲存系統優化之鎖優化分散式優化