Java 界最近發(fā)生了一件大事,Spring Cloud 官方宣布阿里開源?Spring Cloud Alibaba,并推出首個預(yù)覽版。
據(jù)介紹,Spring Cloud Alibaba 由阿里開源組件和阿里云產(chǎn)品組件兩部分組成,其致力于提供微服務(wù)一站式解決方案,方便開發(fā)者通過 Spring Cloud 編程模型輕松開發(fā)微服務(wù)應(yīng)用。
開源的消息引起了巨大的反響,Spring Cloud Alibaba 的到來,不僅引起了 Java 開發(fā)者的高度關(guān)注,也讓人們將目光聚集到了項目背后當(dāng)下最炙手可熱的微服務(wù)架構(gòu)領(lǐng)域。
目前使用 Spring Cloud 的第一選擇是 Spring Cloud Netflix,它的領(lǐng)先地位不可撼動,而此次阿里開源的“原生國產(chǎn)”環(huán)境下的這一項目,是不是會對此帶來變革?而隨著越來越多的落地實踐,微服務(wù)架構(gòu)的弊端已逐漸顯露,此時阿里加碼該領(lǐng)域的這一大動作,背后有什么考量呢?
此外還有開發(fā)者關(guān)注度相當(dāng)高的項目后期維護(hù)、Dubbo 是否又一次被拋棄等問題……我們第一時間采訪了阿里巴巴中間件高級技術(shù)專家姬望,希望能讓大家對 Spring Cloud Alibaba 這個項目、對相關(guān)領(lǐng)域的發(fā)展與趨勢有更多的了解。
本文內(nèi)容較長,這里先提取幾個要點(diǎn):
再也不會不明白 Spring XXXXXX 到底是什么
中國 Java 開發(fā)者的福音
微服務(wù)架構(gòu)領(lǐng)域變天
Dubbo 沒有被拋棄
下一代架構(gòu)不是流式架構(gòu),而是 Serverless
云計算終將統(tǒng)治整個服務(wù)端架構(gòu)
明年 2 月 GA
Spring?Spring Boot?Spring Framework?Spring Cloud?Spring Cloud Alibaba?Spring 全家桶在 Java 開發(fā)中是不得不提的,雖然知名度很高、使用度高,但是其實許多人就只是使用著框架,甚至對于什么是 Spring Cloud 都不甚了解,對上邊這些術(shù)語傻傻分不清楚。借這個機(jī)會,請您給大家仔細(xì)地介紹一下吧。
在國內(nèi) Javaer 界,單說?Spring這個詞,其實并不具體指什么,它只是一個代號,具體代表的含義,是要看語境的。比如我說 Spring 那幫大神,那這時候 Spring 指的就是?Spring 公司;再比如我說你們平時開發(fā)用 Spring 嗎,這時 Spring 一般指的其實是?Spring IOC,而且大部分情況下,我們說 Spring 指的都是 Spring IOC。
Spring IOC 是什么這里就不多解釋了,相信大家都不陌生,而且,這應(yīng)該是最火的面試題之一吧。Spring Framework圍繞著 Spring IOC 與核心的?Spring AOP功能,還實現(xiàn)了與諸多 J2EE 開發(fā)框架的整合,大大降低了企業(yè)級應(yīng)用開發(fā)的難度,提高了效率。
幾年前很火的 SSH 框架就是一個典型的 Spring Framework 整合 Hibernate 和 Struts2 的例子。當(dāng)時,學(xué)會 SSH 整合,那可是一門手藝,那復(fù)雜的配置文件、層出不窮的 Jar 包,絕對可以讓你眼花繚亂、欲罷不能。所以,現(xiàn)在的 Javaer 是幸福的,因為?Spring Boot解決了這個問題。
Spring Boot 讓你可以引入一個 POM 依賴就實現(xiàn)所有 Jar 包的管理,也可以讓你一個配置文件、幾行簡單的配置就解決所有復(fù)雜的配置問題。Spring Boot 的宗旨就是讓用戶可以更簡單地開發(fā)基于 Spring Framework 搭建的應(yīng)用,不得不說,Spring Boot 完美地實現(xiàn)了它的宗旨。
至于?Spring Cloud,它是在 Spring Boot 的基礎(chǔ)上,增加了一堆微服務(wù)相關(guān)的規(guī)范,并對應(yīng)用上下文(Application Context)進(jìn)行了功能增強(qiáng)。
既然 Spring Cloud 是規(guī)范,那么就需要去實現(xiàn),Spring Cloud Alibaba就是 Spring Cloud 微服務(wù)規(guī)范的一套實現(xiàn)。
總結(jié)起來就是:
Spring通常指 Spring IOC。
Spring Framework包含了 Spring IOC,同時包含了 Spring AOP,并實現(xiàn)與其它 J2EE 框架的整合。
Spring Boot是對 Spring Framework 的補(bǔ)充,讓框架的集成變得更簡單,致力于快速開發(fā) 獨(dú)立的 Spring 應(yīng)用。
Spring Cloud是基于 Spring Boot 設(shè)計的一套微服務(wù)規(guī)范,并增強(qiáng)了應(yīng)用上下文。
Spring Cloud Alibaba采用阿里中間件作為原料,實現(xiàn)了 Spring Cloud 的微服務(wù)規(guī)范。
目前 Spring Cloud 規(guī)范已有 Spring Cloud Netflix 等實現(xiàn),那 Alibaba 這一套的主要區(qū)別與優(yōu)勢是什么?
Spring Cloud Alibaba 的組件孵化自阿里巴巴內(nèi)部自用的中間件產(chǎn)品,這些中間件經(jīng)歷過多次雙 11 的考驗(雙 11 是目前世界上最大最復(fù)雜的電商交易場景),具備超強(qiáng)的抗壓能力這點(diǎn)毋庸置疑。此外,Spring Cloud Alibaba 完整的原生中文文檔和本地化的開源服務(wù)將大大降低開發(fā)者的學(xué)習(xí)成本,提高接入速率,并降低后續(xù)的運(yùn)維難度。
具體到其中的各個組件來看:
Nacos
Nacos 基于阿里內(nèi)部配置管理和服務(wù)發(fā)現(xiàn)組件開源,經(jīng)歷過多次雙 11 檢驗,支持超大規(guī)模集群,穩(wěn)定性和性能上值得信賴。后續(xù)我們還會基于這套成熟的業(yè)務(wù)模型,建設(shè)灰度發(fā)布、環(huán)境隔離、全鏈路壓測這些更高級的特性,將更多阿里在微服務(wù)實踐方面的大殺器輸出。
Nacos Discovery
Nacos Discovery、Spring Cloud Netflix Eureka、ZooKeeper 和 Consul 都遵循了 Spring Cloud 服務(wù)發(fā)現(xiàn)的標(biāo)準(zhǔn)實現(xiàn),也很好地適配了 Ribbon。相比之下,Nacos Discovery 有如下特點(diǎn):
支持實時推送,達(dá)到秒級服務(wù)發(fā)現(xiàn)。
多層容災(zāi)機(jī)制,盡量保證服務(wù)發(fā)現(xiàn)中心宕機(jī)不影響應(yīng)用調(diào)用。
Nacos Config
Nacos Config 和 Spring Cloud Config、ZooKeeper 與 Consul 一樣,都遵循了 Spring Cloud 配置標(biāo)準(zhǔn)實現(xiàn),但是依賴組件更少,使用更加簡單,功能更加強(qiáng)大。
例如它無需 Spring Cloud Bus、MQ,直接就可以實現(xiàn)配置的實時推送,而且推送狀態(tài)可查。支持?jǐn)?shù)據(jù)回滾、支持多種數(shù)據(jù)格式、完美支持中文,最后還依賴多重容災(zāi)機(jī)制確保配置服務(wù)端的故障不影響應(yīng)用本身。
RocketMQ
Spring Cloud 官方的 Spring Cloud Stream 框架屏蔽了底層消息中間件的處理,使用統(tǒng)一的編程模型進(jìn)行編程。目前官方只有 Kafka 和 RabbitMQ 的 Binder 實現(xiàn)。阿里巴巴的 RocketMQ?消息中間件,已經(jīng)成為了 Apache 的頂級項目,社區(qū)上也有很多人在咨詢什么時候能出 RocketMQ 的 Binder,而我們也認(rèn)為這是非常有必要的。
Sentinel
目前 Spring Cloud 官方推薦的斷路器是 Hystrix。Sentinel 是阿里中間件團(tuán)隊開源的,面向分布式服務(wù)架構(gòu)的輕量級高可用流量控制組件,主要以流量為切入點(diǎn),從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個維度來幫助用戶保護(hù)服務(wù)的穩(wěn)定性。Sentinel 與 Hystrix 兩者具有一些共同特性,但底層的實現(xiàn)方式不一致。
相比之下 Sentinel 有以下特性:
輕量級、高性能
多樣化的流量控制策略
系統(tǒng)負(fù)載保護(hù)和實時監(jiān)控與控制面板等塵燭寫 OSS 、SchedulerX 與 ARMS 的優(yōu)勢
SchedulerX
SchedulerX 是一套高可靠的分布式任務(wù)調(diào)度系統(tǒng),支持海量任務(wù)秒級別調(diào)度,支持 Java、腳本、http 等多種任務(wù)類型,提供分布式編程模型可以進(jìn)行大數(shù)據(jù)跑批,接入簡單易用。
ARMS
ARMS 是一款?APM類的監(jiān)控產(chǎn)品,用戶可基于 ARMS 的前端監(jiān)控、應(yīng)用監(jiān)控或者自定義監(jiān)控,快速構(gòu)建實時的應(yīng)用性能和業(yè)務(wù)監(jiān)控能力。
OSS
OSS 是阿里云提供的云存儲服務(wù),它具有與平臺無關(guān)的 RESTful API 接口,能夠提供 99.999999999%(11 個 9)的數(shù)據(jù)可靠性和 99.99% 的服務(wù)可用性。
Spring Cloud Alibaba 入駐了 Spring Cloud 孵化器,這個消息可以說是比較突然的,能不能介紹一下從最開始到今天進(jìn)入孵化器的整個過程,以及背后的心路歷程。
去年年末的時候,我們看到 Spring Cloud 子項目中有 spring-cloud-aws 和 spring-cloud-gcp 這些組件,它們可以提升 AWS 和 GCP 用戶在使用 Spring Boot 編程時的效率。
那時候我們想如果把阿里云的產(chǎn)品也集成到 Spring Cloud 生態(tài)中,那肯定也能增加阿里云上 Java 用戶的幸福感,所以我們著手做了相關(guān)工作,最開始項目叫 spring-cloud-alibabacloud。
但是后來,隨著阿里中間件全面擁抱開源,服務(wù)發(fā)現(xiàn)和配置管理組件 Nacos、流量保護(hù) Sentinel 這些重量級的中間件陸續(xù)開源出來,同時我們也發(fā)現(xiàn)開源社區(qū)在使用 Spring Cloud 已有實現(xiàn)的時候遇到這樣那樣的問題。這個時候,我們覺得將這些經(jīng)過多次雙 11 檢驗的生產(chǎn)級別中間件接入到 Spring Cloud 生態(tài)會是一件更酷的事情。于是我們將 Spring Cloud Alibaba 單獨(dú)成項,提交到了 Spring Cloud 官方。
目前我們發(fā)布了第一個版本,包含了 Nacos 和 Sentinel,以及阿里云的 OSS、ACM 和 ANS。隨著阿里開源的力度不斷加大,后續(xù)會有更多組件加入。
Spring Cloud Alibaba 成為官方認(rèn)證的新一套 Spring Cloud 規(guī)范的實現(xiàn),從多方面來講這意味著什么呢?
我從以下幾個方面來講一講吧。
首先是彌補(bǔ) Spring Cloud 原生實現(xiàn)在大規(guī)模集群場景上的局限性。Spring Cloud 規(guī)范的實現(xiàn)目前有很多,比如 Netflix 有自己的一整套體系,Consul 支持服務(wù)注冊和配置管理,ZK 支持服務(wù)注冊等。每套實現(xiàn)或多或少都有各自的優(yōu)缺點(diǎn),或許大多數(shù) Spring Cloud 用戶很難體會到原生實現(xiàn)的局限性,無論是服務(wù)發(fā)現(xiàn)、分布式配置,還是服務(wù)調(diào)用和熔斷都不太適合大規(guī)模集群場景,比如我們內(nèi)部也遇到 Eureka 性能問題。因此,阿里將自身的超大規(guī)模集群經(jīng)驗與強(qiáng)大的 Spring Cloud 生態(tài)整合,實現(xiàn)強(qiáng)強(qiáng)聯(lián)合,相信對業(yè)界會產(chǎn)生積極的化學(xué)變化。
另一個影響是我們覺得這可以造福中國的 Javaer。我們發(fā)現(xiàn)目前 Spring Cloud 的第一選擇 Spring Cloud Netflix 在國內(nèi)并不是有特別多的人精通,而且它們的文檔都是英文的,出問題后排查也比較困難。
Spring Cloud Alibaba 是一套國產(chǎn)開源產(chǎn)品集合,后續(xù)我們會提供中文 reference 和一些原理分析文章,這對于國內(nèi)的開發(fā)者是非常棒的一件事。
阿里巴巴的宗旨是“讓天下沒有難做的生意”,其實阿里的眾多 Javaer 一直以來也有一個宗旨,那就是“造福中國的 Javaer”。不論是之前的 Dubbo 也好,還是前段時間的 Java 開發(fā)手冊也好,都很好地體現(xiàn)了我們的宗旨,如今,我們拿出 Spring Cloud Alibaba,繼續(xù)貫徹我們的宗旨。
還有一個方面是對于微服務(wù)架構(gòu)領(lǐng)域來說的。隨著微服務(wù)架構(gòu)日益普及,這方面的知識儲備也越來越重要,越來越迫切,Spring Cloud Alibaba 的出現(xiàn),可以說是恰逢其時。而對于微服務(wù)這個領(lǐng)域來說,Spring Cloud Alibaba 的出現(xiàn),也會讓這個圈子產(chǎn)生不小的化學(xué)反應(yīng)。前段時間,有文章表示阿里有這么強(qiáng)勁的技術(shù)實力,而且又是中文環(huán)境,后續(xù) Spring Cloud Alibaba 可能會替代掉 Spring Cloud Netflix,微服務(wù)領(lǐng)域要變天,我覺得這非常有可能。
有人要問,阿里這樣搞,那同樣深耕微服務(wù)領(lǐng)域的 Dubbo 算什么?前陣子才為它的復(fù)出歡呼雀躍啊,扔了嗎?
其實很多人都有一個誤解,認(rèn)為 Dubbo 和 Spring Cloud 是二選一,甚至對立的關(guān)系,這里我們需要著重澄清一下。
聯(lián)系前邊講到的內(nèi)容,Spring Cloud 并不是等同于 Spring Cloud Netflix 的 Ribbon、Feign、Eureka、Hystrix 這一套組件。而是抽象了一套通用的開發(fā)模式,它的目的是通過抽象出這套通用的模式,讓開發(fā)者更快更好地開發(fā)業(yè)務(wù)。
但是這套開發(fā)模式運(yùn)行時的實際載體,還是依賴于 RPC、網(wǎng)關(guān)、服務(wù)發(fā)現(xiàn)、配置管理、限流熔斷、分布式鏈路跟蹤等組件的具體實現(xiàn)。
Dubbo 與 Spring Cloud 并不是競爭關(guān)系,Dubbo 作為成熟的 RPC 框架,其易用性、擴(kuò)展性和健壯性已得到業(yè)界的認(rèn)可。未來 Dubbo 將會作為 Spring Cloud Alibaba 的 RPC 組件,并與 Spring Cloud 原生的 Feign 以及 RestTemplate 進(jìn)行無縫整合,實現(xiàn)“零”成本遷移。
在阿里巴巴的微服務(wù)解決方案中,Dubbo、Nacos 和 Sentinel,以及后續(xù)將開源的微服務(wù)組件,都是 Dubbo EcoSystem 的一部分。我們后續(xù)也會將 Dubbo EcoSystem 集成到 Spring Cloud 的生態(tài)中。
所以總結(jié)一下就是:Spring Cloud 抽象了微服務(wù)編程通用模式,而 Dubbo EcoSystem 是微服務(wù)的最佳實踐。
微服務(wù)架構(gòu)特別火,但是其實它也存在一些問題,最近有人就因此指出微服務(wù)架構(gòu)要完蛋了,并且否定了“Service Mesh 作為下一代微服務(wù)架構(gòu)”的觀點(diǎn),同時說明像 Flink 這樣的流式架構(gòu)將成為新主流。阿里此次通過 Spring Cloud Alibaba 加碼微服務(wù),想必是不認(rèn)同微服務(wù)架構(gòu)要結(jié)束的觀點(diǎn)。類比一下單體、SOA、Serverless 等架構(gòu),您覺得微服務(wù)架構(gòu)已經(jīng)發(fā)展到了一個什么樣的階段呢?請您具體分享一下。
【文章詳見:https://zhuanlan.zhihu.com/p/48036811】
我覺得微服務(wù)目前處在蓬勃發(fā)展的階段,Service Mesh、Serverless 其實都隸屬微服務(wù)架構(gòu)的范疇。Service Mesh 是提供微服務(wù)的一種多語言、無依賴的解決方案。Serverless 是提供微服務(wù)的一種簡化開發(fā)、自動化運(yùn)維、資源分時復(fù)用的解決方案。
Service Mesh 和流式編程架構(gòu)都是很好的方向,阿里集團(tuán)里也有其它團(tuán)隊在做這方面事情。
但是站在我們團(tuán)隊的角度來看,這些都是尚未經(jīng)過大規(guī)模生產(chǎn)集群驗證的架構(gòu),而 Spring Cloud Alibaba 里面集成的這些組件都是在阿里內(nèi)部經(jīng)過多年雙 11 檢驗的。
說到底,技術(shù)還是要為業(yè)務(wù)服務(wù)的,所以我們將這套技術(shù)集成到 Spring Cloud 生態(tài),方便開發(fā)者更好更快地開發(fā)業(yè)務(wù),業(yè)務(wù)永遠(yuǎn)是最重要的。這是我們的想法。
具體到那篇文章中的觀點(diǎn),我是這么看的:
微服務(wù)是 SOA 的一種實現(xiàn)
SOA 是面向服務(wù)的架構(gòu),微服務(wù)也是面向服務(wù)架構(gòu)的一種實現(xiàn)。如果引用微服務(wù)領(lǐng)域的先驅(qū) Martin Fowler 的話,那么“我們應(yīng)該把 SOA 看作微服務(wù)的超集”。微服務(wù)是 SOA 的一種敏捷實現(xiàn),之前 ESB 是 IBM 對 SOA 一種不太完美的實現(xiàn),在微服務(wù)這個概念被 Martin Fowler 大神創(chuàng)造出來之前,阿里巴巴使用 Dubbo、HSF 實現(xiàn)了自己的微服務(wù)體系,其實也是 SOA 的一種實現(xiàn)。
微服務(wù)解決的本質(zhì)問題是團(tuán)隊分工
SOA 也好、微服務(wù)也好,解決的根本問題是團(tuán)隊分工問題,詳見康威定律,這是大型軟件發(fā)展的必然,不因為人的喜好而改變。當(dāng)你讀懂康威定律,就會發(fā)現(xiàn)“服務(wù)拆分粒度難以準(zhǔn)確把握”根本不是本質(zhì)問題。
你有幾個 2 pizza 團(tuán)隊,最好就拆成幾個微服務(wù)。舉一個現(xiàn)實的例子:只有一個開發(fā)人員時,盡量就做單體應(yīng)用,不要沒事找刺激拆成 10 個微服務(wù),最終這個開發(fā)人員還會把他合成一個。微服務(wù)要求縱向的 2 pizza 團(tuán)隊(無數(shù)個小團(tuán)隊,包含開發(fā)、測試、運(yùn)維),當(dāng)然我們也實施過一些傳統(tǒng)大型企業(yè),但團(tuán)隊還是處在橫向結(jié)構(gòu)的場景下(開發(fā)、運(yùn)維、測試各是一個團(tuán)隊),拆分微服務(wù)讓他們很痛苦,尤其是運(yùn)維團(tuán)隊。
微服務(wù)帶來挑戰(zhàn)是分布式下開發(fā)、測試與運(yùn)維的復(fù)雜性
永遠(yuǎn)不會有銀彈,但是我們要接受歷史的潮流,并且適應(yīng)它。微服務(wù)的出現(xiàn)解決了團(tuán)隊分工問題,同時也會引入新的問題,但是并不是“基礎(chǔ)設(shè)施的龐大復(fù)雜”。
EDAS 其實已經(jīng)提供了大部分“基礎(chǔ)設(shè)施”。微服務(wù)跟開車一樣,車(基礎(chǔ)設(shè)施)我們可以不去造,但是學(xué)會開車(微服務(wù)理念)是對單體應(yīng)用開發(fā)、測試與運(yùn)維最大的挑戰(zhàn)。例如:單體應(yīng)用開發(fā)者從來不會去想方法調(diào)用會失敗、會重試、要冪等;單體應(yīng)用測試人員不會去想幾十個應(yīng)用我怎么一起集成測試;單體運(yùn)維人員不會去想下游應(yīng)用掛了對我有什么影響。意識到分布式下開發(fā)、測試與運(yùn)維的復(fù)雜性,并掌握解決這些復(fù)雜問題的方法,才是更主要的。
微服務(wù)至少還能活 18 年
當(dāng)然不能因為微服務(wù)存在問題,我們就說它將死。很多人說 Java 將死,從 2000 年就聽說過這個論調(diào),18 年過去了 Java 還活著,而且最近還搞得風(fēng)生水起。
談到微服務(wù)將死,那么這里聯(lián)系一下 Java,我認(rèn)為微服務(wù)至少還要活 18 年,并且它也值得我做一輩子,我們會提供完善的基礎(chǔ)設(shè)施(車),提供完善的最佳實踐(教練),幫助開發(fā)者享受微服務(wù)(開車)帶來的好處。
下一代架構(gòu)是 Serverless
此處提到的 Serverless != FaaS,Serverless 包含底層中間件的 Serverless 及服務(wù)本身 Serverless,而 FaaS 只是其中一種比較簡單的實現(xiàn)。那篇文章中提到的 Flink 跟 FaaS 實際上并無本質(zhì)區(qū)別,但是本身商業(yè)化比 FaaS 差得比較大。
針對文中各個“流式架構(gòu)優(yōu)勢”論證點(diǎn)的具體分析如下:
原文:服務(wù)端開發(fā)人員無需再關(guān)注系統(tǒng)性能,Slink 集群可以用容器動態(tài)擴(kuò)容,Slink 集群也可以動態(tài)調(diào)整某個業(yè)務(wù)的節(jié)點(diǎn)數(shù)量。
性能是開發(fā)人員必須關(guān)注的指標(biāo),開發(fā)人員只是不需要關(guān)注節(jié)點(diǎn)擴(kuò)縮,F(xiàn)aaS 做得更好,甚至可以做到無流量時節(jié)點(diǎn)不駐留。
原文:服務(wù)端開發(fā)人員無需再關(guān)注系統(tǒng)可靠性,Slink 集群管理每個節(jié)點(diǎn),包括調(diào)度、重啟、狀態(tài)管理等。
FaaS 節(jié)點(diǎn)的自動故障轉(zhuǎn)移。
原文:服務(wù)端開發(fā)人員無需再考慮系統(tǒng)拆分,因為系統(tǒng)已經(jīng)拆分到單條業(yè)務(wù)的粒度了,業(yè)務(wù)發(fā)展和變化,不會導(dǎo)致架構(gòu)變化,只需要調(diào)整業(yè)務(wù)處理流圖就可以了。
理想很豐滿,現(xiàn)實很骨感,阿里有個團(tuán)隊嘗試了 FaaS 之后,馬上退回去了,復(fù)雜業(yè)務(wù)邏輯不是拖拽那么簡單就可以解決。單體應(yīng)用的代碼理論上也可以寫成無數(shù)個小方法,拖拽一下就可以了,目前小部分銀行系統(tǒng)小部分邏輯是這樣實現(xiàn)的,但是為什么不能大規(guī)模推廣?這是業(yè)務(wù)復(fù)雜性或多變性導(dǎo)致的,所以 FaaS 也很難成功。FaaS 所謂的方法級別的拆分,本質(zhì)跟微服務(wù)接口 API 定義無本質(zhì)區(qū)別,所謂的編排,目前看只適合于簡單業(yè)務(wù)邏輯的控制。
原文:Slink 可以支持多個業(yè)務(wù)運(yùn)行,資源可以做到最大程度的共享。
FaaS 可以做到不運(yùn)行的邏輯不加載,做到分時復(fù)用,F(xiàn)link(Slink) 做不到。
原文:幾乎大部分中間件,例如消息隊列、全鏈路跟蹤、配置中心、降級系統(tǒng)等都可以去掉,Slink 平臺可以內(nèi)置這些功能。
AWS FaaS 底層已經(jīng)提供了 Serverless 的各種服務(wù),目前看 Flink 并未提供。
原文:運(yùn)維基本上維護(hù) Slink 平臺即可,業(yè)務(wù)無需運(yùn)維維護(hù)。
AWS FaaS 不需要維護(hù),AWS 會幫你維護(hù)。
原文:Slink 可以支持多語言,不再要求服務(wù)端開發(fā)統(tǒng)一技術(shù)棧。
FaaS 可以是任意語言,已經(jīng)商業(yè)化。
總結(jié)一下,實際上 Serverless 解決的本質(zhì)問題是以下幾個方面:
運(yùn)維復(fù)雜性
開發(fā)復(fù)雜性
資源的分時復(fù)用
Serverless 雖未完全解決開發(fā)復(fù)雜性、測試復(fù)雜性,但足以成為下一代架構(gòu)。Serverless 開發(fā)基礎(chǔ)還是微服務(wù),Java 開發(fā)人員還是會繼續(xù)使用 Spring Cloud,可以認(rèn)為 Serverless 是微服務(wù)的有益補(bǔ)充。
另一方面,我認(rèn)為,不管什么架構(gòu),云計算終將統(tǒng)治整個服務(wù)端架構(gòu)。
我們可以看到,現(xiàn)階段云計算已經(jīng)解決了 IaaS 層的問題,現(xiàn)在初創(chuàng)公司起步的時候,都習(xí)慣在云上直接購買機(jī)器,不會再選擇傳統(tǒng)的找機(jī)房租機(jī)柜的形式,省去了一大堆煩惱,極大地提高了效率,同時經(jīng)濟(jì)成本更低。
再往上層看,數(shù)據(jù)庫這個層面,比如人們已經(jīng)習(xí)慣購買云上的 RDS,開發(fā)者無需關(guān)心分庫分表,也不需要專業(yè)的 DBA 進(jìn)行數(shù)據(jù)庫運(yùn)維,因為 RDS 后端已經(jīng)自動處理分庫分表和水平擴(kuò)容,并且有專業(yè)的數(shù)據(jù)庫人員幫忙運(yùn)維和保證 SLA,只需要根據(jù)使用量按量付費(fèi)即可。
但是在 PaaS 層和 SaaS 層我們做的還不夠好,我們希望在不久的將來,中間件能力也能直接在云上輸出,那時候微服務(wù)的開發(fā)者們無需再關(guān)心如何部署運(yùn)維服務(wù)注冊中心、配置中心、消息隊列服務(wù),只需要使用標(biāo)準(zhǔn)的編程模型,開箱即用,這可以最大化地提升開發(fā)效率,快速實現(xiàn)業(yè)務(wù)變更和推進(jìn)。
對于開發(fā)者普遍擔(dān)憂的開源項目后續(xù)維護(hù)情況,有什么計劃?
從一開始就放在 Spring Cloud 孵化器里已經(jīng)表明我們對開源的態(tài)度,社區(qū)生態(tài)前期雖然是阿里巴巴主導(dǎo),但是我們非常歡迎更多人一起參與進(jìn)來,一起把這個項目建設(shè)得更好,無論是大的 feature,還是小的 bug,甚至是文檔的糾正和完善,都能對這個開源項目產(chǎn)生很大的幫助。
接下來我們會整合開源的 Dubbo、RocketMQ,阿里云上 ARMS、SchedulerX、SMS、VMS、SLS 等組件。隨著阿里開源力度的不斷加強(qiáng),我們還會接入包含分布式事務(wù)在內(nèi)的更多開源組件。
Spring Cloud Alibaba 將在明年 2 月發(fā)布第一個 GA 版本,于 Spring Cloud H 版本從孵化器畢業(yè)。
嘉賓介紹
姬望(彭文杰),阿里巴巴中間件高級技術(shù)專家,前微課網(wǎng) CTO,前衛(wèi)生部考試系統(tǒng)總架構(gòu)師,專注于微服務(wù)領(lǐng)域,曾擔(dān)任 EDAS 產(chǎn)品開發(fā) TL,目前負(fù)責(zé) Spring Cloud Alibaba 開源。
Spring Cloud Alibaba 團(tuán)隊包含 6 名成員。阿里中間件擁有 Apache Dubbo、Apache RocketMQ 等頂級開源項目;支持世界最大最復(fù)雜的電商交易場景——雙11;有基于每天萬億次調(diào)用的數(shù)據(jù)智能決策系統(tǒng)。