2018-11-06

11 月 3 日浙垫,Spring 技術(shù)的擁有者 Pivotal 在北京舉辦 SpringOne Tour 技術(shù)峰會(huì),包括 Spring 技術(shù)布道師 Josh Long币厕、Pivotal 軟件開發(fā)布道師 Spencer Gibb 在內(nèi)的一眾 Spring 社區(qū)大咖來到中國,獻(xiàn)上一道 Spring 技術(shù)盛宴。

對(duì)于想要學(xué)習(xí)云原生 Java剧防、Spring Cloud、微服務(wù)辫樱、Spring Boot 2.0 的開發(fā)者來說峭拘,Spring 技術(shù)布道師 Josh Long 的演講和演示最值得期待。

他還是一貫的風(fēng)格,語速極快鸡挠、富有激情辉饱、語言詼諧。雖然現(xiàn)場網(wǎng)絡(luò)開始時(shí)有一點(diǎn)問題拣展,但是絲毫沒有影響他的情緒彭沼。作為《云原生 Java》一書的作者,他還推薦了自己的新書《響應(yīng)式 Spring》备埃。

他的演講主題是《云原生 Spring》姓惑,他的演示主要圍繞的是如何在微服務(wù)環(huán)境下進(jìn)行響應(yīng)式編程。他選擇了 Spring Boot 一個(gè)比較舊的版本——2.0.6 版本按脚,用于建立并演示一個(gè)服務(wù)于毙。

具體到演示環(huán)節(jié),信息量還是非常大的辅搬,加之 Josh 語速快唯沮、手下代碼翻飛,現(xiàn)場觀眾看得直呼過癮伞辛。

Josh 以 Demo 的方式來介紹云原生 Spring烂翰,首先快速從 start.spring.io 上構(gòu)建一個(gè)基于 Spring Boot、Reactive蚤氏、Mongo 的 reservation 微服務(wù)甘耿,然后基于微服務(wù)構(gòu)建 routing 支持,引入 Spring Cloud Gateway竿滨,Spring Hystrix佳恬,Spring Security,F(xiàn)low Control于游,Client 檢測毁葱,Rsocket 等機(jī)制。整體 Demo 演示下來贰剥,能夠讓與會(huì)的開發(fā)者充分了解 Spring Framework 的新功能和機(jī)制倾剿。

午間休息的時(shí)候,很多參會(huì)者去跟 Josh Long 以及其他幾位 Spring 技術(shù)專家合影蚌成,這其中有些人是第一次來中國前痘。大家都很興奮,很多人是 Josh Long 以及眾多技術(shù)大咖的“粉絲”担忧,合影時(shí)大喊“Open source”芹缔,令人感受到社區(qū)的強(qiáng)大月杉,以及開發(fā)者的熱情十绑。

現(xiàn)場隨機(jī)采訪幾位參會(huì)者息拜,大多對(duì) Josh Long 操控代碼的熟練程度、思維的活躍印象深刻桂塞。某銀行客戶提及 Josh Long 的演講表示:該分享從微服務(wù)思路上介紹了各類服務(wù)組合嘁灯,包括調(diào)用对碌、控制帝璧、認(rèn)證、攔截等等吵取,是比較完整的微服務(wù)治理的概念和思路的展示禽额。對(duì)于開發(fā)者來說,有利于建立對(duì) Spring 的系統(tǒng)認(rèn)識(shí)皮官。

如果大家對(duì) Josh Long 的分享尤其是代碼演示感興趣脯倒,可以觀看視頻回放,Josh Long 的代碼演示還是非常精彩的捺氢。

當(dāng)天參加活動(dòng)的小伙伴們還是很幸運(yùn)的藻丢,因?yàn)?Josh 在下午活動(dòng)中再次親身上陣進(jìn)行 Deom 演示,告訴大家如何測試 Spring 應(yīng)用和服務(wù)摄乒。標(biāo)題很有意思悠反,叫做:Bootiful Testing。

有了測試驅(qū)動(dòng)型開發(fā) (TDD)馍佑,我們可以確信自己構(gòu)建的內(nèi)容正確無誤斋否。TDD 讓開發(fā)人員知道他們能夠修復(fù)出現(xiàn)的問題并加以改進(jìn),從而滿懷信心拭荤。這個(gè)演示包括如何測試基本組件模型茵臭、如何利用測試切片的優(yōu)勢,以及如何測試 Web 應(yīng)用舅世。

響應(yīng)式 Spring 的道法術(shù)器

