什么是架構演進?架構演進技巧有哪些?
什么是架構演進?
定義:通過設計新的系統(tǒng)架構來應對業(yè)務和技術的發(fā)展變化
目的:應對業(yè)務發(fā)展帶來新的復雜度;2. 應用技術發(fā)展帶來的復雜度新的解決方法。
關鍵點:
1. 新架構;2. 新的復雜度;3. 新的方法。
舉例說明:
1. 淘寶去 IOE 是因為業(yè)務發(fā)展大了后,IOE 的成本和可控性難以滿足,而不是性能。
2. 引入容器化來實現(xiàn)彈性部署,降低成本,提升運維效率。
架構重構和架構演進有什么不同點?
架構重構:
基本做法:調整架構
目的:修復架構質量問題
是否修復問題:是
是否改變系統(tǒng)能力:否
手段:引入緩存,分庫分表
架構演進:
基本做法:設計新架構
目的:新的復雜度、 新的方法
是否修復問題:可以修復問題,但不是主要目的,例如引入深度學習提升推薦效果
是否改變系統(tǒng)能力:是,例如引入機器學習
手段:引入緩存,分庫分表,去 IOE
圖片
個人認為:
技術手段不是區(qū)分架構重構和架構演進的方法,復雜度是否變化才是判斷關鍵 !
架構演進的原則、驅動力和模式
圖片
原則:架構演進是為了促進業(yè)務發(fā)展。
驅動力:
1. 業(yè)務發(fā)展帶來新的復雜度,ToC 業(yè)務主要體現(xiàn)在用戶規(guī)模增長和業(yè)務多樣性;
2. 技術發(fā)展帶來新的復雜度應對方法,例如國產化,大數(shù)據(jù)、云計算等。
模式:
1. 主動演進:架構師主動識別和規(guī)劃架構演進;
- 業(yè)務規(guī)模:量變帶來質變,一般10倍量級變化才考慮架構演進;
- 業(yè)務多樣性:業(yè)務規(guī)??赡軟]有變化,但是系統(tǒng)支持的業(yè)務類型越來越多。
2. 被動演進:架構師被迫進行架構演進。
- 業(yè)務方向:業(yè)務調整方向,例如從圖文轉為短視頻。
不同用戶規(guī)模的架構挑戰(zhàn)
十萬:單體
百萬:微服務
千萬:多機房
億級:用戶分區(qū)
業(yè)務驅動的主動演進技巧
做好預判,提前布局
預判:提前1年做好準備。
1. 以增長數(shù)字為標準:下一階段用戶規(guī)模60%的時候就要準備了;2. 以時間為標準:提前1年預判。
快速響應,拿來主義
快速響應:熟悉什么就用什么
拿來主義:盡量用現(xiàn)成的方案。
例如:
1. 可能 Elasticsearch 更好,如果不熟悉,先用 MySQL 頂著;
2. 購買云服務的解決方案,例如直播、視頻這樣的業(yè)務;
3. 盡量多用開源的方案。
業(yè)務驅動架構演進案例
圖片
技術驅動演進原則
新瓶舊酒原則
降低成本
包括硬件、人力、運營等成本。
例如:
1. 上云來降低運維和機房成本;
2. 去 IOE 降低硬件成本;
3. 機器圖片審核降低審核人員成本。
提升效率
包括處理、運營、開發(fā)運維效率等。
例如:
1. 大數(shù)據(jù)平臺提升大數(shù)據(jù)分析效率;
2. 容器化提升運維效率;
3. 微服務提升開發(fā)效率。
提升質量
包括業(yè)務、管理、開發(fā)等。
例如:
1. 推薦系統(tǒng)提升用戶轉化率;
2. 容器化支持彈性擴容應對業(yè)務峰值;
3. 中臺提升多業(yè)務的開發(fā)效率;
4. 提升業(yè)務競爭力。
價值原則
價值原則:新技術要帶來典型的價值才考慮演進。
“典型”的定義:產出要遠遠大于投入!
1. 20臺服務器降到10臺?2000臺降到1500臺?
2. 2000人日降到1000人日?100人日降到10人日?
3. 轉換率提升2%?用戶留存提升10%?
如何說服老板進行演進?
技巧1 - 談錢,別談感情(適合成熟技術)
將引入新技術帶來的價值量化成 money,然后附帶說提升技術水平,提升團隊動力,不要本末倒置!
技巧2 - 談競爭對手(適合全新技術)
如果你沒辦法量化為錢,那就看看競爭對手是否引入了,“嚇唬嚇?!崩习?!
技巧3 - 談大環(huán)境(適合法律政治相關)
例如國產化,跟老板談政治意義和大環(huán)境變化……
做好洞察,提前布局
1.識別新技術能夠為業(yè)務帶來的價值。
- 多關注業(yè)界技術大會;
- 熟練掌握業(yè)務;
- 把握技術本質。
2.團隊和技術先行。
- 招聘人員;
- 儲備技術。
技術驅動架構演進案例
圖片