嘉賓介紹:
李林鋒_照片 - 副本.jpg (5.55 KB, 下載次數(shù): 1871)
下載附件
2016-01-14 16:10 上傳
李林鋒,現(xiàn)任華為PaaS平臺(tái)架構(gòu)師,8年Java NIO通信框架、平臺(tái)中間件架構(gòu)設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),主導(dǎo)設(shè)計(jì)和開發(fā)的華為分布式服務(wù)框架已經(jīng)在全球數(shù)十個(gè)國家成功商用。精通Netty、Mina、RPC框架、企業(yè)ESB總線、分布式服務(wù)框架等技術(shù),《Netty權(quán)威指南》作者,公司總裁技術(shù)創(chuàng)新獎(jiǎng)獲得者。
王楠w_n(Q1):李老師,您好!非常榮幸有機(jī)會(huì)采訪到您,首先請(qǐng)您簡(jiǎn)單的介紹下自己,以及您的技術(shù)背景和目前所負(fù)責(zé)的領(lǐng)域。
李林峰(A1):你好,各位讀者大家好。我叫李林鋒,在華為從事電信軟件的架構(gòu)設(shè)計(jì),有7年多的行業(yè)網(wǎng)關(guān)、業(yè)務(wù)網(wǎng)關(guān)和能力開放平臺(tái)的設(shè)計(jì)和開發(fā)經(jīng)驗(yàn),精通NIO通信框架、網(wǎng)關(guān)平臺(tái)、ESB總線等。目前負(fù)責(zé)華為PaaS平臺(tái)的架構(gòu)設(shè)計(jì)工作。
王楠w_n(Q2):從一名技術(shù)開發(fā)者到華為軟件平臺(tái)架構(gòu)部架構(gòu)師,再到《分布式服務(wù)框架原理與實(shí)踐》和《Netty權(quán)威指南》兩本書的作者;仡^看這一路的努力和經(jīng)歷,有哪些收獲?能否和我們分享一些刻骨銘心的回憶?
李林峰(A2):工作之余寫書確實(shí)非常辛苦,它不像寫幾篇技術(shù)文章和博客那么簡(jiǎn)單。作者需要針對(duì)各層級(jí)讀者的需求進(jìn)行系統(tǒng)性的分析和調(diào)研,再結(jié)合技術(shù)本身進(jìn)行連續(xù)性、長(zhǎng)時(shí)間的寫作,幾乎擠占你所有的業(yè)余時(shí)間,無論是從精神上還是工作強(qiáng)度,都非常辛苦。
關(guān)于寫書的收獲,可以從兩個(gè)角度來看:
1)作者角度:寫書的過程實(shí)際是對(duì)自己已有知識(shí)和經(jīng)驗(yàn)的重新梳理、補(bǔ)充和系統(tǒng)化總結(jié)的過程,寫書是對(duì)自己經(jīng)驗(yàn)和能力的一種升華。當(dāng)然,通過寫書也認(rèn)識(shí)了很多新的朋友,通過技術(shù)的交流和碰撞,會(huì)產(chǎn)生新的想法。
2)讀者角度:無論是Netty,還是分布式服務(wù)框架,很多讀者從中受益。技術(shù)框架的學(xué)習(xí)和高效使用需要一定的經(jīng)驗(yàn)積累,對(duì)于很多初學(xué)者而言,自己啃代碼或者網(wǎng)上搜零散的資料,很難在短時(shí)間內(nèi)系統(tǒng)性的掌握相關(guān)領(lǐng)域知識(shí)。通過技術(shù)書籍的學(xué)習(xí)和實(shí)踐可以快速的入門,在實(shí)踐中成長(zhǎng)。
印象比較深刻的是去年在上海的一個(gè)技術(shù)論壇講高性能RPC框架的設(shè)計(jì)和實(shí)踐,我的一個(gè)讀者從杭州專門開車到上,F(xiàn)場(chǎng)聽我的講座,會(huì)后還執(zhí)意開車將我送到高鐵站,然后才回杭州,這位讀者的執(zhí)著精神令我非常感動(dòng)。
王楠w_n(Q3):我們了解到,您在平臺(tái)架構(gòu)和開放方面有著豐富的從業(yè)經(jīng)驗(yàn),對(duì)初出茅廬的開發(fā)新人,在學(xué)習(xí)和工作習(xí)慣上,您的建議有哪些?可否指點(diǎn)一二。
李林峰(A3):萬丈高樓平地起,對(duì)于初學(xué)者,切莫盲目追求技術(shù)廣度,要把精力聚焦在自己感興趣或者工作實(shí)際強(qiáng)相關(guān)的技術(shù)領(lǐng)域,例如平臺(tái)中間件或者運(yùn)維工具。把基礎(chǔ)知識(shí)打牢,我接觸到很多工作2-3年的新人,凡是技術(shù)功底比較扎實(shí)的,工作都能做的非常好,發(fā)展?jié)摿σ哺蟆?br />
眾所周知,IT行業(yè)競(jìng)爭(zhēng)激烈,壓力也很大。對(duì)于新人,要能夠耐得住寂寞,靜下心來踏踏實(shí)實(shí)的積累工作經(jīng)驗(yàn),不要總是想著跳槽漲薪,當(dāng)你的能力足夠強(qiáng)大時(shí),環(huán)顧四周會(huì)發(fā)現(xiàn)機(jī)會(huì)多得是。
王楠w_n(Q4):“微服務(wù)”無疑是本年度最熱的技術(shù)關(guān)鍵詞之一!那么微服務(wù)如何落地呢?部分讀者稱您書中技術(shù)與實(shí)踐差距太大,您對(duì)此如何回答?
李林峰(A4):首先需要澄清的是,本書并不是專門介紹微服務(wù)的技術(shù)書籍。本書聚焦在當(dāng)前更主流、已經(jīng)被淘寶、亞馬遜、華為等巨頭廣泛采用和實(shí)踐的分布式服務(wù)框架上。
微服務(wù)最近確實(shí)很火,15年我也很有幸在硅谷跟亞馬遜、谷歌等工程師交流過他們對(duì)微服務(wù)的實(shí)踐和看法。整體而言,微服務(wù)提倡的足夠小、可獨(dú)立部署、升級(jí)、伸縮和運(yùn)維確實(shí)能夠提升系統(tǒng)的敏捷性,滿足業(yè)務(wù)的快速發(fā)布和敏捷交付,降低運(yùn)維成本。但是它的落地需要微服務(wù)的設(shè)計(jì)、研發(fā)工具、Dev&Ops流水線等基礎(chǔ)設(shè)施的支撐,以及團(tuán)隊(duì)管理方式、協(xié)作分工流程的變更,如果沒有這些微服務(wù)生存的合適土壤,盲目實(shí)施微服務(wù),可能得不償失。
最后一點(diǎn)就是與實(shí)踐差距太大的問題,這個(gè)剛才已經(jīng)澄清了,《分布式服務(wù)框架原理與實(shí)踐》不是專門針對(duì)微服務(wù)的,它實(shí)際是對(duì)目前被互聯(lián)網(wǎng)大廠廣泛使用的分布式服務(wù)框架的抽象和實(shí)踐總結(jié),文中所涉及的技術(shù)點(diǎn),正是分布式服務(wù)框架的重點(diǎn)和難點(diǎn),與實(shí)際工作息息相關(guān)。
王楠w_n(Q5):近些年來,越來越多網(wǎng)站需要同時(shí)提供Web、移動(dòng)App、OpenAPI多種訪問方式,基于分布式服務(wù)的業(yè)務(wù)分治與復(fù)用需求越來越強(qiáng)烈,使用分布式服務(wù)構(gòu)建系統(tǒng)已經(jīng)成為互聯(lián)網(wǎng)開發(fā)的常用手段。但是分布式服務(wù)的關(guān)鍵技術(shù)有哪些?核心原理是什么?
李林峰(A5):在我看來,分布式服務(wù)框架的關(guān)鍵技術(shù)有三點(diǎn):
1) 底層遠(yuǎn)程服務(wù)調(diào)用使用的RPC框架,它負(fù)責(zé)鏈路的創(chuàng)建、跨網(wǎng)絡(luò)通信、消息的發(fā)送和接收、消息序列化和反序列化等。
2) 服務(wù)的調(diào)度和透明化路由,涉及到服務(wù)的發(fā)布和消費(fèi)、服務(wù)的透明化路由和軟負(fù)載,以及集群容錯(cuò)等。
3) 服務(wù)治理: 服務(wù)化之后,如何保障服務(wù)線上高效運(yùn)行,服務(wù)發(fā)生故障之后如何快速恢復(fù)業(yè)務(wù),需要一套功能強(qiáng)大和成熟的服務(wù)治理體系來保障服務(wù)的SLA。
分布式服務(wù)框架的核心原理并不復(fù)雜,它實(shí)際上是RPC框架的升華,為了解決應(yīng)用服務(wù)化之后面臨的種種問題和挑戰(zhàn),降低對(duì)業(yè)務(wù)層的侵入,提升服務(wù)的開發(fā)效率。以RPC框架為基礎(chǔ),把一些通用的服務(wù)化能力疊加進(jìn)來做整合,使各層有機(jī)結(jié)合起來形成一個(gè)整體,隨著服務(wù)的上線運(yùn)行,服務(wù)的治理和運(yùn)維能力逐漸被增強(qiáng),最后逐步演進(jìn)到了分布式服務(wù)框架。
王楠w_n(Q6):相較業(yè)界的分布式服框架,阿里Dubbo、淘寶HSF 、亞馬遜Coral Service,華為的優(yōu)勢(shì)在哪里?能否詳細(xì)介紹下這幾個(gè)框架的性能和優(yōu)缺點(diǎn)?
李林峰(A6):這幾款分布式服務(wù)框架都是各自領(lǐng)域的佼佼者,各有千秋。
阿里Dubbo的特點(diǎn)總結(jié)如下:
1)開源,除了阿里的聚劃算、來往等,被國內(nèi)很多公司使用,社區(qū)運(yùn)作比較成功。
2)比較成熟,在阿里內(nèi)部得到了大規(guī)模、廣泛的使用。
3)輕量級(jí),第三方依賴類庫較少,可以按需裁剪。不依賴具體的運(yùn)行容器,可以直接使用java main函數(shù)拉起來。
4)可擴(kuò)展,基于Java SPI機(jī)制,在通信協(xié)議、編解碼、Filter攔截器等多個(gè)層面提供了擴(kuò)展接口,用戶可以替換或者擴(kuò)展Dubbo框架自身的能力,例如當(dāng)當(dāng)擴(kuò)展實(shí)現(xiàn)的DubboX,新增了Restful協(xié)議等功能。
淘寶HSF沒有開源,但是作為淘寶3.0架構(gòu)的核心框架之一,被大家所熟知。它的核心特點(diǎn)總結(jié)如下:成熟穩(wěn)定、支持第三方類庫的隔離并具備強(qiáng)大的服務(wù)治理能力。
亞馬遜的Coral Service的特點(diǎn)總結(jié)如下:
1)與亞馬遜的其它基礎(chǔ)設(shè)施集成,實(shí)現(xiàn)DevOps。
2)全公司統(tǒng)一服務(wù)化開發(fā)框架,統(tǒng)一運(yùn)行平臺(tái),快速高效服務(wù)開發(fā)。
3)超大規(guī)模支持:幾十萬個(gè)服務(wù),成千上萬開發(fā)者同時(shí)使用,平均每秒鐘有1-2個(gè)服務(wù)部署。
4)服務(wù)由小團(tuán)隊(duì)(2 Pizza Team)負(fù)責(zé)服務(wù)開發(fā)、測(cè)試、部署、治理,運(yùn)維整個(gè)生命周期支撐。
相比于其它幾款分布式服務(wù)框架,華為的分布式服務(wù)框架基于電信運(yùn)營商的特點(diǎn)做了針對(duì)性的設(shè)計(jì)和優(yōu)化,例如高并發(fā)時(shí)的時(shí)延毛刺消除、服務(wù)調(diào)用的安全、電信級(jí)5個(gè)9可靠性保障等,以及歐美國家的法律合規(guī)性整改和隱私保護(hù)等,這些都是電信行業(yè)和華為全球交付模式的行業(yè)特點(diǎn),與互聯(lián)網(wǎng)公司內(nèi)部自己使用還是存在很大差異。
性能和優(yōu)缺點(diǎn)的對(duì)比在此不做詳細(xì)展開,不同的應(yīng)用場(chǎng)景和業(yè)務(wù)訴求,對(duì)分布式服務(wù)框架的需求也不同。脫離業(yè)務(wù)實(shí)際應(yīng)用場(chǎng)景直接做性能等特性對(duì)比是不合適的。
對(duì)于分布式服務(wù)框架,只有最合適的,沒有最好的。
王楠w_n(Q7):人們常說,解決問題不在于結(jié)果而在于過程。最后,請(qǐng)您聊下實(shí)際運(yùn)用設(shè)計(jì)框架的思想路徑。
李林峰(A7):相比于編碼,架構(gòu)的設(shè)計(jì)更加復(fù)雜和困難,但是一些方法和實(shí)踐可以分享給大家,拋磚引玉:
1)高屋建瓴,有所舍,有所得。聚焦在矛盾的主要方面,不要性能、功能、可靠性等都想做到最優(yōu),要能夠平衡好這些架構(gòu)要素。
2)切勿脫離業(yè)務(wù)的實(shí)際需求,架構(gòu)本質(zhì)上要為商業(yè)服務(wù),脫離業(yè)務(wù)實(shí)際的架構(gòu)是沒有商業(yè)價(jià)值的。
3)不要閉門造車,多參考業(yè)界標(biāo)桿產(chǎn)品的設(shè)計(jì)理念和優(yōu)秀實(shí)踐,吸收消化,為我所用。
4)不要試圖做一個(gè)完美的理想主義者,架構(gòu)設(shè)計(jì)亦如此。架構(gòu)是為商業(yè)服務(wù)的,它會(huì)隨著業(yè)務(wù)的發(fā)展由最初的不完美向完美逐步演進(jìn)。順其自然,而不是在設(shè)計(jì)之初就試圖打造最完美的架構(gòu)。
【福利來了】 什么?這就結(jié)束了……小伙伴們是不是有點(diǎn)意猶未盡呢?被著急,更大的福利來了!
下周二(1月26晚20點(diǎn),李老師將在我們IT架構(gòu)技術(shù)交流群(微信)中為大家主講《服務(wù)化架構(gòu)的演進(jìn)與實(shí)踐》,咱們不見不散~
即日起,關(guān)注chinaunix官方微信,回復(fù)關(guān)鍵字“W4",即可獲得入群方式喲!
qrcode_for_gh_8bf9f56e5acf_258(1).jpg (26.5 KB, 下載次數(shù): 1852)
下載附件
2016-01-19 14:32 上傳
|