本系列前序文章索引: 架構(gòu)師,在開展工作的過程中需要對接老板、產(chǎn)品、項(xiàng)目、開發(fā)、測試、安全和運(yùn)營等各種崗位角色,他們都是架構(gòu)需要關(guān)注和服務(wù)的內(nèi)部客戶,他們的痛點(diǎn)就是架構(gòu)工作的驅(qū)動因素。架構(gòu)師就是要用專業(yè)技能“搞定”這些角色的需求,輸出大家都能接受的解決方案,大家好才是真正的好。為了達(dá)成此目的,我們必須知道不同崗位的關(guān)注點(diǎn)。
老板的主要職責(zé)就是定方向、找人、找錢,他對架構(gòu)設(shè)計的要求就是在給定的預(yù)算、時間范圍內(nèi)研發(fā)出軟件系統(tǒng),推動公司的戰(zhàn)略或戰(zhàn)術(shù)得以實(shí)現(xiàn),也就是說架構(gòu)方案不能過于理想,不能超出預(yù)算和截止時間。自從蘋果公司的喬布斯封神之后,現(xiàn)在的互聯(lián)網(wǎng)公司都崇尚老板擔(dān)當(dāng)首席產(chǎn)品官,例如騰訊馬化騰、微信張小龍、百度李彥宏等等。產(chǎn)品經(jīng)理需要思考打造什么樣的產(chǎn)品才能達(dá)成公司的戰(zhàn)略或戰(zhàn)術(shù)目的,他要綜合考慮產(chǎn)品是否滿足功能、質(zhì)量和商業(yè)等需求,滿足功能需求只能達(dá)到及格線,易用性、交互體驗(yàn)、性能、可靠性等質(zhì)量需求能否滿足才是產(chǎn)品達(dá)到優(yōu)秀的關(guān)鍵,以及從商業(yè)角度考慮選擇什么時機(jī)將產(chǎn)品推向市場,有節(jié)奏地推動用戶和業(yè)務(wù)的不斷增長等。 任何技術(shù)都是服務(wù)于業(yè)務(wù)的,架構(gòu)主要是承上啟下的作用,架構(gòu)設(shè)計需要將老板和產(chǎn)品的戰(zhàn)略戰(zhàn)術(shù)規(guī)劃跟開發(fā)實(shí)現(xiàn)銜接起來,例如:公司準(zhǔn)備進(jìn)入某個新領(lǐng)域,但在沒有足夠把握的情況下先推出一款產(chǎn)品試試水,這個階段的架構(gòu)設(shè)計就不能太超前,而是要盡量簡單輕量,以便開發(fā)團(tuán)隊能夠快速將原型產(chǎn)品開發(fā)出來,推向市場并收集真實(shí)用戶的反饋,驗(yàn)證想法。如果發(fā)現(xiàn)原先的想法過于紙上談兵,那么接下來就要盡快調(diào)整方向了,這時候架構(gòu)過于復(fù)雜反而不利于調(diào)整。如果經(jīng)過試水驗(yàn)證發(fā)現(xiàn)產(chǎn)品找準(zhǔn)了市場切入口,用戶和業(yè)務(wù)都開始快速增長,那這時候就需要考慮做架構(gòu)升級了,必須預(yù)見到后續(xù)業(yè)務(wù)發(fā)展趨勢,預(yù)留一些提前量,確保技術(shù)不會托業(yè)務(wù)發(fā)展的后腿。 2. 項(xiàng)目管理 我們都知道,不管是傳統(tǒng)瀑布式,還是敏捷迭代式,項(xiàng)目管理主要關(guān)注范圍、進(jìn)度和成本鐵三角,以及滿足上述三個維度約束下確保質(zhì)量。那么從服務(wù)好項(xiàng)目管理這個內(nèi)部客戶看,架構(gòu)設(shè)計必須要遵從范圍、進(jìn)度、成本和質(zhì)量等約束,否則項(xiàng)目組都解散了,再好的架構(gòu)也無用武之地。
3. 開發(fā)測試 開發(fā)測試要基于架構(gòu)設(shè)計做子系統(tǒng)的概要設(shè)計、詳細(xì)設(shè)計、測試方案設(shè)計和測試用例編制等,從這項(xiàng)下游工作來看,開發(fā)測試就需要關(guān)注系統(tǒng)的邏輯劃分,即系統(tǒng)被分解成幾個子系統(tǒng),每個子系統(tǒng)分別承擔(dān)什么職責(zé),關(guān)鍵業(yè)務(wù)場景的交互流程是怎樣的,子系統(tǒng)之間采用哪種交互機(jī)制和通訊協(xié)議等。如果缺失這些信息的輸入,我們開發(fā)測試的工作就會受到影響,嚴(yán)重會導(dǎo)致無法交付合格的產(chǎn)品。 除了承擔(dān)部分設(shè)計工作之外,開發(fā)測試主要職責(zé)就是將文檔圖紙上的設(shè)計真正落地實(shí)現(xiàn),這就涉及到具體技術(shù)棧的選型,也就是我們程序員構(gòu)建虛擬世界的工具。若以 Web 應(yīng)用程序開發(fā)為例,技術(shù)棧的選型主要包含以下幾個方面:
如果項(xiàng)目壓力很大,那么選擇熟悉的技術(shù)棧是合適的,這樣我們就可以聚焦在業(yè)務(wù)實(shí)現(xiàn)上,不用操心技術(shù)維度導(dǎo)致的問題。如果項(xiàng)目壓力適中,團(tuán)隊也希望掌握一些新技術(shù)棧,以便后續(xù)可以使用新技術(shù)開發(fā)新系統(tǒng),那么選擇次新的、主流的技術(shù)棧是最好的,在項(xiàng)目中實(shí)踐熟悉新技術(shù),完成團(tuán)隊研發(fā)能力的升級更新。 4. 運(yùn)維運(yùn)營 系統(tǒng)在發(fā)布上線之后將會被移交給運(yùn)營團(tuán)隊,但運(yùn)營團(tuán)隊的關(guān)注點(diǎn)跟開發(fā)測試不同,他們關(guān)注系統(tǒng)能否穩(wěn)定運(yùn)行,在處理業(yè)務(wù)請求時的耗時長短、吞吐量等性能表現(xiàn),當(dāng)業(yè)務(wù)量爆發(fā)式增長時系統(tǒng)是否具備彈性伸縮能力,系統(tǒng)在長時間運(yùn)行過程中的穩(wěn)定性、可靠性和魯棒性等。另外,任何對用戶有價值的系統(tǒng)上線之后都要面臨黑客、羊毛黨的攻擊,系統(tǒng)必須要有安全性保障,確保用戶個人信息和業(yè)務(wù)交易過程的安全。俗話說:百密必有一疏。考慮得再周全,線上仍然會發(fā)生出乎你意料的事情,系統(tǒng)必須要有實(shí)時檢測、提前預(yù)警和事后恢復(fù)等機(jī)制,運(yùn)營的職責(zé)就是系統(tǒng)能夠提供 7*24 不間斷的服務(wù),不讓系統(tǒng)拖業(yè)務(wù)發(fā)展的后腿。 在傳統(tǒng)業(yè)務(wù)模式下,我們企業(yè)的大部分軟件系統(tǒng)都是用于辦公自動化的,這些系統(tǒng)的用戶數(shù)量是相對穩(wěn)定的,運(yùn)營團(tuán)隊只要保障這些系統(tǒng)穩(wěn)定運(yùn)行就可以了。但是到了互聯(lián)網(wǎng)+時代,企業(yè)的核心系統(tǒng)都是面向線上全網(wǎng)客戶的,并發(fā)訪問量的波峰波谷是不斷交替出現(xiàn)的,最大峰值流量也很難預(yù)測,這時候系統(tǒng)的彈性伸縮能力就顯得特別重要了,運(yùn)營團(tuán)隊比較關(guān)注系統(tǒng)是否方便擴(kuò)容或縮容,是否支持跨數(shù)據(jù)中心部署,是否支持集群的克隆部署等。這些訴求都要納入到架構(gòu)設(shè)計的驅(qū)動因素當(dāng)中,確保最終輸出的架構(gòu)設(shè)計方案能夠滿足上述要求。 收集了解上下游客戶的需求是第一步,后續(xù)我們還需要做好平衡協(xié)調(diào),最終輸出符合各方訴求的方案。今天先分享到這里,接下來老兵哥還會分享如何評價架構(gòu)方案。如果你對這個主題感興趣,千萬要記得先關(guān)注哦!堅持原創(chuàng)不易,如果你覺得有價值,麻煩動動手指點(diǎn)下文 「 推薦 」按鈕,讓更多小伙伴可以看到,老兵哥會更有動力堅持分享的。另外,我后續(xù)還會分享職業(yè)規(guī)劃、應(yīng)聘面試、技能提升、影響力打造等經(jīng)驗(yàn),歡迎 關(guān)注 本專欄或微信公眾號 「 IT老兵哥 」!
|
|