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