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