通往架構(gòu)師之路

分布式集群的架構(gòu)的架構(gòu)師,也有著較高的要求揽涮,而互聯(lián)網(wǎng)上受人敬仰的架構(gòu)師大多屬于這類抠藕。你也可以認(rèn)為這才是真正的架構(gòu)師。

群的擴(kuò)容原則就是一個(gè)人干不完的活多個(gè)人一起干蒋困,讓服務(wù)器與服務(wù)器之間幢痘,進(jìn)行分工與協(xié)作。

之前所展示給大家的所有架構(gòu)家破,都是基于單服務(wù)器架構(gòu)來(lái)設(shè)計(jì)的颜说,如果只有一臺(tái)服務(wù)器,無(wú)能我們?cè)鯓踊ㄥX來(lái)升級(jí)他的硬件配置汰聋,我們會(huì)發(fā)現(xiàn)很快將無(wú)法進(jìn)一步擴(kuò)容门粪。最好的CPU,最大的內(nèi)存條也是有限度的烹困,因此采用集群架構(gòu)玄妈,才是解決問(wèn)題的正確方法。

如果只是從功能實(shí)現(xiàn)來(lái)說(shuō)髓梅,能夠按照第7張圖完成架構(gòu)設(shè)計(jì)的架構(gòu)師拟蜻,已經(jīng)能滿足需求。但是在實(shí)際運(yùn)營(yíng)的項(xiàng)目中枯饿,除了有功能需求以外酝锅,還要有質(zhì)量需求,比如:網(wǎng)站的負(fù)載能力奢方,網(wǎng)絡(luò)并發(fā)連接數(shù)搔扁,系統(tǒng)的數(shù)據(jù)吞吐量爸舒,項(xiàng)目是否具有擴(kuò)容能力等。

通常需要我們通過(guò)服務(wù)器發(fā)起請(qǐng)求調(diào)用第三方的API稿蹲,并且為第三方的平臺(tái)保留回調(diào)的接口扭勉,因此在制作這樣的應(yīng)用程序開發(fā)的時(shí)候,架構(gòu)師除了要掌握移動(dòng)互聯(lián)網(wǎng)絡(luò)的技術(shù)外苛聘,還需要對(duì)第三方提供的功能與規(guī)范以及相應(yīng)接口有充分的了解涂炎。

它和6張圖比較類似,但多出來(lái)幾塊设哗。我們把橫線以上的部分叫服務(wù)端唱捣,橫線以下的叫前端。我們?cè)谝苿?dòng)互聯(lián)網(wǎng)絡(luò)時(shí)代熬拒,經(jīng)常會(huì)涉及到自己的平臺(tái)與第三方平臺(tái)的交互爷光,我們的應(yīng)用在接入支付寶垫竞,微信澎粟,微博等功能后,還會(huì)涉及到與第三方平臺(tái)的功能交互欢瞪。

服務(wù)器端提供數(shù)據(jù)交互服務(wù)活烙,并編寫相應(yīng)的接口,移動(dòng)端進(jìn)行接口調(diào)用遣鼓,并完成界面數(shù)據(jù)填充以負(fù)責(zé)用戶交互啸盏,即便是移動(dòng)端瀏覽器,也應(yīng)采用這種方式來(lái)交互骑祟。

服務(wù)器端的結(jié)構(gòu)沒(méi)有太大的變化回懦,但是軟件設(shè)計(jì)的方式產(chǎn)生了變化,原本B/S架構(gòu)中由服務(wù)端向?yàn)g覽器輸出相應(yīng)的html次企,css怯晕,js等靜態(tài)內(nèi)容即可,但如果涉及到移動(dòng)互聯(lián)網(wǎng)應(yīng)用開發(fā)缸棵,我們會(huì)將我們的應(yīng)用程序規(guī)范化舟茶,把前端和后端完全區(qū)分開來(lái)。

從2010年以后堵第,智能手機(jī)在國(guó)內(nèi)大量普及吧凉,幾年時(shí)間誕生了數(shù)百萬(wàn)的App與手機(jī)游戲,往往一個(gè)項(xiàng)目既擁有自己的網(wǎng)站踏志,又擁有獨(dú)立的APP阀捅,而且作為一個(gè)整體的系統(tǒng),iOS针余,安卓也搓,與網(wǎng)頁(yè)的數(shù)據(jù)應(yīng)該是一致的赏廓。

這樣B/S的架構(gòu)師難度相對(duì)來(lái)說(shuō)比C/S架構(gòu)師低很多,并且有諸多的成熟的解決方案傍妒,比如:java的javaee架構(gòu)幔摸,微軟的asp.net架構(gòu),完全開源的lamp架構(gòu)颤练,都是很成熟的解決方案既忆。

這樣架構(gòu)的優(yōu)點(diǎn)在于因?yàn)榇嬖诖罅康某墒斓慕鉀Q方案,只需要一臺(tái)可連入網(wǎng)絡(luò)的服務(wù)器嗦玖,就可以讓整個(gè)系統(tǒng)運(yùn)轉(zhuǎn)起來(lái)患雇。開發(fā)速度快,運(yùn)營(yíng)成本低宇挫。這種解決方案被廣泛接納苛吱。所以做這樣架構(gòu)的程序員數(shù)量很多,也因此往往不被當(dāng)做架構(gòu)師來(lái)看待器瘪。但是做這樣架構(gòu)的應(yīng)用程序設(shè)計(jì)也架構(gòu)設(shè)計(jì)中的一種翠储。

