導讀:11 月 23 ~ 24 日,GIAC 全球網際網路架構大會將於上海舉行。GIAC 是高可用架構技術社群推出的面向架構師、技術負責人及高階技術從業人員的技術架構大會。今年的 GIAC 已經有微軟,騰訊、阿裡巴巴、螞蟻金服,華為,科大訊飛、新浪微博、京東、七牛、美團點評、餓了麼,才雲,格靈深瞳,Databricks,等公司專家出席。本週購買可享門票88折優惠,高可用架構會員低至6折。
在大會前夕,高可用架構採訪了本屆 GIAC微服務講師胡忠想,就目大家關註的微服務落地等問題進行了訪談。
胡忠想,微博技術專家,極客時間專欄《從0開始學習微服務》作者。2012年加入微博工作至今,先後承擔過微博計數器架構升級、春晚和奧運服務保 障,以及首頁資訊流架構升級等工作。在分散式服務高可用性保障領域積累了豐 富的線上實踐經驗。
高可用架構:很高興採訪到您。大家都知道您不僅是技術專家,還是微博網紅。相信很多人都想知道,作為微博網紅技術專家,是一種什麼的體驗?
胡忠想:大家好,我是微博的胡忠想。大家都想知道我是怎麼成為微博網紅的,都是因為微博能扛八個明星出軌的flag,也被戲稱微博flag帝。雖然我沒有立過這個flag,但眾口鑠金,有口難辨,捂臉表情。不過大家這麼關註我,說明大家對微博這個平臺應對熱點事件的能力還是很感興趣的,畢竟微博是大家瞭解熱點事件的最重要的渠道。所以我的壓力還是很大的,畢竟每一次微博服務宕機,都要被掛出來,表情包滿天飛,捂臉表情。
高可用架構:大家都知道微博落地了微服務。從技術角度來說,針對突發熱點事件的場景,微服務架構有哪些優勢?
胡忠想:說到微博,大家第一時間想到的就是微博的首頁關註流,我就是主要負責微博首頁關註流穩定性保障的。在過去幾年為了應對突發熱點事件,對我們的業務進行了服務化改造,為了能夠快速擴縮容,研發了一套動態決策系統,能夠根據服務池的冗餘度自動擴縮容,無須人為值守。然而這兩年隨著微博業務的快速發展,湧現了多條新的業務線,比如熱門微博和熱搜,也同樣面臨著突發熱點事件保障的需求,但由於這些業務線主要採用的是PHP語言,而我們的平臺主要採用的是Java語言,所以這套自動擴縮容系統不能直接拿來使用。不過透過改造成微服務,透過我們最新研發的Weibo Mesh的解決方案,能夠無縫接入這套自動擴縮容系統,一套系統能夠為多個業務線服務的。
高可用架構:落地微服務,有什麼樣的難點?您覺得的最大難點是什麼?
胡忠想:落地微服務的難點有很多,比如服務框架、註冊和配置中心、監控系統、分散式追蹤系統、服務治理中心等等,如果每一個部分都自研的話難度是相當大的。但我覺得最大的難點其實是如何做技術選型,針對自己的當前業務情況,到底是自研比較好,還是選用開源技術方案比較好,如果選擇開源技術方案的話,又該選擇哪種,比如選擇服務框架時,是選擇跟語言系結的比如Dubbo、Spring Cloud,還是選擇能夠支援多種語言的比如gRPC、thirft。選擇了哪種技術路線,就決定了之後整個微服務體系的可擴充套件性以及在多個業務線落地的難易程度。
高可用架構:有人把微服務理解為微小的服務,甚至還有人一個介面一個服務。能否結合您的實戰經驗,談一談微服務應該如何進行服務拆分?
胡忠想:我認為在進行服務拆分不是越細越好,要結合業務的發展和人員的配備情況綜合考量。拆分的太細,一個介面一個服務的話,會出現需要管理的服務太多,人力不足以應對的情況,而是要循序漸進。比如微博在進行服務化拆分的時候,一開始是把一個大的Web單體應用,拆分成兩個大的Web單體應用,之後再從每個大的Web單體應用,拆分出七八個獨立的RPC服務,整個過程持續了兩三年,伴隨著業務開發人員的規模越來越大,職責劃分越來越明確,才會把服務拆分的越來越細。
如果想從其他架構方式轉成微服務,需要做一些什麼樣的轉變?您有什麼樣的建議?
微服務架構本身相比於其它架構本身並不是說有多麼先進,而是微服務、容器化、DevOps這三者相結合,在業務規模很大時,透過拆分出多個獨立的服務進行開發、測試和運維,能夠快速迭代,加快業務研發的速度,這才是傳統架構向微服務架構轉變的最大價值。
高可用架構:最近兩年 Cloud Native 逐步流行起來,能否簡單介紹一下微服務跟 Cloud Native 兩者之間的關係?
胡忠想:微服務強調的是業務的組織架構,而Cloud Native也就是雲原生,強調的是業務部署的樣式。微服務跟Cloud Native看似是兩個不同領域的概念,如果業務既採用微服務架構,又以雲原生應用的方式部署,就能實現服務治理體系與服務運維體系的融合,能到達1+1>2的效果,最近大紅大紫的Service Mesh的代表作——Istio就是微服務與Cloud Native結合成功的典範。
高可用架構:如果想快速學習微服務的知識,能否給大家總結一下快速上手的學習路線?
胡忠想:我建議先瞭解下微服務的基本原理,並以一個具體的開源服務化框架來動手實踐,比如Dubbo、Motan、Spring Cloud都可以,這樣理論與實踐相結合的話是最好的方式。當然如果你在公司裡有實際微服務架構的專案,那更好不過了,可以在具體專案中活學活用。
高可用架構:作為 GIAC 微服務專題的講師,能否簡單透露一下您將要給聽眾帶來哪些值得期待的內容?
胡忠想:這一次分享,我給大家帶來的主要是微博在微服務化治理方面的一線實踐經驗,有服務治理方面的一些關鍵技術,比如針對微博業務場景自研的靜態註冊中心、backup request樣式、以及best-fit負載均衡演演算法,有微博在跨語言服務治理方面的具體實踐,還有微博如何研發統一微服務治理平臺等。
高可用架構:最後,您對 GIAC 有什麼寄語或者期望?
胡忠想:第一次參加GIAC,希望我的分享能給大家帶來收穫,也希望能藉此機會與同行做更深入的交流,感謝GIAC給了我這次機會。
本期 GIAC 大會上,微服務 部分精彩的議題如下:
參加 GIAC,盤點2018最新技術。點選“閱讀原文”瞭解大會更多詳情。