LINKEDIN資深軟件工程經(jīng)理羅軼民:微服務(wù)發(fā)展的機(jī)遇與挑戰(zhàn)
原創(chuàng)【51CTO.com原創(chuàng)稿件】互聯(lián)網(wǎng)的不斷發(fā)展,使得微服務(wù)在大型互聯(lián)網(wǎng)架構(gòu)中面臨越來(lái)越多的挑戰(zhàn),微服務(wù)遇到了哪些技術(shù)挑戰(zhàn)和組織架構(gòu)挑戰(zhàn)?又該如何應(yīng)對(duì)挑戰(zhàn)轉(zhuǎn)化為微服務(wù)發(fā)展的機(jī)遇呢?基于此,記者在51CTO主辦的WOTA2017全球架構(gòu)與運(yùn)維技術(shù)峰會(huì)上,對(duì)LINKEDIN資深軟件工程經(jīng)理羅軼民老師進(jìn)行了專訪。
羅軼民,現(xiàn)任LINKEDIN資深軟件工程經(jīng)理。前樂視美國(guó)視頻平臺(tái)技術(shù)總監(jiān)以及Netflix視頻內(nèi)容平臺(tái)技術(shù)負(fù)責(zé)人。有15年以上互聯(lián)網(wǎng)公司(Linkedln,樂視,Netflix以及Paypal)技術(shù)開發(fā),構(gòu)架以及團(tuán)隊(duì)管理的經(jīng)驗(yàn)。主要負(fù)責(zé)的領(lǐng)域是高并發(fā)后端服務(wù)構(gòu)架,微服務(wù)構(gòu)架,大數(shù)據(jù)平臺(tái)構(gòu)架等,以及端對(duì)端的整個(gè)產(chǎn)品開發(fā)。感興趣的領(lǐng)域是視頻,支付,互聯(lián)網(wǎng)金融以及電商領(lǐng)域。
為什么使用微服務(wù)架構(gòu)?
拿微服務(wù)跟單片服務(wù)做對(duì)比,單片服務(wù)是所有代碼程序在一個(gè)巨大的軟件包里,開發(fā)部署在同一個(gè)軟件包進(jìn)行;微服務(wù)是把巨大軟件包分出很多獨(dú)立服務(wù),主要目的是隨著軟件規(guī)模的擴(kuò)展,會(huì)產(chǎn)生很多問(wèn)題,比如開發(fā)速度減慢,部署速度減慢,很微小的錯(cuò)誤導(dǎo)致整個(gè)網(wǎng)站出現(xiàn)問(wèn)題。
微服務(wù)采用分布化構(gòu)架,它把大的軟件分布成小的,在每個(gè)小的里面可以有獨(dú)立的開發(fā)部署可以快速迭代,比較適用于大型的互聯(lián)網(wǎng)公司流量比較大,需要快速開發(fā)及運(yùn)作新的產(chǎn)品。
微服務(wù)面臨哪些挑戰(zhàn)?
微服務(wù)帶來(lái)的挑戰(zhàn)從技術(shù)方面分析,***,微服務(wù)是分布式的,分布式構(gòu)架本身帶來(lái)很多技術(shù)上的挑戰(zhàn),比如管理很多分散在不同地方的服務(wù)、代碼。
第二,服務(wù)發(fā)現(xiàn)??梢岳斫鉃楸緛?lái)只有一個(gè)服務(wù),找這個(gè)服務(wù)就可以完成?,F(xiàn)在演變成上百個(gè)服務(wù),必須有人管理,分配服務(wù)做什么事情,要找到服務(wù)給客戶,服務(wù)發(fā)現(xiàn)變成很大的挑戰(zhàn)。
第三,網(wǎng)絡(luò)容錯(cuò)和延遲。可以想像當(dāng)企業(yè)有幾百個(gè)服務(wù),這些服務(wù)互相有溝通,如果其中某一墻之隔的服務(wù)當(dāng)負(fù)載量比較大時(shí)可能變成瓶頸,導(dǎo)致整個(gè)系統(tǒng)的延遲。
第四,測(cè)試方面的挑戰(zhàn)。單片服務(wù)測(cè)一個(gè),微服務(wù)要測(cè)無(wú)數(shù)多個(gè),每測(cè)試一次挑戰(zhàn)都非常大。
微服務(wù)帶來(lái)的挑戰(zhàn)從企業(yè)組織結(jié)構(gòu)方面分析,***,單片服務(wù)是單向?qū)?yīng),不同服務(wù)團(tuán)隊(duì)對(duì)應(yīng)特定的測(cè)試團(tuán)隊(duì),一個(gè)人做好給另外一個(gè)人管理非常清晰。微服務(wù)從中心劃分,每一個(gè)微服務(wù)團(tuán)隊(duì)必須負(fù)責(zé)所有單片團(tuán)隊(duì)里做的事情,包括開發(fā)、測(cè)試、部署,導(dǎo)致微服務(wù)的團(tuán)隊(duì)本身必須要跟傳統(tǒng)的有區(qū)別,微服務(wù)團(tuán)隊(duì)有更多獨(dú)立性,可以獨(dú)立決定自己做的事情。微服務(wù)團(tuán)隊(duì)采用一步到位導(dǎo)向,只要能夠提供一定的功能和結(jié)果,它內(nèi)部有很多自由選擇權(quán)。
第二,微服務(wù)團(tuán)隊(duì)導(dǎo)致測(cè)試跟部署或者一些傳統(tǒng)的功能會(huì)消失,小時(shí)傳統(tǒng)功能分散在微服務(wù)管理團(tuán)隊(duì)中,微服務(wù)團(tuán)隊(duì)要做更多事,實(shí)現(xiàn)更智能,對(duì)微服務(wù)本身技術(shù)是挑戰(zhàn),對(duì)管理層也帶來(lái)管理挑戰(zhàn)。
企業(yè)的組織構(gòu)架往往會(huì)反映在技術(shù)構(gòu)架中,微服務(wù)在企業(yè)內(nèi)部是否能夠成功很大程度上取決于企業(yè)的組織構(gòu)架和技術(shù)構(gòu)架是否能夠匹配。
微服務(wù)的未來(lái)發(fā)展之路
微服務(wù)應(yīng)用場(chǎng)景需要有大流量、高并發(fā),需要用戶增長(zhǎng)迅速。有不同新功能推出的企業(yè)采用這種構(gòu)架,這些企業(yè)沒辦法在傳統(tǒng)的單片服務(wù)上走得更遠(yuǎn),因?yàn)閱纹?wù)沒辦法處理巨大的流量。越來(lái)越多的互聯(lián)網(wǎng)公司,特別是大型的互聯(lián)網(wǎng)公司會(huì)采用微服務(wù)的構(gòu)架。甚至一些新興的公司,如果他們可以預(yù)知到以后會(huì)有大量的用戶流量也會(huì)提前采用。隨著各種各樣開源工具的發(fā)展,選擇開始構(gòu)建微服務(wù)也并不是一項(xiàng)大的企業(yè)難題。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】