當前位置:
首頁 > 科技 > Josh Long等Spring大神來京Show代碼聊雲原生還說了啥

Josh Long等Spring大神來京Show代碼聊雲原生還說了啥

11 月 3 日,Spring 技術的擁有者 Pivotal 在北京舉辦 SpringOne Tour 技術峰會,包括 Spring 技術佈道師 Josh Long、Pivotal 軟體開發佈道師 Spencer Gibb 在內的一眾 Spring 社區大咖來到中國,獻上一道 Spring 技術盛宴。

對於想要學習雲原生 Java、Spring Cloud、微服務、Spring Boot 2.0 的開發者來說,Spring 技術佈道師 Josh Long 的演講和演示最值得期待。

他還是一貫的風格,語速極快、富有激情、語言詼諧。雖然現場網路開始時有一點問題,但是絲毫沒有影響他的情緒。作為《雲原生 Java》一書的作者,他還推薦了自己的新書《響應式 Spring》。




他的演講主題是《雲原生 Spring》,他的演示主要圍繞的是如何在微服務環境下進行響應式編程。他選擇了 Spring Boot 一個比較舊的版本——2.0.6 版本,用於建立並演示一個服務。

具體到演示環節,信息量還是非常大的,加之 Josh 語速快、手下代碼翻飛,現場觀眾看得直呼過癮。

Josh 以 Demo 的方式來介紹雲原生 Spring,首先快速從 start.spring.io 上構建一個基於 Spring Boot、Reactive、Mongo 的 reservation 微服務,然後基於微服務構建 routing 支持,引入 Spring Cloud Gateway,Spring Hystrix,Spring Security,Flow Control,Client 檢測,Rsocket 等機制。整體 Demo 演示下來,能夠讓與會的開發者充分了解 Spring Framework 的新功能和機制。

午間休息的時候,很多參會者去跟 Josh Long 以及其他幾位 Spring 技術專家合影,這其中有些人是第一次來中國。大家都很興奮,很多人是 Josh Long 以及眾多技術大咖的「粉絲」,合影時大喊「Open source」,令人感受到社區的強大,以及開發者的熱情。


      

現場隨機採訪幾位參會者,大多對 Josh Long 操控代碼的熟練程度、思維的活躍印象深刻。某銀行客戶提及 Josh Long 的演講表示:該分享從微服務思路上介紹了各類服務組合,包括調用、控制、認證、攔截等等,是比較完整的微服務治理的概念和思路的展示。對於開發者來說,有利於建立對 Spring 的系統認識。

如果大家對 Josh Long 的分享尤其是代碼演示感興趣,可以點擊文末

閱讀原文

觀看視頻回放,Josh Long 的代碼演示還是非常精彩的。

當天參加活動的小夥伴們還是很幸運的,因為 Josh 在下午活動中再次親身上陣進行 Deom 演示,告訴大家如何測試 Spring 應用和服務。標題很有意思,叫做:Bootiful Testing。

有了測試驅動型開發 (TDD),我們可以確信自己構建的內容正確無誤。TDD 讓開發人員知道他們能夠修復出現的問題並加以改進,從而滿懷信心。這個演示包括如何測試基本組件模型、如何利用測試切片的優勢,以及如何測試 Web 應用。

1

響應式 Spring 的道法術器

Pivotal 軟體開發佈道師 Mark Heckler 發表了題為《響應式 Spring 和 Spring Boot 2.0》的演講並現場編寫了一個 CoffeeService 的 Reactive Stream 的 demo 應用,通過 coffeeservice 的 demo 應用,開發人員可以理解 reactive 的非阻塞、非同步、事件驅動機制。Mark 很風趣地自詡為一位「懶惰的編程者」,不知道這一說法從何而來。

現場編寫 Demo 的 github repository 是:https://github.com/mkheck/coffee-service-r2dbc。




響應式編程是 SpringFramework5.0 最重要的特性之一。響應式編程提供了另一種編程風格,專註於構建對事件做出響應的應用程序。Mark 介紹了 reactive stream(定義響應性 API 的語言中立嘗試)和 Reactor(由 Spring Pivotal 團隊提供的 Reactive Stream 的 Java 實現)的用途以及核心 API。

在分享結束的時候 Mark 展示了一張 PPT,這些資源可以協助開發者進行測試。


 

2

Spring、函數、無伺服器如何為我所用?

Pivotal 資深雲平台機構師劉凡的分享集中在 Knative、riff 和 Serverless,希望揭示的問題是:Spring、函數、無伺服器如何為我所用?

分享一開始,劉凡詢問現場有多少人在用 k8s,舉手的人還是挺多的,這也與當前 k8s 的熱度相吻合。

Knative 構建在 Kubernetes 之上,提供了一系列中間件組件來構建以源碼為中心,基於容器的現代應用,便於這些應用能夠運行在任何雲環境,支持不同的公有雲、私有雲、甚至在第三方的數據中心。

Knative 的每一個組件都是基於 kubernetes 框架或應用並可以進行共享的,同時也是真實場景中成功經驗的總結。Knative 的組件主要關註解決單調重複但複雜的任務,比如部署容器、基於 kubernetes 從源代碼到 URL 的工作流容器編排、針對藍綠部署的路由和流量管理、基於請求的自動彈性擴展、對事件生態綁定運行的服務。

riff 也是一個開源項目,提供 90% 的 Knative 的源碼。劉凡進行了一個 riff on Knative 的演示。對於 riff 來說,第一步是創建 K8S 集群,進行安裝。

對於無伺服器函數,劉凡介紹,其作用是用於讓大家更加關注自己的業務,提升資源的使用效率。不同的工作負載可以使用不同的平台,比如容器編排(CaaS)、應用平台 (PaaS)、Serverless Functions。




