又拍云张聪谈安全、HTTPS、自定义、CDN的未来趋势
近期,EGO對(duì)又拍云研發(fā)構(gòu)架師張聰進(jìn)行了專訪,在專訪中張聰闡述了他對(duì)CDN未來(lái)獨(dú)特的見(jiàn)解,聽(tīng)得小拍崇拜不已,趕忙為大家搬來(lái)采訪稿,大家快來(lái)跟小拍一起跟隨張聰了解一下CDN的未來(lái)吧!
\\專注于場(chǎng)景化CDN業(yè)務(wù)的又拍云,自創(chuàng)辦以來(lái),業(yè)務(wù)、團(tuán)隊(duì)一直在快速擴(kuò)張。在這個(gè)過(guò)程中,又拍云完成了技術(shù)選型、替換、迭代優(yōu)化等一系列工作,既有國(guó)內(nèi)較早引進(jìn)ngx_lua的壯舉,也難以避免地有踩過(guò)一些坑。EGO特別采訪了又拍云架構(gòu)師張聰,聽(tīng)他聊聊又拍云在基礎(chǔ)架構(gòu)方面的那些事兒,也聊聊關(guān)于CDN未來(lái)又有哪些可能。
\\下面是經(jīng)過(guò)編輯整理的采訪內(nèi)容:
\\EGO:先簡(jiǎn)單介紹一下自己吧?
\\\張聰:我4年前加入又拍云,之后一直從事CDN領(lǐng)域的工作,非常有幸經(jīng)歷了又拍云CDN從早期起步比較簡(jiǎn)陋、用戶量比較少的階段,到今天業(yè)務(wù)量不斷擴(kuò)大、技術(shù)體系不斷變革完善的整個(gè)發(fā)展過(guò)程。
\\最早團(tuán)隊(duì)小的時(shí)候,什么事都需要自己去做,像寫(xiě)代碼、上線、運(yùn)維等都得一個(gè)人搞定,現(xiàn)在CDN團(tuán)隊(duì)不斷擴(kuò)大,除了技術(shù)之外,我也開(kāi)始負(fù)責(zé)一些管理團(tuán)隊(duì)的工作,雖然中間也遇到了很多問(wèn)題,但也收獲了很多經(jīng)驗(yàn),也是跟著公司的變大不斷去適應(yīng)不同的挑戰(zhàn)。
\\\引入ngx_lua、二次開(kāi)發(fā)、開(kāi)源
\\EGO:能分享一下您在又拍云最有成就感的事嗎?
\\\張聰:公司成立以來(lái),又拍云業(yè)務(wù)一直在不斷快速擴(kuò)張,在這個(gè)從小變大的過(guò)程中,肯定需要對(duì)架構(gòu)進(jìn)行改造和升級(jí),否則就無(wú)法承受業(yè)務(wù)的增長(zhǎng),所以我們?cè)媾R了一些技術(shù)選型的問(wèn)題。
\\最早的時(shí)候,又拍云CDN用Nginx C模塊進(jìn)行業(yè)務(wù)開(kāi)發(fā),但它的維護(hù)成本很大。我們作為一家創(chuàng)業(yè)公司,就想選擇開(kāi)發(fā)盡可能方便、效率盡可能高的技術(shù),經(jīng)過(guò)多方考量之后,我們引入了ngx_lua項(xiàng)目。雖然當(dāng)時(shí)ngx_lua(下圖)在國(guó)內(nèi)沒(méi)那么普及,應(yīng)用也還不是很廣泛,但我們覺(jué)得它非常符合我們的需求,就把它引入到了又拍云的CDN開(kāi)發(fā)框架里了。
\\\\在創(chuàng)業(yè)公司,技術(shù)選型還是非常自由的,只要關(guān)鍵的核心技術(shù)人員能夠勝任某些新技術(shù),公司一般也會(huì)支持這些新技術(shù)以及架構(gòu)上的調(diào)整。
\\引入之后,其實(shí)也遇到過(guò)很多困難,因?yàn)閚gx_lua在國(guó)內(nèi)的使用不多,很多資料都偏向國(guó)外,國(guó)內(nèi)甚至很少能夠找到交流的人,包括招人的時(shí)候,也很難招到相關(guān)的技術(shù)人員。我們是先自己摸索,慢慢地把線上系統(tǒng)從舊模式替換到新的模式。同時(shí),我們也招了一些技術(shù)比較好的新人,從頭培養(yǎng),這樣持續(xù)半年、一年之后,他們就能適應(yīng)新的開(kāi)發(fā)方式。中間也踩了很多坑、付出了很多代價(jià),但當(dāng)我們都跨過(guò)去后,整個(gè)CDN業(yè)務(wù)基礎(chǔ)的開(kāi)發(fā)環(huán)境也就順利轉(zhuǎn)變過(guò)來(lái)了。
\\這樣,后續(xù)的開(kāi)發(fā)、功能邏輯的迭代、維護(hù)都比之前輕松了非常多,而且在之后很多CDN功能的演進(jìn)中,我們的效率都是比較高的。我們也總結(jié)出了很多文檔,能給新來(lái)的技術(shù)同學(xué)學(xué)習(xí),同時(shí),這個(gè)項(xiàng)目在國(guó)內(nèi)也越來(lái)越流行了,我們也能跟國(guó)內(nèi)同行有更多的交流。
\\現(xiàn)在回過(guò)頭來(lái)看,當(dāng)初把ngx_lua引進(jìn)公司,到后面CDN整個(gè)技術(shù)發(fā)展方向再到現(xiàn)在,這個(gè)選擇是非常正確的,整體加速了開(kāi)發(fā)節(jié)奏、節(jié)省了維護(hù)負(fù)擔(dān)。對(duì)我們這樣CDN領(lǐng)域的創(chuàng)業(yè)公司來(lái)說(shuō),就需要在條件有限的情況下選擇一項(xiàng)更高效的技術(shù)。
\\這也是我印象比較深刻的一件事,對(duì)技術(shù)人而言,能經(jīng)歷這種引入一個(gè)新技術(shù),到自己慢慢掌握它,再到能跟同行去分享,是非常有意義的一件事。
\\\EGO:現(xiàn)在還在沿用ngx_lua嗎?
\\\張聰:還在用。但官方更新不一定能滿足我們現(xiàn)在的需求,所以我們會(huì)在這個(gè)基礎(chǔ)上加入自己的東西,做二次開(kāi)發(fā)。
\\一開(kāi)始我們只是拿來(lái)用,之后業(yè)務(wù)復(fù)雜了,我們就自己去修改它、完善它,跟它一起開(kāi)發(fā)、發(fā)展。同時(shí),我們也陸續(xù)在github上開(kāi)源了幾個(gè)相關(guān)項(xiàng)目,回饋社區(qū)。
\\\EGO:能分享一下您踩過(guò)的坑、遇到的挑戰(zhàn)嗎?
\\\張聰:其實(shí)踩過(guò)很多坑,我講一個(gè)比較典型的。一般來(lái)講,CDN廠商承受的請(qǐng)求量、流量是非常大的,甚至遠(yuǎn)比中型站點(diǎn)的流量來(lái)得大。
\\在這個(gè)基礎(chǔ)上,我們做一些功能的改造、新功能的發(fā)布的時(shí)候,就會(huì)面臨很大的挑戰(zhàn)。特別是功能的改造,就像是在一輛行駛得很快的車(chē)上換零件,業(yè)務(wù)量越大越有這種感覺(jué),有些比較大的改造,往往還會(huì)涉及到系統(tǒng)的好幾層。因此,我們很難非常干凈利索地去做整個(gè)架構(gòu)的調(diào)整、演進(jìn),只能是做好整個(gè)調(diào)整計(jì)劃,然后把整個(gè)計(jì)劃拆成N片,一點(diǎn)一點(diǎn)去做推進(jìn),就好像一個(gè)一個(gè)零件做替換一樣。
\\其中,最大的痛苦是,因?yàn)镃DN上有很多緩存,如果更換某個(gè)“零件”的過(guò)程中一旦出了問(wèn)題,代價(jià)就會(huì)非常大。因?yàn)槌隋e(cuò)誤本身之外,這些錯(cuò)誤還會(huì)污染到CDN上一些緩存系統(tǒng),相當(dāng)于你除了要修復(fù)bug之外,還要把被污染的緩存部分挑出來(lái)、清理掉,這是非常讓人頭疼的一件事情。用數(shù)據(jù)開(kāi)發(fā)做比喻,就相當(dāng)于你的數(shù)據(jù)被污染了,你修復(fù)了bug之后,還要挑出那些被污染的數(shù)據(jù),再把它們修復(fù)掉。這個(gè)過(guò)程是非常費(fèi)心費(fèi)力,也非常折騰。
\這是讓我印象比較深刻的踩過(guò)的坑。又拍云也制定了各種方案,采取了人為的、系統(tǒng)的各種措施來(lái)減少這種事情發(fā)生的可能,比如現(xiàn)在我們改造之前,就需要經(jīng)過(guò)多個(gè)精心設(shè)計(jì)的流程、觀察各種數(shù)據(jù)指標(biāo),以保證過(guò)程的順利。
CDN服務(wù)的未來(lái):安全、可定制化、自主配置
\\EGO:能分享一下CDN領(lǐng)域未來(lái)的趨勢(shì)嗎?
\\\張聰:第一,CDN可能不僅僅是簡(jiǎn)單的加速,還需要有一些安全防護(hù)方面的功能。你的網(wǎng)站會(huì)不會(huì)被攻擊、別人是不是異常訪問(wèn)你的網(wǎng)站,這些都是CDN安全領(lǐng)域的內(nèi)容。特別是大客戶,他們對(duì)CDN安全方面的要求會(huì)非常高。同時(shí),因?yàn)镃DN是一張全國(guó)的網(wǎng),它承受攻擊的能力肯定要比用戶的一個(gè)源站、單個(gè)節(jié)點(diǎn)的能力來(lái)得高,所以CDN上可以做好多安全相關(guān)的產(chǎn)品。
\\又拍云也在完善CDN安全方面的產(chǎn)品,在去年就推出了應(yīng)用防火墻系統(tǒng),一些簡(jiǎn)單的注入攻擊、漏洞掃描,又拍云CDN網(wǎng)絡(luò)就能幫用戶擋掉這些風(fēng)險(xiǎn)。這是我覺(jué)得未來(lái)CDN發(fā)展的一個(gè)方向點(diǎn)。
\\第二,HTTPS是未來(lái)的趨勢(shì)。它的應(yīng)用會(huì)越來(lái)越廣泛,CDN也就需要對(duì)此做出相應(yīng)的變化。例如又拍云就推出了HTTPS CDN的動(dòng)態(tài)證書(shū)調(diào)度,用戶在我們后臺(tái)簡(jiǎn)單配置一下他的域名,然后上傳HTTPS證書(shū),幾秒之后就能全國(guó)生效,我們的邊緣節(jié)點(diǎn)就會(huì)進(jìn)行加載的證書(shū)、支持HTTPS訪問(wèn),非常方便。
\總結(jié)
以上是生活随笔為你收集整理的又拍云张聪谈安全、HTTPS、自定义、CDN的未来趋势的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: libuuid 安装
- 下一篇: NotificationListener