學(xué)習(xí)完整課程請移步 互聯(lián)網(wǎng) Java 全棧工程師
如今,市場環(huán)境紛繁復(fù)雜,瞬息萬變,現(xiàn)代企業(yè)為了更好地生存,需要有極強的適應(yīng)能力。快速而輕松地迎接改變,成為了一個優(yōu)質(zhì)企業(yè)的特征之一,同時企業(yè)還要求技術(shù)團隊構(gòu)建更科學(xué)的架構(gòu),搭建成本更低的平臺,這就使得這些團隊越來越傾向于使用微服務(wù)架構(gòu)來應(yīng)對以上要求。
微服務(wù)的做法有利于軟件組件和數(shù)據(jù)的分散化,將一個整體分解成更小、更容易改變的部分,分散僅幫助團隊加快工程進(jìn)度,而不會犧牲系統(tǒng)的安全性。要想讓這種架構(gòu)工作得很好,需要改變工作方式。
微服務(wù)架構(gòu)的設(shè)計,其實是為了使團隊能夠在執(zhí)行工作的人之間分配決策權(quán)力,向更多成員直接推行決策權(quán),允許他們以更自由的方式生產(chǎn)。微服務(wù)架構(gòu)使用正確的話,將產(chǎn)生更好和更快的變化。但是如果你的架構(gòu)錯誤,那么一系列壞的決定可能會降低轉(zhuǎn)化率,甚至?xí)p害你的業(yè)務(wù)。

我們講決策權(quán)分配,即是說微服務(wù)架構(gòu)的拆分實際上就是在尋求正確的權(quán)力下放戰(zhàn)略。這是一個進(jìn)化過程,需要不斷地進(jìn)行分析和調(diào)整。而如何正確的拆分微服務(wù)架構(gòu),我認(rèn)為可以重點從以下三個方面考慮:
1. 我們應(yīng)該做哪些決定?
設(shè)計微服務(wù)系統(tǒng)不僅僅是改變組件大小,架構(gòu)中涉及創(chuàng)建和更改服務(wù)的所有領(lǐng)域都有一定的作用。在這里總結(jié)了以下九個方面,作為拆分微服務(wù)架構(gòu)時所做決定的參考:
- 生命周期:什么時候創(chuàng)建或停止服務(wù)?我們什么時候需要將它們分開?
- 服務(wù)實現(xiàn):我們應(yīng)該在每個服務(wù)中使用哪些工具、語言和架構(gòu)?
- 系統(tǒng)架構(gòu):服務(wù)如何引導(dǎo)他人?開發(fā)人員如何了解?
- 數(shù)據(jù)架構(gòu):服務(wù)之間如何共享數(shù)據(jù)?
- 變更過程:什么時候可以改變服務(wù)?部署和 QA 的工具和過程?
- 團隊管理:誰在哪個團隊服務(wù)?每個團隊負(fù)責(zé)什么?團隊成員做了什么?
- 人事管理:人員如何被雇用和解雇?員工如何激勵和獎勵?
- 安全管理:我們?nèi)绾谓档桶踩鹿实娘L(fēng)險?需要做些什么來改善整個系統(tǒng)的安全性?
- 采購過程:可以購買什么軟件?使用開源軟件需要哪些保護(hù)?
2. 涉及到哪些人?
不得不承認(rèn),一個員工做出的一些決定對他們的公司來說可能是非常有影響力的。一個很典型的現(xiàn)象是,公司試圖對內(nèi)部的決策者增加控制,以便將風(fēng)險降至最低,從而導(dǎo)致決策權(quán)集中化。例如,在過去的幾年中,蘋果以擁有一個高度集中的設(shè)計團隊而聞名,少數(shù)的人做出產(chǎn)品設(shè)計的大部分決策。
集中發(fā)生是因為正確的人需要做出最重要的決定。通常,“正確的人”是具有天賦,專業(yè)知識和經(jīng)驗的組合,使我們能夠相信他們做出最好的決定,我們可以稱這些人為我們的“明星決策者”。但實際上,公司的“明星決策者”數(shù)量有限,大多數(shù)團隊只有幾顆“明星”。
微服務(wù)改變了這種少數(shù)人行使決策權(quán)的現(xiàn)象,同時更容易應(yīng)對錯誤的決策。如果一個團隊在微服務(wù)工作時作出錯誤的決定,其錯誤的波及范圍會很小,容錯率變高。當(dāng)系統(tǒng)的更改變得便宜和容易時,團隊可以快速改進(jìn)先前的決策,使他們能夠更快地獲得最佳決策。

3. 誰擁有哪一部分?
決策基于選擇,而選擇又基于領(lǐng)域知識。決策不應(yīng)該立即執(zhí)行,它需要一個過程,需要高度專業(yè)的技能或知識來實現(xiàn)。
管理專家亨利?明茨伯格(Henry Mintzberg)為我們提供了一個很好的模式,其中概述了決策過程的步驟:
- 研究與信息采集
- 生成選擇
- 做出選擇
- 授權(quán)的選擇
- 執(zhí)行和實施
所有這一切的關(guān)鍵,是在采用決策分權(quán)化時,不需要絕對。每個步驟都可以獨立集中或分散化,在平衡效率和安全性時,可以獲得更大的靈活性。如今,集中選擇與非集中選擇相結(jié)合,也是現(xiàn)在很多大公司常見的模式。
當(dāng)人們談?wù)撐⒎?wù)架構(gòu)時,權(quán)力下放過程的選擇、授權(quán)和執(zhí)行部分相互協(xié)作、快速、規(guī)?;匾苿?,這些都降低了變化來臨時對整體系統(tǒng)產(chǎn)生的負(fù)面影響。它是提高變革速度的有效途徑,但不要忘記,你的成員特點、團隊協(xié)調(diào),以及所有的系統(tǒng)、工具和工作環(huán)境同樣重要。
你必須了解如何做出決策,如何改進(jìn)流程,這才是迎接變化的好方法。