無伺服器 /FaaS(Function-as-a-Service)的適用場景包括:數據實時處理、文件實時處理、實時流處理(如日誌流)、實時消息處理、ETL、IOT、移動應用後端、數據分析、API 和微服務開發、Webhook、作業調度、消息推送服務、錯誤處理等很多個。

3

Spring Cloud Gateway 的架構和體驗之旅

Pivotal 軟體開發佈道師 Spencer Gibb 的分享主題是《Spring Cloud Gateway 的架構和體驗之旅》。圍繞 API 網關能讓企業的微服務架構獲得哪些好處、API 網關概念、類型及特徵展開。值得一提的是,他是 Spring Cloud 的成員,更是 Spring Cloud Gateway 的主要貢獻者,這是他第一次來到中國。

Spencer 在演講中首先幽默地拆解了 Spring、Cloud 和 Gateway 的關係及,即 Spring 指的是運營在 Spring Framwork5.0 以上,Cloud 指的是運行在 Spring Boot2.0 以上並按照雲原生的方式開發,而雲原生的模式就是 API Gateway,所以三者相互依賴與共存。

在當前的微服務應用中,應用在調用後端的微服務的過程中,不可避免的會面臨路由、安全、監控、彈性、金絲雀部署等要求,而 API Gateway 就是在這樣的需求和背景下應運而生。API Gateway 的類型可以是 Applicance、SaaS 服務、Web Server、Mesh 和面向開發者的。


 

而具體到 Spring Cloud Gateway,它是基於 Spring boot2.0、Project Reactor 等技術開發的非阻塞網關。

在演示環節,Spencer 介紹了 Spring Cloud Gateway 以及它的架構和開發人員的體驗。現場聽眾了解了路由匹配和篩選,以及與 Zuul 1 體驗的不同之處。Spring Cloud Gateway 作為 Spring Cloud 生態系中的網關,目標是替代 Netflix zuul。

Spencer Gibb 表示,Spring Cloud Gateway 對於開發者的最大意義和價值在於,這是一個雲原生,不僅僅是架構,而是涉及整個流程的持續創新,可以讓開發者直接部署而不用依賴於任何其他團隊和組織。

4

為什麼 Cloud Foundry 是運行 Java 微服務的最佳平台?

Pivotal 高級解決方案架構師李剛的演講主題是《為什麼 Cloud Foundry 是運行 Java 微服務的最佳平台?》

對於企業來說,從開發到生產,經歷了什麼?其實生產之旅並非一片坦途,其間有很多磕磕絆絆。藉助 Spring 和 PAS(Pivotal Application Service,也就是 Pivotal Cloud Foundry——PCF),讓我們能夠快速上升到生產環境。

在對 Spring Boot 和 Spring Cloud 的介紹中李剛表示:所謂 Spring Boot,可以五分鐘構建出一個簡單的應用,甚至這個時間其實可以更短。Spring Boot 的能力特性包括:快速生成應用、自動依賴映射管理、用 profiles 文件來管理不同環境下的配置、強大的開發工具、自動配置、監控並管理 endpoints 、面向微服務。

而所謂 Spring Cloud,這是與 Netflix 合作、專門針對脆弱的基礎設施而設計,這是一個 Java 的微服務框架,100% Spring Boot 支持。

在提及企業為什麼應該選擇 PAS 的時候李剛表示:通過統計,大部分開發人員每天專註於寫代碼的時間並不長,很多時間都用於應用程序的部署、基礎設施的配置等等了,沒有放在代碼本身。

但是對於很多企業來說,很多轉變正在發生。T-Mobile 過去更新和交付新軟體版本需要 72 個步驟、歷時 7 個月,現在實現了當日部署;利寶互助保險集團在一個月內構建部署了一款 MVP 應用,幾個月後便交付了最終版本;康卡斯特一支 4 人組成的運維團隊支持了 1500 位開發人員;

家得寶每月向生產環境交付 1500 次,每月向所有環境交付 17000 次。



5

使用 Spinnaker 在 k8s 上測試、構建和部署應用

Pivotal 解決方案架構師 Paul Czarkowski,他的分享主題是《使用 Spinnaker 在 Kubernetes 上創建開發工作流》。

Paul 在演講一開始就調侃自己既不會 Java 更不會 Spring,自己只是一個運維者。作為運維者,Paul 目前力求改進 k8s 和 OpenStack 等複雜分散式系統的可運維性問題。在演講中,Paul 介紹了 k8s 及其核心組件,藉助 Spinnaker 的演示,著重介紹了 Spinnaker 可以輕鬆創建自定義工作流,用於在 k8s 上測試、構建和部署應用。


k8s 是一個運維平台,具備極大的靈活性,近期受到越來越多的關注,應該說是一個非常熱門的概念。但其實 k8s 部署簡單應用時會遇到一些問題,而 Spinnaker 可以幫助開發者輕鬆創建自定義工作流,用於在 k8s 上測試、構建和部署應用。應該說,Spinnaker 可以節省很多勞動,它是一個開源的雲驅動的應用,是一個好工具,用在多個平台、多個雲上,無論用戶要把雲部署到哪裡。

在分享中 Paul 為聽眾進行了一個 Spinnaker on PKS 的演示,這個演示的安裝和部署還是非常簡單的,只需要 5 分鐘。




點擊

閱讀原文

,觀看 Josh Long 演講以及 Demo 的視頻回放。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

蘋果公司喪失創新力了嗎?丨Q言Q語
最後1天|送大家75本豆瓣8分以上IT暢銷書

TAG:InfoQ |