Pivotal 軟件開發(fā)布道師 Mark Heckler 發(fā)表了題為《響應(yīng)式 Spring 和 Spring Boot 2.0》的演講并現(xiàn)場編寫了一個(gè) CoffeeService 的 Reactive Stream 的 demo 應(yīng)用旦委,通過 coffeeservice 的 demo 應(yīng)用,開發(fā)人員可以理解 reactive 的非阻塞雏亚、異步缨硝、事件驅(qū)動(dòng)機(jī)制。Mark 很風(fēng)趣地自詡為一位“懶惰的編程者”罢低,不知道這一說法從何而來查辩。

現(xiàn)場編寫 Demo 的 github repository 點(diǎn)擊可以看到

響應(yīng)式編程是 SpringFramework5.0 最重要的特性之一网持。響應(yīng)式編程提供了另一種編程風(fēng)格宜肉,專注于構(gòu)建對(duì)事件做出響應(yīng)的應(yīng)用程序。Mark 介紹了 reactive stream(定義響應(yīng)性 API 的語言中立嘗試)和 Reactor(由 Spring Pivotal 團(tuán)隊(duì)提供的 Reactive Stream 的 Java 實(shí)現(xiàn))的用途以及核心 API翎碑。

在分享結(jié)束的時(shí)候 Mark 展示了一張 PPT,這些資源可以協(xié)助開發(fā)者進(jìn)行測試之斯。

Spring日杈、函數(shù)遣铝、無服務(wù)器如何為我所用?

Pivotal 資深云平臺(tái)機(jī)構(gòu)師劉凡的分享集中在 Knative莉擒、riff 和 Serverless酿炸,希望揭示的問題是:Spring、函數(shù)涨冀、無服務(wù)器如何為我所用填硕?

分享一開始,劉凡詢問現(xiàn)場有多少人在用 k8s鹿鳖,舉手的人還是挺多的扁眯,這也與當(dāng)前 k8s 的熱度相吻合。

Knative 構(gòu)建在 Kubernetes 之上翅帜,提供了一系列中間件組件來構(gòu)建以源碼為中心姻檀,基于容器的現(xiàn)代應(yīng)用,便于這些應(yīng)用能夠運(yùn)行在任何云環(huán)境涝滴,支持不同的公有云绣版、私有云、甚至在第三方的數(shù)據(jù)中心歼疮。

Knative 的每一個(gè)組件都是基于 kubernetes 框架或應(yīng)用并可以進(jìn)行共享的杂抽,同時(shí)也是真實(shí)場景中成功經(jīng)驗(yàn)的總結(jié)。Knative 的組件主要關(guān)注解決單調(diào)重復(fù)但復(fù)雜的任務(wù)韩脏,比如部署容器缩麸、基于 kubernetes 從源代碼到 URL 的工作流容器編排、針對(duì)藍(lán)綠部署的路由和流量管理骤素、基于請(qǐng)求的自動(dòng)彈性擴(kuò)展匙睹、對(duì)事件生態(tài)綁定運(yùn)行的服務(wù)。

riff 也是一個(gè)開源項(xiàng)目济竹,提供 90% 的 Knative 的源碼痕檬。劉凡進(jìn)行了一個(gè) riff on Knative 的演示。對(duì)于 riff 來說送浊,第一步是創(chuàng)建 K8S 集群梦谜,進(jìn)行安裝。

對(duì)于無服務(wù)器函數(shù)袭景,劉凡介紹唁桩,其作用是用于讓大家更加關(guān)注自己的業(yè)務(wù),提升資源的使用效率耸棒。不同的工作負(fù)載可以使用不同的平臺(tái)荒澡,比如容器編排(CaaS)、應(yīng)用平臺(tái) (PaaS)与殃、Serverless Functions单山。

無服務(wù)器 /FaaS(Function-as-a-Service)的適用場景包括:數(shù)據(jù)實(shí)時(shí)處理碍现、文件實(shí)時(shí)處理、實(shí)時(shí)流處理(如日志流)米奸、實(shí)時(shí)消息處理昼接、ETL、IOT悴晰、移動(dòng)應(yīng)用后端慢睡、數(shù)據(jù)分析、API 和微服務(wù)開發(fā)铡溪、Webhook漂辐、作業(yè)調(diào)度、消息推送服務(wù)佃却、錯(cuò)誤處理等很多個(gè)者吁。

3Spring Cloud Gateway 的架構(gòu)和體驗(yàn)之旅

Pivotal 軟件開發(fā)布道師 Spencer Gibb 的分享主題是《Spring Cloud Gateway 的架構(gòu)和體驗(yàn)之旅》。圍繞 API 網(wǎng)關(guān)能讓企業(yè)的微服務(wù)架構(gòu)獲得哪些好處饲帅、API 網(wǎng)關(guān)概念复凳、類型及特征展開。值得一提的是灶泵,他是 Spring Cloud 的成員育八,更是 Spring Cloud Gateway 的主要貢獻(xiàn)者,這是他第一次來到中國赦邻。

