知識點(diǎn):
1.微服務(wù):
微服務(wù)化的趨勢現(xiàn)在似乎有所展現(xiàn),具體的細(xì)節(jié)不講太多,我們就說一下他的特點(diǎn)。
一般框架式開發(fā)(比如java的ssh)是提供一套功能強(qiáng)大的MVC框架,主要的代碼基本寫在一個(gè)項(xiàng)目里。
在微服務(wù)的架構(gòu)和我們現(xiàn)在常見的框架式開發(fā)非常不同。
微服務(wù)是把業(yè)務(wù)拆的很細(xì),然后搞出很多很小的項(xiàng)目來。
用一個(gè)文章發(fā)布模塊舉個(gè)例子。
用戶向服務(wù)器post請求,提交了一篇文章。文章發(fā)布服務(wù)收到了用戶的的post,然后把其中header中的token取出來,然后向用戶驗(yàn)證API發(fā)出rest api請求,當(dāng)收到驗(yàn)證通過的返回值后,再進(jìn)行下一步。
可以看出一般在框架式開發(fā)中,代碼的共享是通過函數(shù)調(diào)用完成的,但是在微服務(wù)中,則是不同小項(xiàng)目之間通過REST API互相調(diào)用。
2.微服務(wù)引起的無服務(wù)器革命:
你可能聽過docker之類的框架,但是你聽說過aws lambda,或者云函數(shù)么?
aws現(xiàn)在推出了一款叫l(wèi)ambda的服務(wù),而他是這樣的:
用戶將一段較為短小的代碼放到lambda里,封裝成一個(gè)云函數(shù),而這個(gè)云函數(shù)它運(yùn)行在aws的集群之上。
當(dāng)這個(gè)云函數(shù)被觸發(fā)的時(shí)候,aws服務(wù)器的集群有多少資源,他就能跑多少份,而云函數(shù)沒被觸發(fā)的時(shí)候,代碼停在硬盤上,根本不要錢。
可見這個(gè)云函數(shù)的擴(kuò)展性簡直不能更贊。更贊的是你根本不用關(guān)心服務(wù)器的架構(gòu).........你把代碼放上去就行了,什么操作系統(tǒng),什么nginx和你沒關(guān)系。
這個(gè)技術(shù)被叫做serverless,無服務(wù)器革命。
順便提一下API GATEWAY這個(gè)東西。
如果每個(gè)云函數(shù)都要花時(shí)間和空間去解析http請求,然后還要負(fù)責(zé)https加密,最后還要壓縮http返回值的話,這個(gè)云函數(shù)就很難做的很小了。
所以提供云函數(shù)的云商都會提供一份API GATEWAY的服務(wù)。這個(gè)服務(wù)統(tǒng)一處理http協(xié)議相關(guān)的問題,然后根據(jù)用戶的api定義(swager)把參數(shù)傳遞給云函數(shù),而云函數(shù)只用接params和返回json就行了。
由于API GATEWAY的存在,所以他還附贈負(fù)載均衡,反DDOS,流量限制,log跟蹤等等等功能。。反正簡直驚了。
3. FPGA:
FPGA中文叫可編程邏輯模塊.
開發(fā)是通過特定的高級語言編程后,將邏輯編譯為數(shù)字電路,里面根本沒有指令集。
優(yōu)點(diǎn)是功耗低速度快,無論是吞吐還是延遲都非常贊。
單體購買較貴,但是被基礎(chǔ)云服務(wù)商大規(guī)模采購后,價(jià)格不貴。
缺點(diǎn)是語法較為復(fù)雜和冷門,受限于FPGA的特點(diǎn),他也燒不進(jìn)太復(fù)雜的邏輯,代碼量有限。
1 + 2 + 3 = ?
在傳統(tǒng)框架下,也許80%的調(diào)用集中在某個(gè)函數(shù)上,但是其他的代碼一樣會被加載進(jìn)內(nèi)存。
在微服務(wù)中,你的核心函數(shù)可以被實(shí)例化無數(shù)次,同時(shí)其他的冷門函數(shù)甚至沒有運(yùn)行。
假如你有個(gè)核心函數(shù)運(yùn)算量很大,大到能養(yǎng)活一塊FPGA。。。。這畫面太美。
關(guān)于支持和前景的問題:
微軟現(xiàn)在就在大規(guī)模使用FPGA,AZURE上每臺服務(wù)器都已經(jīng)安裝了FPGA的模塊,其用途是提供超高性能的虛擬網(wǎng)卡。
如果下一步,微軟的云函數(shù)多了一個(gè)選項(xiàng),那就是允許你上傳FPGA的代碼,并且以云函數(shù)的模式運(yùn)行。(雖然最少要吃一塊FPGA,因?yàn)槲也恢涝趺锤闾摂M化。)那么這個(gè)事情就成了。