9月26日趴生,在杭州云棲大會(huì)上各位專家分享了關(guān)于互聯(lián)網(wǎng)中間件的一些內(nèi)容谱仪。
互聯(lián)網(wǎng)中間件的演進(jìn)
首先是阿里云智能中間件首席架構(gòu)師李小平帶來的關(guān)于互聯(lián)網(wǎng)中間件演進(jìn)的分享。
互聯(lián)網(wǎng)中間件的發(fā)展得益于中國互聯(lián)網(wǎng)用戶的規(guī)模咆疗,規(guī)模變化使得同時(shí)服務(wù)幾億用戶成為挑戰(zhàn)波丰。而飛速發(fā)展的業(yè)務(wù)需要飛速發(fā)展的技術(shù)來支持,技術(shù)一旦上升一個(gè)數(shù)量級(jí),復(fù)雜度往往更大莺戒。
阿里本身中間件經(jīng)過一段時(shí)間的沉淀發(fā)展伴嗡,提出了Aliware互聯(lián)網(wǎng)Paas產(chǎn)品+中臺(tái)的思想,在各行業(yè)快速復(fù)制从铲。幫助客戶進(jìn)行業(yè)務(wù)創(chuàng)新瘪校。阿里目前基于互聯(lián)網(wǎng)中間件的業(yè)務(wù)架構(gòu)總體如下:
這種基于互聯(lián)網(wǎng)的中間件給我們帶來了什么呢?
- 業(yè)務(wù)規(guī)模: TRS和容量上支持海量業(yè)務(wù)規(guī)模
- 穩(wěn)定性提升:通過限流降級(jí)食店、灰度變更渣淤、高度冗余來保障穩(wěn)定性
- 彈性伸縮:支持分鐘級(jí)應(yīng)用實(shí)例創(chuàng)建和快速部署
但同時(shí)也面臨著新的挑戰(zhàn):
從互聯(lián)網(wǎng)中間件再往下該怎樣發(fā)展呢,我們選擇擁抱云原生吉嫩。云原生技術(shù)的關(guān)鍵點(diǎn)包括:
- 基于容器技術(shù)和k8s:應(yīng)用發(fā)布和集群管理更容易
- Service mesh技術(shù):多語言的微服務(wù)架構(gòu)
- Serverless技術(shù):Faas+Baas模式
云原生將極大的改變?cè)频氖褂梅绞剑啾纫酝募夹g(shù)來說嗅定,擁有以下優(yōu)點(diǎn):
- 高性能自娩、高可用:中間件能力向底層融合
- 簡化的編程范式:Serverless編程模型
- 可觀測性、安全性:運(yùn)維方式的影響
主要的價(jià)值體現(xiàn)在:
- 開發(fā)方式的改變:DevOps渠退、GitOps忙迁、應(yīng)用元數(shù)據(jù)定義;不同的業(yè)務(wù)場景選用最合適的語言和技術(shù)框架碎乃;面向服務(wù)編程姊扔,而非面向計(jì)算機(jī)編程。
- 部署模式的改變:公有云梅誓、私有云恰梢、混合云相同的部署模式;消除開發(fā)梗掰、測試嵌言、準(zhǔn)生產(chǎn)、生產(chǎn)環(huán)境的差異及穗;多種策略進(jìn)行灰度摧茴,減少線上風(fēng)險(xiǎn)。
- 運(yùn)行效率的提升:自動(dòng)的資源分配埂陆、隔離苛白、編排、調(diào)度焚虱;彈性伸縮和故障切換购裙,甚至故障自愈能力;基礎(chǔ)設(shè)施的運(yùn)維與應(yīng)用運(yùn)維分離著摔。
阿里關(guān)于云原生中間件的參考架構(gòu)如下:
阿里Serverless架構(gòu)演進(jìn)
接著許曉斌分享了阿里在線應(yīng)用的Serverless架構(gòu)演進(jìn)過程缓窜。
首先描述了阿里在線應(yīng)用的業(yè)務(wù)特定:
- 在線業(yè)務(wù)對(duì)響應(yīng)時(shí)間更敏感,一次用戶的請(qǐng)求產(chǎn)生幾十甚至上百次分布式調(diào)用,而最終的響應(yīng)時(shí)間直接影響轉(zhuǎn)化率禾锤。
- 應(yīng)用啟動(dòng)時(shí)間可能很長私股,幾百s甚至上千s。
- 在阿里JAVA語言是絕對(duì)的主流恩掷。
在業(yè)界倡鲸,Serverless技術(shù)分層分為3層:
- Runtime & Framework層:包括GraalVM、Spring Cloud Function
- DevOps層:主要是Knative
- Resource層:主要是Firecracker
行業(yè)發(fā)展的特定包括:
- 以Faas為Serverless的主流形式黄娘,雖然限制非常多
- Java并不是業(yè)界Serverless的一等公民峭状,畢竟啟動(dòng)速度太慢,而GraalVM正致力于降低Java應(yīng)用冷啟動(dòng)速度逼争。
- 提倡開源优床,包括Knative在內(nèi)的Serverless開源組件都在社區(qū)內(nèi)流行。
- 傳統(tǒng)容器技術(shù)不足以滿足安全需求誓焦,所以輕量級(jí)安全沙箱技術(shù)得以迅速發(fā)展胆敞。
通過實(shí)際業(yè)務(wù)情況和業(yè)界的對(duì)比可以發(fā)現(xiàn),關(guān)鍵難點(diǎn)在于如何保證在需要的時(shí)候在極短的時(shí)間(毫秒級(jí))分配好資源杂伟、啟動(dòng)應(yīng)用移层、保證服務(wù)可用。而實(shí)現(xiàn)該目標(biāo)后赫粥,才得以讓多個(gè)應(yīng)用錯(cuò)峰使用同一臺(tái)機(jī)器观话,這也正是Serverless模式比Book模式的優(yōu)勢點(diǎn)。
我們主要使用多級(jí)彈性能力和快照技術(shù)來完成該目標(biāo)越平。
快照技術(shù)則需要在1:1和1:N之間進(jìn)行取舍
阿里整體的Serverless架構(gòu)如下:
互聯(lián)網(wǎng)中間件助力企業(yè)上云
接下來主要是企業(yè)關(guān)于上云的經(jīng)驗(yàn)分享频蛔,其中比較重點(diǎn)地推薦了阿里云微服務(wù)應(yīng)用托管平臺(tái)EDAS。
阿里云目前提供的企業(yè)級(jí)互聯(lián)網(wǎng)架構(gòu)包括:
EDAS作為微服務(wù)托管平臺(tái)也是比較核心的產(chǎn)品喧笔,融合了配置管理帽驯、限流降級(jí)、負(fù)載均衡书闸、流量控制尼变、服務(wù)注冊(cè)與發(fā)現(xiàn)以及服務(wù)安全等功能。與開源應(yīng)用相比浆劲,主要優(yōu)勢在于融合集成了諸多能力嫌术,包括0成本接入全鏈路跟蹤、支持限流降級(jí)動(dòng)態(tài)配置牌借、支持配置管理并可實(shí)時(shí)推送等度气。而使用開源軟件,意味著你需要自己搭配使用Dubbo膨报、SkyWalking磷籍、Sentinel适荣、Narcos等組件,沒有開箱即用來得方便院领。
EDAS除了常規(guī)功能外弛矛,比較有特點(diǎn)的功能包括
接下來稍微講了一下全鏈路灰度的功能在企業(yè)中的應(yīng)用,包括實(shí)現(xiàn)全鏈路壓測的部分功能(流量打標(biāo)透傳)以及全鏈路灰度集成環(huán)境(主要是抽象了一個(gè)類似泳道的概念比然,應(yīng)用灰度通過打標(biāo)自動(dòng)實(shí)現(xiàn)而無需單獨(dú)配置)丈氓。
阿里云全面支持SkyWalking
SkyWalking是一款開源的APM框架,是Apache頂級(jí)項(xiàng)目强法。阿里云目前通過OpenTracing協(xié)議兼容万俗,支持了SkyWalking探針接入,主要優(yōu)點(diǎn)是無需關(guān)心背后的ES運(yùn)維以及一些功能上的增強(qiáng)饮怯。
功能增強(qiáng)主要包括了監(jiān)控闰歪、診斷、分析硕淑、報(bào)警四個(gè)部分课竣。
感想
互聯(lián)網(wǎng)中間件應(yīng)該是轉(zhuǎn)型到云原生中間件了,擁抱k8s置媳、serviceMesh以及serverless,關(guān)于這三點(diǎn)對(duì)我目前的認(rèn)知水平來說是有些挑戰(zhàn)的公条。大會(huì)上這三點(diǎn)只提到了serverless拇囊,這確實(shí)是比較新的技術(shù)九府,在復(fù)用開源組件外逝钥,對(duì)于JAVA應(yīng)用來說核心的改進(jìn)點(diǎn)在于應(yīng)用的極速啟動(dòng)。
阿里的云平臺(tái)產(chǎn)品基本都是集成了很多組件能力了撒顿,EDAS看起來就至少包括了分布式服務(wù)框架关霸、負(fù)載均衡組件传黄、配置中心、分布式鏈路追蹤队寇、應(yīng)用容器技術(shù)以及穩(wěn)定性相關(guān)的彈性伸縮膘掰、限流降級(jí)、統(tǒng)一開關(guān)等功能或組件佳遣。著重提到的鏈路壓測以及集成灰度识埋,一般功能完善的服務(wù)框架也都可以支持,或者改造起來并不困難零渐。
至于Skywalking窒舟,使用JAVA探針模式真的很方便擴(kuò)展和集成,很有先見之明诵盼。阿里云的功能增強(qiáng)方面主要包括tag聚合分析以及上下游拓?fù)涔δ芑莶颍旧弦仓饕欠?wù)端產(chǎn)品層面的功能完善银还。