Spencer 在演講中首先幽默地拆解了 Spring髓棋、Cloud 和 Gateway 的關(guān)系及,即 Spring 指的是運(yùn)營在 Spring Framwork5.0 以上惶洲,Cloud 指的是運(yùn)行在 Spring Boot2.0 以上并按照云原生的方式開發(fā)按声,而云原生的模式就是 API Gateway,所以三者相互依賴與共存恬吕。

在當(dāng)前的微服務(wù)應(yīng)用中签则,應(yīng)用在調(diào)用后端的微服務(wù)的過程中,不可避免的會(huì)面臨路由铐料、安全渐裂、監(jiān)控、彈性钠惩、金絲雀部署等要求柒凉,而 API Gateway 就是在這樣的需求和背景下應(yīng)運(yùn)而生。API Gateway 的類型可以是 Applicance篓跛、SaaS 服務(wù)膝捞、Web Server、Mesh 和面向開發(fā)者的愧沟。

而具體到 Spring Cloud Gateway绑警,它是基于 Spring boot2.0求泰、Project Reactor 等技術(shù)開發(fā)的非阻塞網(wǎng)關(guān)。

在演示環(huán)節(jié)计盒,Spencer 介紹了 Spring Cloud Gateway 以及它的架構(gòu)和開發(fā)人員的體驗(yàn)。現(xiàn)場聽眾了解了路由匹配和篩選芽丹,以及與 Zuul 1 體驗(yàn)的不同之處北启。Spring Cloud Gateway 作為 Spring Cloud 生態(tài)系中的網(wǎng)關(guān),目標(biāo)是替代 Netflix zuul拔第。

Spencer Gibb 表示咕村,Spring Cloud Gateway 對(duì)于開發(fā)者的最大意義和價(jià)值在于,這是一個(gè)云原生蚊俺,不僅僅是架構(gòu)懈涛,而是涉及整個(gè)流程的持續(xù)創(chuàng)新,可以讓開發(fā)者直接部署而不用依賴于任何其他團(tuán)隊(duì)和組織泳猬。

4為什么 Cloud Foundry 是運(yùn)行 Java 微服務(wù)的最佳平臺(tái)批钠?

Pivotal 高級(jí)解決方案架構(gòu)師李剛的演講主題是《為什么 Cloud Foundry 是運(yùn)行 Java 微服務(wù)的最佳平臺(tái)?》

對(duì)于企業(yè)來說得封,從開發(fā)到生產(chǎn)埋心,經(jīng)歷了什么?其實(shí)生產(chǎn)之旅并非一片坦途忙上,其間有很多磕磕絆絆拷呆。借助 Spring 和 PAS(Pivotal Application Service,也就是 Pivotal Cloud Foundry——PCF)疫粥,讓我們能夠快速上升到生產(chǎn)環(huán)境茬斧。

在對(duì) Spring Boot 和 Spring Cloud 的介紹中李剛表示:所謂 Spring Boot,可以五分鐘構(gòu)建出一個(gè)簡單的應(yīng)用梗逮,甚至這個(gè)時(shí)間其實(shí)可以更短项秉。Spring Boot 的能力特性包括:快速生成應(yīng)用、自動(dòng)依賴映射管理库糠、用 profiles 文件來管理不同環(huán)境下的配置伙狐、強(qiáng)大的開發(fā)工具、自動(dòng)配置瞬欧、監(jiān)控并管理 endpoints 贷屎、面向微服務(wù)。

而所謂 Spring Cloud艘虎,這是與 Netflix 合作唉侄、專門針對(duì)脆弱的基礎(chǔ)設(shè)施而設(shè)計(jì),這是一個(gè) Java 的微服務(wù)框架野建,100% Spring Boot 支持属划。

在提及企業(yè)為什么應(yīng)該選擇 PAS 的時(shí)候李剛表示:通過統(tǒng)計(jì)恬叹,大部分開發(fā)人員每天專注于寫代碼的時(shí)間并不長,很多時(shí)間都用于應(yīng)用程序的部署同眯、基礎(chǔ)設(shè)施的配置等等了绽昼,沒有放在代碼本身。

但是對(duì)于很多企業(yè)來說须蜗,很多轉(zhuǎn)變正在發(fā)生硅确。T-Mobile 過去更新和交付新軟件版本需要 72 個(gè)步驟、歷時(shí) 7 個(gè)月明肮,現(xiàn)在實(shí)現(xiàn)了當(dāng)日部署菱农;利寶互助保險(xiǎn)集團(tuán)在一個(gè)月內(nèi)構(gòu)建部署了一款 MVP 應(yīng)用,幾個(gè)月后便交付了最終版本柿估;康卡斯特一支 4 人組成的運(yùn)維團(tuán)隊(duì)支持了 1500 位開發(fā)人員循未;