服務(wù)器端同第7張,第8張可以是一致的橡疼,具體是選擇哪個(gè)服務(wù)器的架構(gòu)援所,取決于項(xiàng)目的規(guī)模。

項(xiàng)目初期用戶量少欣除,可以選擇單服務(wù)器架構(gòu)住拭,如果項(xiàng)目后期服務(wù)器負(fù)載壓力過(guò)大,可以重構(gòu)為分布式集群架構(gòu)

第9張圖的重點(diǎn)在于項(xiàng)目前端历帚,我們來(lái)看前端的技術(shù)架構(gòu)圖滔岳,這里所畫的是市面所流行的混合APP的架構(gòu)。

著名的混合APP應(yīng)用有很多挽牢,比如說(shuō)支付寶手機(jī)客戶端谱煤,還有Facebook,這些應(yīng)用都是采用混合APP架構(gòu)設(shè)計(jì)的卓研。

混合APP應(yīng)用使用html趴俘,和css打造用戶界面,無(wú)論是在瀏覽器奏赘,微信端寥闪,還是在APP中,都是如此磨淌。因此他具備B/S應(yīng)用程序的優(yōu)點(diǎn)疲憋,

可以在服務(wù)器端更新應(yīng)用內(nèi)容,并且讓應(yīng)用在ios梁只,安卓缚柳,瀏覽器端保持高度一致性埃脏。

利用單頁(yè)web APP開發(fā)技術(shù),能夠讓網(wǎng)頁(yè)程序像原生應(yīng)用一樣流暢秋忙,而web APP的缺點(diǎn)在于彩掐,網(wǎng)頁(yè)js程序無(wú)法調(diào)用手機(jī)硬件功能,

但是混合APP架構(gòu)可以通過(guò)微信sdk灰追,微博sdk 堵幽,iOS bridges,安卓bridge是等方式來(lái)獲取微信APP弹澎,微博APP以及手機(jī)硬件的功能朴下。

因此混合APP架構(gòu)同時(shí)具備了web APP與原生應(yīng)用的優(yōu)勢(shì),成為了市場(chǎng)上主流的移動(dòng)應(yīng)用架構(gòu)設(shè)計(jì)方法苦蒿。

跨平臺(tái)兼容性好殴胧,開發(fā)成本低,開發(fā)速度快佩迟。逐步取代了大量的原生應(yīng)用团滥。

比如分布式服務(wù)部分,如果全盞工程師音五,可以使用類似Laravel框架這樣的全盞框架解決本地服務(wù)惫撰,webservice 羔沙,消息隊(duì)列等問(wèn)題躺涝,

但架構(gòu)師則應(yīng)該能深入了解其中原理,并做出相應(yīng)設(shè)計(jì)

全棧工程師只要加深各個(gè)領(lǐng)域知識(shí)深度扼雏,很容易向架構(gòu)師方向發(fā)展

當(dāng)然學(xué)習(xí)的同時(shí)也應(yīng)該注意誤區(qū)坚嗜,很多人以為全棧是學(xué)習(xí)linux+php+h5+移動(dòng)端,這是典型誤區(qū)

因?yàn)樵谝酝拇蠊敬髨F(tuán)隊(duì)時(shí)代诗充,學(xué)科越分越細(xì)苍蔬,因此無(wú)論大學(xué)課程還是培訓(xùn)機(jī)構(gòu),此前都是按專業(yè)和學(xué)科劃分

如果學(xué)linux蝴蜓,那么從組網(wǎng)做網(wǎng)絡(luò)配置碟绑,搭建文件共享或者郵件發(fā)送,web服務(wù)等都需要學(xué)習(xí)和掌握

學(xué)h5的話茎匠,webgl游戲開發(fā)格仲,網(wǎng)頁(yè)開發(fā)都有學(xué)習(xí),其實(shí)對(duì)于全椝忻埃或者架構(gòu)師發(fā)展來(lái)說(shuō)凯肋,這樣并不好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市汽馋,隨后出現(xiàn)的幾起案子侮东,更是在濱河造成了極大的恐慌圈盔,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悄雅,死亡現(xiàn)場(chǎng)離奇詭異驱敲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宽闲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門癌佩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人便锨,你說(shuō)我怎么就攤上這事围辙。” “怎么了放案?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵姚建,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吱殉,道長(zhǎng)掸冤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任友雳,我火速辦了婚禮稿湿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘押赊。我一直安慰自己饺藤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布流礁。 她就那樣靜靜地躺著涕俗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪神帅。 梳的紋絲不亂的頭發(fā)上再姑,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音找御,去河邊找鬼元镀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛霎桅,可吹牛的內(nèi)容都是我干的栖疑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼哆档,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蔽挠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澳淑,失蹤者是張志新(化名)和其女友劉穎比原,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠巡,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡量窘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氢拥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚌铜。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嫩海,靈堂內(nèi)的尸體忽然破棺而出冬殃,到底是詐尸還是另有隱情,我是刑警寧澤叁怪,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布审葬,位于F島的核電站,受9級(jí)特大地震影響奕谭,放射性物質(zhì)發(fā)生泄漏涣觉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一血柳、第九天 我趴在偏房一處隱蔽的房頂上張望官册。 院中可真熱鬧,春花似錦难捌、人聲如沸膝宁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)昆汹。三九已至明刷,卻和暖如春婴栽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辈末。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工愚争, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挤聘。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓轰枝,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親组去。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鞍陨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容