javascript
进击的 Spring Cloud Alibaba —— 框架与服务
作者 | 陳曦(良名) ?Spring Cloud Alibaba 項(xiàng)目成員,start.aliyun.com 負(fù)責(zé)人。
導(dǎo)讀:本文整理自作者于 2020 年云原生微服務(wù)大會(huì)上的分享《進(jìn)擊的 Spring Cloud Alibaba —— 框架與服務(wù)》,主要闡述了云原生環(huán)境下,Spring Cloud Alibaba 如何幫助開發(fā)者實(shí)現(xiàn)微服務(wù);以及在提供 SCA 開發(fā)框架基礎(chǔ)之上,如何配合更豐富的服務(wù)來幫助開發(fā)者在阿里云上實(shí)現(xiàn)微服務(wù)。
阿里巴巴云原生公眾號(hào)后臺(tái)回復(fù)?818?即可獲取直播回看地址和大會(huì) PPT 合集。
Spring Cloud Alibaba 微服務(wù)框架
1. Spring Based Framework 已經(jīng)成為事實(shí)標(biāo)準(zhǔn)
根據(jù) Jakarta 2019 年的調(diào)研報(bào)告,Spring Boot 擁有非常高的占比。熟悉 Java 語言的同學(xué),應(yīng)該對 Spring 框架都不會(huì)陌生。其倡導(dǎo)的依賴倒置、面向切面編程等特性已經(jīng)形成了 Java 語言的事實(shí)標(biāo)準(zhǔn),幾乎所有三方框架都會(huì)提供對 Spring 框架的支持。
根據(jù) JetBrings 2019 年的調(diào)研報(bào)告,61% 的用戶會(huì)選擇 Spring Boot 來代替?zhèn)鹘y(tǒng)的應(yīng)用服務(wù)器。
這里有一個(gè)很有意思的點(diǎn),為什么要“代替應(yīng)用服務(wù)器”呢?回顧前面云原生的特點(diǎn),我們要彈性,要自包含,要獨(dú)立進(jìn)程等等。如果此時(shí)部署應(yīng)用還需需要啟動(dòng)應(yīng)用服務(wù)器會(huì)將整個(gè)依賴層級(jí)復(fù)雜化。同時(shí),云原生的各種彈性與調(diào)度能力,都同傳統(tǒng)的應(yīng)用服務(wù)器存在重疊。直接使用 Spring Boot 作為應(yīng)用啟動(dòng)入口就成為更加“云原生”的選擇。
回到微服務(wù)&云原生這個(gè)場景的下,Spring 提供用來支持開發(fā)工作的框架就是 Spring Cloud。
2. Spring Cloud 以微服務(wù)為核心的分布式系統(tǒng)構(gòu)建標(biāo)準(zhǔn)
同樣,還是先看下 Spring 是如何定義 Spring Cloud 這套框架的:
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
這里提到了兩個(gè)關(guān)重要特征:
- 分布式系統(tǒng)中的常見模式
- 任何分布式環(huán)境
“分布式系統(tǒng)中的常見模式”給了 Spring Cloud 一個(gè)清晰的定位,即“模式”。也就是說 Spring Cloud 是針對分布式系統(tǒng)開發(fā)所做的通用抽象,是標(biāo)準(zhǔn)模式的實(shí)現(xiàn)。這個(gè)定義非常抽象,看完之后并不能知道 Spring Cloud 具體包含什么內(nèi)容。再來看一下 Spring 官方給出的一個(gè) High Light 的架構(gòu)圖,就可以對這套模式有更清晰的認(rèn)識(shí):
可以看到這個(gè)圖中間就是各個(gè) Microservice,也就是我們的這個(gè)微服務(wù)的實(shí)現(xiàn),周邊周圍的話就是去圍繞這個(gè)微服務(wù)來去做各種輔助的信息事情。例如分布式追蹤、服務(wù)注冊、配置服務(wù)等,都繞微服務(wù)運(yùn)行時(shí)所依賴的必不可少的的支持性功能。我們可以得出這樣一個(gè)結(jié)論:Spring Cloud 是以微服務(wù)為核心的分布式系統(tǒng)的一個(gè)構(gòu)建標(biāo)準(zhǔn)。
3. Spring Cloud Alibaba 的定位
既然說 Spring Cloud 是標(biāo)準(zhǔn),那么自然少不了針對標(biāo)準(zhǔn)的實(shí)現(xiàn)。這里,為大家介紹下 Spring Cloud Alibaba 這套實(shí)現(xiàn)。先給出下面這張圖幫助大家理解 Spring Cloud Alibaba 的定位:
這里給大家這么一個(gè)公式,這個(gè)叫做:“3 加 2”。
3 指的就是圖中深色的部分,其實(shí)它就是 Spring Cloud 標(biāo)準(zhǔn),一共有 3 層。中間顏色最深的部分就是及整個(gè)微服務(wù)最核心的內(nèi)容,包括了“ RPC 調(diào)用”以及“服務(wù)注冊與發(fā)現(xiàn)”。第二層,也就是圍繞著核心的這一圈,是一些輔助微服務(wù)更好的工作功能,包括了負(fù)載均衡、路由、網(wǎng)關(guān)、斷路器,還有就是追蹤等等這些內(nèi)容。再外層的話,主要是一些分布式云環(huán)境里通用能力。
“3 加 2”中的“2”,指的就是上圖中最外面這一圈。這一部分就是這個(gè)我們 Spring Cloud Alibaba 的一個(gè)定義,它其實(shí)包含兩個(gè)部分的內(nèi)容:
右上部分是對于 Spring Cloud 標(biāo)準(zhǔn)的實(shí)現(xiàn)。例如,我們通過 Dubbo 實(shí)現(xiàn)了 RPC 調(diào)用功能,通過 Nacos 實(shí)現(xiàn)了“服務(wù)注冊與發(fā)現(xiàn)”、“分布式配置”,通過 Sentinel 實(shí)現(xiàn)了斷路器等等,這里就不一一列舉了。
左下部分是我們 Spring Cloud Alibaba 對阿里云各種服務(wù)的集成。可能很多同學(xué)會(huì)有這樣的一個(gè)問題:為什么要加上這一部分呢?此時(shí)回頭審視一下 Spring Cloud ,它僅僅是一個(gè)微服務(wù)的一個(gè)框架。但是在實(shí)際生產(chǎn)過程中,單獨(dú)使用微服務(wù)框架其實(shí)并不足以支撐我們?nèi)?gòu)建一個(gè)完整的系統(tǒng)。所以這部分是用阿里幫助開發(fā)者完成微服務(wù)以外的云產(chǎn)品集成的功能。
這里可能會(huì)很多同學(xué)會(huì)有這么一個(gè)擔(dān)心:是不是使用了 Spring Cloud Alibaba,就會(huì)被阿里云平臺(tái)綁定呢?在此,我們明確的告訴大家,這是不會(huì)的。為什么這么說呢?如上面說的,“3 加 2”中的 2 是被分為兩個(gè)部分的。其中對 Spring Cloud 的實(shí)現(xiàn)是完全獨(dú)立的,開發(fā)者可以只是用這部分實(shí)現(xiàn)運(yùn)行在任何云平臺(tái)中。當(dāng)然,另一部分,由于天然是對阿里云服務(wù)的集成,這部分是和平臺(tái)相關(guān)的。這里給開發(fā)者充分的自由,選擇只是用其中的部分還是全部產(chǎn)品。當(dāng)然,我們也非常歡迎開發(fā)者選擇使用阿里云的全套服務(wù),我們也會(huì)盡量保證使用整套產(chǎn)品時(shí)的連貫性與開發(fā)的便利性。
4. Spring Cloud 各套實(shí)現(xiàn)對比
Spring Cloud 作為一套標(biāo)準(zhǔn),它的實(shí)現(xiàn)肯定不止一套,那么各套實(shí)現(xiàn)都有什么區(qū)別呢?我們來一起看一下下面這張圖:
可以發(fā)現(xiàn) Spring Cloud Alibaba 是所有的實(shí)現(xiàn)方案中功能最齊全的。尤其是在 Netflix 停止更新了以后,Spring Cloud Alibaba 依然在持續(xù)更新和迭代。
從 18 年 7 月份 Spring Cloud Alibaba 正式提交代碼開始,就得到了大家廣泛的關(guān)注。截止今天,Spring Cloud Alibaba 一共獲得了超過了 1.5 萬的 star 數(shù),已經(jīng)的領(lǐng)先于所有其他實(shí)現(xiàn)的總和。
根據(jù)今年 X-lab 開放實(shí)驗(yàn)室剛剛發(fā)布的《2020 年微服務(wù)領(lǐng)域開源數(shù)字化報(bào)告》,Spring Cloud Alibaba 已經(jīng)成為最活躍的 Spring Cloud 實(shí)現(xiàn)。
數(shù)據(jù)來源《2020 年微服務(wù)領(lǐng)域開源數(shù)字化報(bào)告》,公眾號(hào)后臺(tái)回復(fù)關(guān)鍵詞“微服務(wù)報(bào)告”獲取報(bào)告全文。
5. Spring Cloud Alibaba 生態(tài)
作為一個(gè)云廠商,我們提供的服務(wù)是非常豐富的。可以看到除了圍繞著 Spring Cloud 的標(biāo)準(zhǔn)實(shí)現(xiàn)以外,還有包括的數(shù)據(jù)、資源、消息、緩存等各種類型的服務(wù)。在不同類型的服務(wù)下,也有很多具體的產(chǎn)品可供用戶選擇。
這里羅列典型而非全部產(chǎn)品。更多的內(nèi)容,可以參考阿里云官網(wǎng)
6.?Spring Cloud Alibaba 用戶數(shù)
截止到今天,Spring Cloud Alibaba 獲得了數(shù)超過 1.5w 的 star 數(shù)。同時(shí)在 Github 上的項(xiàng)目依賴,就是對 Spring Cloud Alibaba 產(chǎn)生依賴關(guān)系的產(chǎn)品,也超過了 6000。最重要的,使用 Spring Cloud Alibaba 的公司超過 1000 家。當(dāng)然不只是外部的公司在使用,我們自己其實(shí)也在使用。那經(jīng)過了雙十一的洗禮,其實(shí)整個(gè)這套框架它的這個(gè)穩(wěn)定性可靠性都得到了印證。
從框架到服務(wù)
1.?提供開發(fā)者服務(wù),更完整的 Java 開發(fā)體驗(yàn)
作為一套框架,Spring Cloud Alibaba 為開發(fā)者提供了便捷的編程模型,但是從開發(fā)者完整的工作流程上看,是不是還缺點(diǎn)什么?設(shè)想一下這樣一個(gè)場景:作為一個(gè)開發(fā)者,應(yīng)該說都做過這樣的一個(gè)事情,就是從頭從零開始去構(gòu)建一個(gè)工程,一直到功能開發(fā)這么一個(gè)過程的一個(gè)過程:
從設(shè)計(jì)到功能開發(fā),是一個(gè)比較長的一個(gè)周期的:先要做抽象設(shè)計(jì),包括概要設(shè)計(jì)、架構(gòu)設(shè)計(jì)等;然后是一些具象的設(shè)計(jì),還有各種框架搭建與架構(gòu)驗(yàn)證等工作。
在抽象設(shè)計(jì)階段,我們要確定整體的架構(gòu)模式,包括了微服務(wù)、Serverless、事件驅(qū)動(dòng)等。以及在這些架構(gòu)模式下各個(gè)應(yīng)用的領(lǐng)域邊界劃分。
在具象設(shè)計(jì)階段,我們要確定諸如應(yīng)用分層、分包規(guī)則的。這里也有很多的標(biāo)準(zhǔn)可以參考:MVC 分層架構(gòu)、DDD 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)架構(gòu)等等。在此之后,還有具體的業(yè)務(wù)模型與接口設(shè)計(jì),這些暫不在本文的討論范圍之內(nèi)。
在實(shí)現(xiàn)階段,需要引入各種框架,并通過配置將這些框架與應(yīng)用集成起來,完成工程骨架的創(chuàng)建。
最后,還需要將這套骨架運(yùn)行起來以驗(yàn)證其可行性。
所有上面的工作完成以后,才可以正式的開始業(yè)務(wù)邏輯實(shí)現(xiàn)工作。
在上面的流程里,Spring Cloud Alibaba 能起到的作用是有限的。作為一套框架,為開發(fā)者帶來的是編程模型上的便利。為了能讓開發(fā)者更加輕松的完成這一系列流程,我們?yōu)榇蠹規(guī)韮蓚€(gè)重要的產(chǎn)品:“Java 工程腳手架”和 “Sandbox 云沙箱”。
2. Java 工程腳手架:更適合亞太區(qū) Java 開發(fā)者的腳手架
很多開發(fā)者應(yīng)該跟我一樣,都有過這樣的經(jīng)歷:創(chuàng)建新應(yīng)用時(shí),先找一個(gè)我們最熟悉的一個(gè)老應(yīng)用,把它里邊的業(yè)務(wù)代碼全部清理干凈。然后相關(guān)的各種配置名稱全部改掉,最終做出一個(gè)空的一個(gè)應(yīng)用模板。再把這個(gè)應(yīng)用模板拿過來改個(gè)名子,就變成了一個(gè)新的應(yīng)用。
當(dāng)然可能有的同學(xué)會(huì)做的更多一些,例如長期維護(hù)這么一個(gè)空白模板在那里。下次拿過出來之后再改改個(gè)名字,就是一個(gè)新的應(yīng)用。
這樣做可能是一個(gè)相對保險(xiǎn)的方案,但是缺點(diǎn)也非常明顯:
- 版本老舊,新特性無法享受
- 團(tuán)隊(duì)知識(shí)無法沉淀
- 重復(fù)勞動(dòng)
我們通過提供 Java 工程腳手架來解決這個(gè)問題。下面就是 Java 工程腳手架的頁面:
在這里,開發(fā)者設(shè)置項(xiàng)目的基本信息,例如:開發(fā)語言、Java 版本、Spring Boot 版本等內(nèi)容。
除了基本信息以外,這個(gè)平臺(tái)還提供多種架構(gòu)模式可供選擇。在上圖中可以看到,第一個(gè)是分層架構(gòu),這個(gè)是一個(gè)很傳統(tǒng)的多層架架構(gòu)模型,包括我們經(jīng)常說的這種三層架構(gòu)、五層架構(gòu)。另一個(gè)架構(gòu)選項(xiàng)是 COLA。COLA 其實(shí)是一個(gè)典型的一個(gè) DDD 的架構(gòu),如果希望在自己團(tuán)隊(duì)里邊去實(shí)踐標(biāo)準(zhǔn)的六邊形 DDD 架構(gòu)的話,也是可以去選擇他。未來我們可能會(huì)去做更多的例如說 MVC 架構(gòu),或者是事件驅(qū)動(dòng)的架構(gòu)模型,提供給大家。
最下邊是組價(jià)依賴部分,開發(fā)者可以在這里選擇項(xiàng)目需要使用的組件。這里的選擇非常豐富,到從數(shù)據(jù)庫到開發(fā)工具、消息、web 等等,一共 100+ 的組價(jià)可供大家選擇,可以說基本上覆蓋了應(yīng)用開發(fā)的所有方面。同時(shí),這里當(dāng)然不會(huì)缺失 Spring Cloud Alibaba 提供的任何組件。
我們希望通過這個(gè)工具,盡量減少開發(fā)者在創(chuàng)建應(yīng)用過程中各種查詢資料以及繁瑣的配置工作。只需要在平臺(tái)上做一些簡單的選擇,就可以將工程骨架生成完成。
在 Java 工程腳手架里,除了直接在 WEB 平臺(tái)配置和下載工程,我們還提供了基于 IDE 的插件,進(jìn)一步方便用戶的使用。
經(jīng)常光顧 Spring 的同學(xué),應(yīng)該對這個(gè)界面應(yīng)該非常熟悉,這和 Spring 官方提供的腳手架非常相似。那么我們的工程腳手架和 Spring 官方的實(shí)現(xiàn)有什么區(qū)別呢?是不是就是對官方功能的鏡像呢?我們看一下下面的對比:
區(qū)別主要在如下幾個(gè)方面:
-
樣例代碼 & 典型配置:Spring 官方其實(shí)是沒有這些樣例代碼以及配置漏記的。在我們的實(shí)現(xiàn)里,會(huì)添加這一部分,目前主要覆蓋了 Spring Cloud Alibaba 的組件,后面會(huì)繼續(xù)覆蓋更多的組件;
-
阿里云組件支持:Spring 要保證平臺(tái)中立的特性,各廠商的組件自然是不會(huì)支持的,我們提供 Spring Cloud Alibaba 的全部開源組件和阿里云平臺(tái)服務(wù)組件,同時(shí)也會(huì)把這些部分獨(dú)立出來,避免同其他部分的組件揉在一起,影響用戶選擇;
-
工具鏈:Spring 官方的實(shí)現(xiàn)里,例如 IDEA 的插件是專業(yè)版里才有,也就是說這是收費(fèi)的,我們使用 Cloud Tookits 插件實(shí)現(xiàn)相關(guān)功能,并且完全免費(fèi),同時(shí),我們的平臺(tái) 100% 支持官方插件鏈接;
-
網(wǎng)絡(luò)環(huán)境:Spring 官方服務(wù)部署在國外,國內(nèi)訪問不穩(wěn)定;
-
應(yīng)用架構(gòu):這部分在官方實(shí)現(xiàn)里是沒有的,也是我們未來會(huì)重點(diǎn)建設(shè)的部分,應(yīng)用架構(gòu)在實(shí)際生產(chǎn)過程中是不可或缺的。
這套本地化的腳手架也獲得了 Spring 官方布道師 Josh Long 的推薦。我們會(huì)盡量延續(xù) Spring initiliazr 的產(chǎn)品體驗(yàn),功能上我們只做增量,同時(shí)這個(gè)增量給用戶保留了充分的選擇的自由權(quán)益。就是說我們增加這個(gè)東西,你可以完全不要,此時(shí)整體上和官方提供的產(chǎn)品體驗(yàn)是一模一樣的,這是我們整個(gè)產(chǎn)品的繼續(xù)發(fā)展會(huì)一直堅(jiān)持的原則。
3. Sandbox 云沙箱:免費(fèi)、快速驗(yàn)證云產(chǎn)品
第二個(gè)服務(wù)產(chǎn)品,就是我們的 Sandbox 云沙箱。我們來設(shè)想這樣一個(gè)場景:今天創(chuàng)建一個(gè)新的應(yīng)用,在基礎(chǔ)骨架代碼開發(fā)完成以后,需要去運(yùn)行它,以驗(yàn)證它的可行性或者是發(fā)現(xiàn)其中有沒有坑,此時(shí)定需要一個(gè)運(yùn)行環(huán)境。我如果自己去搭建完整的后臺(tái)服務(wù)運(yùn)行環(huán)境,要么選擇從云服務(wù)商購買,要么自己本地搭建。這兩個(gè)選擇一個(gè)費(fèi)錢、一個(gè)費(fèi)力。
除了驗(yàn)證新應(yīng)用的架構(gòu),還有很多其他場景也會(huì)有類似的困難。例如,需要驗(yàn)證一個(gè)云服務(wù)產(chǎn)品的可行性,學(xué)習(xí)相關(guān)組價(jià)的使用等等。
那么有沒有什么更好的辦法呢?這就是 Sandbox 云沙箱需要解決的問題。
這個(gè)產(chǎn)品有三個(gè)主要的特性:便捷、真實(shí)和免費(fèi)。
-
便捷:我們?yōu)橛脩魷?zhǔn)備了相關(guān)代碼&開發(fā)環(huán)境&運(yùn)行環(huán)境,只需要點(diǎn)點(diǎn)鼠標(biāo)就可以完成整個(gè)項(xiàng)目的創(chuàng)建,并部署在我們提供的隔離環(huán)境中,中間過程甚至不需要鍵盤;
-
真實(shí):指的是整個(gè)產(chǎn)品非常貼近實(shí)際工作場景,從開發(fā)者角度看,整個(gè)項(xiàng)目研發(fā)流程,包括代碼 checkout / checkin,開發(fā)工具,編譯流程、部署流程等,使用的都是真實(shí)生產(chǎn)流程;從運(yùn)行時(shí)角度看,所有的底層服務(wù)使用的都是阿里云提供的真實(shí)服務(wù),沒有任何單獨(dú)定制的服務(wù)存在;
-
免費(fèi):所有的服務(wù)不會(huì)像用戶收取費(fèi)用,甚至所有計(jì)費(fèi)行為的發(fā)生,都不會(huì)跟用戶的賬號(hào)發(fā)生關(guān)聯(lián)。
這套產(chǎn)品支持完整的分布式場景。很多其他的廠商也有類似的產(chǎn)品,但是都只能提供基于單一容器或者主機(jī)的案例,這和實(shí)際環(huán)境中多應(yīng)用的分布式環(huán)境是有差距的。而這個(gè)問題,在我們的沙箱產(chǎn)品里是不用擔(dān)心的。開發(fā)者在應(yīng)用部署后的項(xiàng)目有半小時(shí)的使用時(shí)間,同時(shí)流量&并發(fā)數(shù)等也會(huì)存在一定的限制。
下面來看一下產(chǎn)品的界面:
左邊是產(chǎn)品的手冊 & 說明部分。這里會(huì)包含說當(dāng)前項(xiàng)目的功能說明、應(yīng)用架構(gòu),以及如何部署和訪問這些應(yīng)用的操作步驟等。一些項(xiàng)目中使用到的技術(shù)點(diǎn)以及這些相關(guān)知識(shí),也都會(huì)在這里呈現(xiàn)給用戶。這部分文檔的目的,就是方便用戶去學(xué)習(xí)和理解當(dāng)前的案例。
右邊的部分是應(yīng)用列表。在微服務(wù)場景下,一個(gè)完整的產(chǎn)品通常需要多個(gè)應(yīng)用組成分布式的集群協(xié)同工作。這里就是用來陳列相關(guān)的應(yīng)用列表,同時(shí)包含了針對這些應(yīng)用的操作入口。
圖片中的案例是一個(gè)任務(wù)管理器產(chǎn)品,功能相對簡單。但是麻雀雖小五臟俱全。這個(gè)產(chǎn)品包含兩個(gè)應(yīng)用:
- 一個(gè)服務(wù)端,的包含了這個(gè)任務(wù)管理器的所有業(yè)務(wù)邏輯,以及下層的持久化能力等;
- 一個(gè) WEB 客戶端,包含了所有前端頁面邏輯、與前端通信的控制器層。
這兩個(gè)應(yīng)用通過一個(gè)注冊中心來實(shí)現(xiàn)服務(wù)的注冊&發(fā)現(xiàn)。最終實(shí)現(xiàn)一個(gè)完整的任務(wù)管理器產(chǎn)品。
點(diǎn)擊“開發(fā)”按鈕,打開一個(gè) WEB-IDE 來查看和修改對應(yīng)應(yīng)用的代碼:
這個(gè) WEB-IDE 和開發(fā)者日常使用的 IDE 是一樣的,都是左側(cè)代碼樹,右側(cè)代碼編輯器的標(biāo)準(zhǔn)布局。即使是不熟悉這個(gè)產(chǎn)品的用戶,也可以非常快的上手,甚至不需要學(xué)習(xí)過程。如果需要部署這個(gè)應(yīng)用,只需要在“運(yùn)維”功能下,點(diǎn)擊“部署”按鈕,此時(shí)只需要等待部署完成即可。在部署過程會(huì)有很多的日志輸出,都可以通過“輸出”窗體瀏覽:
部署完成以后,會(huì)向 WEB-IDE 返回一個(gè)訪問地址,開發(fā)者只需要點(diǎn)擊這和地址就可以訪問這個(gè)應(yīng)用。下圖是實(shí)際的訪問效果。可以看到,兩個(gè)應(yīng)用,一個(gè)是任務(wù)管理器的 web 操作頁面、一個(gè)是后臺(tái)數(shù)據(jù)庫管理頁面:
通過上面的步驟,開發(fā)者可以將案例快速部署起來。先部署試用,然后去學(xué)習(xí)和修改代碼,最后再部署驗(yàn)證。通過這樣的循環(huán),可以讓開發(fā)者很快學(xué)習(xí)和理解案例的功能和相關(guān)技術(shù)點(diǎn)。
最后再看一下整個(gè)沙箱的系統(tǒng)架構(gòu)流程以及一些關(guān)鍵點(diǎn):
通過顏色,可以很清楚地看到,沙箱的資源被分為兩個(gè)部分。藍(lán)色的部分其實(shí)是用戶獨(dú)享的資源,包括了:私有代碼倉庫、部署流程、運(yùn)行環(huán)境等。這一部分在每個(gè)用戶間相互隔離。尤其是在右下角可以看到,完整的運(yùn)行環(huán)境被隔離在獨(dú)立的專有網(wǎng)絡(luò)中。如果是多個(gè)應(yīng)用,這些應(yīng)用都會(huì)鏈接再同一個(gè)網(wǎng)絡(luò)里邊。橙色的部分是公共的資源,這里只有 2 個(gè):案例代碼倉庫和沙箱后臺(tái)服務(wù)。
第二組概念是:臨時(shí)資源和長期資源。
臨時(shí)資源,包括部署流程和運(yùn)行流程在內(nèi)。這些資源會(huì)在一段時(shí)間后會(huì)被銷毀,從而保證整個(gè)產(chǎn)品成本的可控,也避免部分用戶對這套產(chǎn)品的濫用。如果需要在資源釋放以后,繼續(xù)使用,只需要重新部署這個(gè)應(yīng)用即可。長期資源的就是會(huì)長期存續(xù)的資源。可以看到,用戶的私有代碼倉庫就是長期資源。也就是說,無論運(yùn)行環(huán)境是否存續(xù),用戶的代碼都會(huì)一直得到保留。這部分代碼,用戶可以隨時(shí)下載到自己本地,并在自己的環(huán)境中運(yùn)行它們。
后續(xù)規(guī)劃
下面是今年,整個(gè) Spring Cloud Alibaba 以及相關(guān)服務(wù)產(chǎn)品的整體規(guī)劃:
后續(xù)我們會(huì)基于 Sandbox 云沙箱上線七天系列課程。通過這個(gè)基礎(chǔ)知識(shí)學(xué)習(xí)+實(shí)操來更好的掌握微服務(wù)的相關(guān)技術(shù),尤其是對 Spring Cloud Alibaba 的使用。未來還會(huì)在沙箱中上線完整的電商商場的案例,包括具有高并發(fā)場景的秒殺案例。最后,對 Spring Cloud Alibaba 本身,也會(huì)繼續(xù)建設(shè),集成不少于 20 種阿里云中常用的云產(chǎn)品。進(jìn)一步提升開發(fā)便利性。
如果你對這個(gè)產(chǎn)品有進(jìn)一步了解的興趣,或者是有什么更好的意見或者建議,歡迎加入釘釘群(釘釘搜索:34930571),一起來交流、吐槽。
阿里巴巴云原生公眾號(hào)后臺(tái)回復(fù)?818?即可獲取直播回看地址和大會(huì) PPT 合集。
“阿里巴巴云原生關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開發(fā)者的公眾號(hào)。”
總結(jié)
以上是生活随笔為你收集整理的进击的 Spring Cloud Alibaba —— 框架与服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当 Kubernetes 遇到机密计算,
- 下一篇: SpringCloud 应用在 Kube