家得寶每月向生產(chǎn)環(huán)境交付 1500 次,每月向所有環(huán)境交付 17000 次秫舌。

使用 Spinnaker 在 k8s 上測試的妖、構(gòu)建和部署應(yīng)用

Pivotal 解決方案架構(gòu)師 Paul Czarkowski,他的分享主題是《使用 Spinnaker 在 Kubernetes 上創(chuàng)建開發(fā)工作流》舅巷。

Paul 在演講一開始就調(diào)侃自己既不會(huì) Java 更不會(huì) Spring羔味,自己只是一個(gè)運(yùn)維者。作為運(yùn)維者钠右,Paul 目前力求改進(jìn) k8s 和 OpenStack 等復(fù)雜分布式系統(tǒng)的可運(yùn)維性問題赋元。在演講中,Paul 介紹了 k8s 及其核心組件飒房,借助 Spinnaker 的演示搁凸,著重介紹了 Spinnaker 可以輕松創(chuàng)建自定義工作流,用于在 k8s 上測試狠毯、構(gòu)建和部署應(yīng)用护糖。

k8s 是一個(gè)運(yùn)維平臺(tái),具備極大的靈活性嚼松,近期受到越來越多的關(guān)注嫡良,應(yīng)該說是一個(gè)非常熱門的概念。但其實(shí) k8s 部署簡單應(yīng)用時(shí)會(huì)遇到一些問題献酗,而 Spinnaker 可以幫助開發(fā)者輕松創(chuàng)建自定義工作流寝受,用于在 k8s 上測試、構(gòu)建和部署應(yīng)用罕偎。應(yīng)該說很澄,Spinnaker 可以節(jié)省很多勞動(dòng),它是一個(gè)開源的云驅(qū)動(dòng)的應(yīng)用,是一個(gè)好工具甩苛,用在多個(gè)平臺(tái)蹂楣、多個(gè)云上,無論用戶要把云部署到哪里讯蒲。

在分享中 Paul 為聽眾進(jìn)行了一個(gè) Spinnaker on PKS 的演示痊土,這個(gè)演示的安裝和部署還是非常簡單的,只需要 5 分鐘爱葵。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末施戴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萌丈,更是在濱河造成了極大的恐慌,老刑警劉巖雷则,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辆雾,死亡現(xiàn)場離奇詭異,居然都是意外死亡月劈,警方通過查閱死者的電腦和手機(jī)度迂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猜揪,“玉大人惭墓,你說我怎么就攤上這事《悖” “怎么了腊凶?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拴念。 經(jīng)常有香客問我钧萍,道長,這世上最難降的妖魔是什么政鼠? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任风瘦,我火速辦了婚禮,結(jié)果婚禮上公般,老公的妹妹穿的比我還像新娘万搔。我一直安慰自己,他們只是感情好官帘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布瞬雹。 她就那樣靜靜地躺著,像睡著了一般遏佣。 火紅的嫁衣襯著肌膚如雪挖炬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音意敛,去河邊找鬼馅巷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛草姻,可吹牛的內(nèi)容都是我干的钓猬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼撩独,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼敞曹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起综膀,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤澳迫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后剧劝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橄登,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年讥此,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拢锹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萄喳,死狀恐怖卒稳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情他巨,我是刑警寧澤充坑,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站闻蛀,受9級(jí)特大地震影響匪傍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜觉痛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一役衡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧薪棒,春花似錦手蝎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吧史,卻和暖如春邮辽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工吨述, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岩睁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓揣云,卻偏偏與公主長得像捕儒,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邓夕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理刘莹,服務(wù)發(fā)現(xiàn),斷路器焚刚,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 本文來自作者 未聞 在 GitChat 分享的{基于 Docker 的微服務(wù)架構(gòu)實(shí)踐} 前言 基于 Docker ...
    AI喬治閱讀 7,279評(píng)論 0 71
  • 前言 基于 Docker 的容器技術(shù)是在2015年的時(shí)候開始接觸的点弯,兩年多的時(shí)間,作為一名 Docker 的 De...
    Java架構(gòu)閱讀 8,668評(píng)論 2 144
  • 這些天矿咕,我一直在學(xué)習(xí)斷舍離這本書蒲拉!給我的感覺是震撼的,山下英子真是太偉大了痴腌。她說,人類最大的最是不快活燃领。...
    郭思岑閱讀 283評(píng)論 0 0
  • 自己到底在害怕什么士聪,怕她們聽了說不好,怕自己能力不夠猛蔽,怕讓他們失望剥悟。自己不夠自信。 自己就是導(dǎo)游曼库,領(lǐng)他們觀光区岗,講細(xì)...
    藍(lán)海心理閱讀 275評(píng)論 0 0