知識點:
1.微服務(wù):
微服務(wù)化的趨勢現(xiàn)在似乎有所展現(xiàn),具體的細節(jié)不講太多颅拦,我們就說一下他的特點蒂誉。
一般框架式開發(fā)(比如java的ssh)是提供一套功能強大的MVC框架,主要的代碼基本寫在一個項目里距帅。
在微服務(wù)的架構(gòu)和我們現(xiàn)在常見的框架式開發(fā)非常不同右锨。
微服務(wù)是把業(yè)務(wù)拆的很細,然后搞出很多很小的項目來碌秸。
用一個文章發(fā)布模塊舉個例子绍移。
用戶向服務(wù)器post請求,提交了一篇文章讥电。文章發(fā)布服務(wù)收到了用戶的的post蹂窖,然后把其中header中的token取出來,然后向用戶驗證API發(fā)出rest api請求恩敌,當收到驗證通過的返回值后瞬测,再進行下一步。
可以看出一般在框架式開發(fā)中,代碼的共享是通過函數(shù)調(diào)用完成的月趟,但是在微服務(wù)中灯蝴,則是不同小項目之間通過REST API互相調(diào)用。
2.微服務(wù)引起的無服務(wù)器革命:
你可能聽過docker之類的框架孝宗,但是你聽說過aws lambda绽乔,或者云函數(shù)么?
aws現(xiàn)在推出了一款叫l(wèi)ambda的服務(wù)碳褒,而他是這樣的:
用戶將一段較為短小的代碼放到lambda里,封裝成一個云函數(shù)看疗,而這個云函數(shù)它運行在aws的集群之上沙峻。
當這個云函數(shù)被觸發(fā)的時候,aws服務(wù)器的集群有多少資源两芳,他就能跑多少份摔寨,而云函數(shù)沒被觸發(fā)的時候,代碼停在硬盤上怖辆,根本不要錢是复。
可見這個云函數(shù)的擴展性簡直不能更贊。更贊的是你根本不用關(guān)心服務(wù)器的架構(gòu).........你把代碼放上去就行了竖螃,什么操作系統(tǒng)淑廊,什么nginx和你沒關(guān)系。
這個技術(shù)被叫做serverless特咆,無服務(wù)器革命季惩。
順便提一下API GATEWAY這個東西。
如果每個云函數(shù)都要花時間和空間去解析http請求腻格,然后還要負責https加密画拾,最后還要壓縮http返回值的話,這個云函數(shù)就很難做的很小了菜职。
所以提供云函數(shù)的云商都會提供一份API GATEWAY的服務(wù)青抛。這個服務(wù)統(tǒng)一處理http協(xié)議相關(guān)的問題,然后根據(jù)用戶的api定義(swager)把參數(shù)傳遞給云函數(shù)酬核,而云函數(shù)只用接params和返回json就行了蜜另。
由于API GATEWAY的存在,所以他還附贈負載均衡愁茁,反DDOS,流量限制蚕钦,log跟蹤等等等功能。鹅很。反正簡直驚了嘶居。
3. FPGA:
FPGA中文叫可編程邏輯模塊.
開發(fā)是通過特定的高級語言編程后,將邏輯編譯為數(shù)字電路,里面根本沒有指令集邮屁。
優(yōu)點是功耗低速度快整袁,無論是吞吐還是延遲都非常贊。
單體購買較貴佑吝,但是被基礎(chǔ)云服務(wù)商大規(guī)模采購后坐昙,價格不貴。
缺點是語法較為復(fù)雜和冷門芋忿,受限于FPGA的特點炸客,他也燒不進太復(fù)雜的邏輯,代碼量有限戈钢。
1 + 2 + 3 = 痹仙?
在傳統(tǒng)框架下,也許80%的調(diào)用集中在某個函數(shù)上殉了,但是其他的代碼一樣會被加載進內(nèi)存开仰。
在微服務(wù)中,你的核心函數(shù)可以被實例化無數(shù)次薪铜,同時其他的冷門函數(shù)甚至沒有運行众弓。
假如你有個核心函數(shù)運算量很大,大到能養(yǎng)活一塊FPGA隔箍。谓娃。。蜒滩。這畫面太美傻粘。
關(guān)于支持和前景的問題:
微軟現(xiàn)在就在大規(guī)模使用FPGA,AZURE上每臺服務(wù)器都已經(jīng)安裝了FPGA的模塊帮掉,其用途是提供超高性能的虛擬網(wǎng)卡弦悉。
如果下一步,微軟的云函數(shù)多了一個選項蟆炊,那就是允許你上傳FPGA的代碼稽莉,并且以云函數(shù)的模式運行。(雖然最少要吃一塊FPGA涩搓,因為我不知道怎么搞虛擬化污秆。)那么這個事情就成了。