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