新浪微博技術(shù)專(zhuān)家張雷:微博服務(wù)化的實(shí)踐與演進(jìn)
原創(chuàng)【51CTO.com原創(chuàng)稿件】服務(wù)化不是什么新鮮話題,很多公司都實(shí)現(xiàn)了不同程度的服務(wù)化架構(gòu),伴隨著Docker容器化的大規(guī)模應(yīng)用,服務(wù)化實(shí)施效率不斷提高,成本也進(jìn)一步降低,服務(wù)化依然是整體架構(gòu)中需要重點(diǎn)考慮的問(wèn)題之一。RPC框架作為服務(wù)化中重要的服務(wù)組件,在不同場(chǎng)景中面對(duì)的問(wèn)題與需要解決的問(wèn)題也不盡相同,在容器化的云時(shí)代,對(duì)RPC框架也提出了更高的要求。
2017年4月14日-15日,由51CTO主辦的WOTA全球架構(gòu)與運(yùn)維技術(shù)峰會(huì)在北京富力萬(wàn)麗酒店隆重召開(kāi)。本次WOTA設(shè)置了15大前沿?zé)狳c(diǎn)技術(shù)論壇,60+來(lái)自Google、LinkedIn、百度、阿里巴巴、騰訊、新浪等海內(nèi)外一線公司的技術(shù)大咖將帶來(lái)超過(guò)50個(gè)歷經(jīng)沉淀的架構(gòu)實(shí)戰(zhàn)心得與成功經(jīng)驗(yàn)分享案例,攜手打造歷時(shí)2天的行業(yè)***技術(shù)盛會(huì)。
在4月15日上午WOTA2017分會(huì)場(chǎng)《微服務(wù)架構(gòu)實(shí)踐》,新浪微博技術(shù)專(zhuān)家、MotanRPC框架技術(shù)負(fù)責(zé)人張雷進(jìn)行了主題為《微博服務(wù)化的實(shí)踐與演進(jìn)》的精彩演講。那么,微博服務(wù)化究竟是怎樣做的?微博做服務(wù)化的過(guò)程中遇到了哪些坑?用什么樣的方法解決的?演講結(jié)束,記者***時(shí)間采訪了他,就這一系列問(wèn)題進(jìn)行了深入交流。
新浪微博的服務(wù)化
目前,微博的服務(wù)化體系中有上百的業(yè)務(wù)線,運(yùn)行著有上千個(gè)服務(wù),每天完成萬(wàn)億次的RPC服務(wù)調(diào)用和數(shù)百億的API調(diào)用。單個(gè)服務(wù)的server規(guī)模從幾臺(tái)到數(shù)百臺(tái),個(gè)別服務(wù)的client數(shù)量達(dá)到上千臺(tái)。
張雷表示,微博的服務(wù)化有許多的服務(wù)組件組成,主要包括DCPdocker容器化平臺(tái),負(fù)責(zé)服務(wù)的動(dòng)態(tài)部署和回收,是服務(wù)化體系的堅(jiān)實(shí)基礎(chǔ);以及Motan RPC 開(kāi)源框架,提供了豐富的服務(wù)治理功能,是服務(wù)化體系中各服務(wù)交互的主要方式;vintage是服務(wù)的注冊(cè)中心,提供服務(wù)注冊(cè)、訂閱以及命名服務(wù),支持動(dòng)、靜態(tài)配置的變更通知;cacheService是資源層服務(wù)化組件,基于motan框架實(shí)現(xiàn)了memcache、redis、mcq等資源層的透明化服務(wù)。其他還有一些相關(guān)的trace、監(jiān)控、運(yùn)維系統(tǒng)等,這些共同構(gòu)成了微博的服務(wù)化體系。
微博服務(wù)化過(guò)程中遇到的那些坑
張雷表示,新浪微博在服務(wù)化過(guò)程中,曾遇到過(guò)很多坑。微博的服務(wù)化并不是一下就有了混合云的服務(wù)方式,中間主要經(jīng)歷了以下幾個(gè)階段:
服務(wù)化發(fā)展的每一步都會(huì)遇到一些具體的問(wèn)題,例如在***個(gè)階段的時(shí)候,為了解決資源利用的***化,這時(shí)候選擇了把服務(wù)耦合在一起。第二個(gè)階段,因?yàn)榉?wù)成長(zhǎng)到了一定的規(guī)模,就需要選擇把不同的公共服務(wù)進(jìn)行解耦。第三個(gè)階段,就是做容器化的時(shí)候,需要提供一個(gè)動(dòng)態(tài)的彈性的快速擴(kuò)容的能力。總之,在每一個(gè)階段都是為了解決上一個(gè)階段遺留的問(wèn)題,這個(gè)階段遺留的一些問(wèn)題,當(dāng)規(guī)模發(fā)展到一定的程度就會(huì)積累,這就是上一階段留給下一階段的坑,下一階段用自身技術(shù)的發(fā)展,去把上一階段的坑填平。為了不讓坑過(guò)深,導(dǎo)致掉進(jìn)去出不來(lái)。新浪微博通過(guò)灰度測(cè)試等技術(shù),在問(wèn)題萌芽狀態(tài)就著手解決。
高性能輕量級(jí)的MotanPRC框架
2016年,新浪微博開(kāi)源了MotanPRC,MotanPRC是一個(gè)高性能輕量級(jí)的RPC框架,它能夠提供非常強(qiáng)的擴(kuò)展能力,很適合不同的企業(yè)進(jìn)行二次的開(kāi)發(fā)。說(shuō)它輕量級(jí)是因?yàn)樗募軜?gòu),還有代碼的規(guī)范性等都非常的簡(jiǎn)潔,學(xué)習(xí)成本和后面的維護(hù)成本非常低,并且能夠針對(duì)不同使用方的使用場(chǎng)景提供擴(kuò)展的能力。
因?yàn)楹芏嗳嗽谑褂肦PC的框架時(shí),發(fā)現(xiàn)都要跟自己原有的系統(tǒng)進(jìn)行一個(gè)有機(jī)的結(jié)合,很少做到一個(gè)開(kāi)源框架開(kāi)箱即用,其實(shí)這個(gè)是很難做到的。所以或多或少都會(huì)做一些改進(jìn)改造,MoTan框架就非常的適合這種二次開(kāi)發(fā)。所以,新浪微博希望把MoTan的RPC框架,自身提供服務(wù)的優(yōu)質(zhì)能力,還有高性能RPC調(diào)用能力,把這部分功能能夠提供給廣大的朋友們?nèi)?fù)用。
采訪***,談及MotanRPC框架技術(shù)未來(lái)的發(fā)展規(guī)劃,張雷表示:“從最開(kāi)始只完成基礎(chǔ)的調(diào)用,到簡(jiǎn)單的服務(wù)治理,到支持指令進(jìn)行一個(gè)流量控制,以及到目前我們現(xiàn)在正在做的跨語(yǔ)言的服務(wù)化統(tǒng)一治理,MotanRPC框架一直在不斷的發(fā)展。目前,我們現(xiàn)在正在做跨語(yǔ)言的服務(wù)化統(tǒng)一治理。后續(xù)的方向,我們希望這個(gè)框架成為一個(gè)跨語(yǔ)言的服務(wù)治理框架,它不簡(jiǎn)簡(jiǎn)單單的是一個(gè)RPC的調(diào)用框架,更是一個(gè)服務(wù)治理框架,最終在跨語(yǔ)言方面發(fā)力來(lái)進(jìn)行更多的一些研發(fā)工作。”
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】