SpringOne Platform大會見聞
我行過許多地方的橋, ParlayX, VPC, NSX, OVS,
看過許多次數的雲, AWS, GCP, Azure, Aliyun,
喝過許多種類的酒, SS7, SMPP, SOAP, REST,
卻只愛過一個正當最好年齡的, Spring!
今年九月底,我有幸前往美國華盛頓特區參加2018年度SpringOne Platform大會。作為Spring、CloudFoundry、Redis、RabbitMQ等開源技術的擁有者,Pivotal公司每年都會舉辦一次這樣的大會,與全球數千位開發人員、客戶和合作夥伴相聚在一起,交流企業數字化轉型的最佳實踐,探討雲原生應用開發的最新技術。
我最早使用Spring開發應用是在2012年,那個時候Spring3.1剛出來沒多久,還沒有現在的Spring Boot和Spring Cloud,甚至也沒有Spring MVC,我們當時只是用Spring核心框架(包括IoC,AOP,JDBC等),結合struts和hibernate來開發java web應用,當時覺得比JEE已經好用很多了。如今,Spring已經發展到了5.1,其中除了當年的核心框架功能得到優化和增強之外,更是增加了Spring Boot和Spring Cloud,這讓開發者能夠基於Spring非常方便的開發應用,而且能很方便的開發符合微服務架構的雲原生應用。我在參會之前,在大會官網上大概瀏覽了一下大會安排,知道大會有一百多個講演,涵蓋了Spring Framework, Spring Boot, Spring Cloud, CloudFoundry, Data, DevOps, Kubernetes, Serverless Microservices, Application Transformation等多類主題,我對這次大會充滿了期待。
大會第一天,以開發人員參加Workshop動手練習為主,參加者在講師的指導下完成一系列開發任務。以前我參加類似的大會都是被動式的聽講,而這次一上來就是開啟隨身攜帶的Laptop,連上大會現場的WIFI,按照講師的指導開始編寫程式碼和執行指令,那種切切實實的操作,一個坑一個坑的趟下去的感覺真是非常過癮。上午,我參加了Modernizing and Moving App to Cloud with PCF and AWS,在這個Workshop中,來自Amazon的講師Ryan Niksch先展示了一下在PCF上如何部署配置AWS ServiceBroker,然後讓參加者開啟Laptop開始練習,在PCF建立AWS Polly和S3的服務例項,利用cf push指令一鍵部署應用,最後將AWS Polly or S3服務例項繫結到指定的應用,做完這個Workshop後,參加者對PCF的常用指令以及和AWS的服務整合都有了基本的印象。下午,我又參加了Serverless with Spring Cloud, Riff and Knative,在這個Workshop中,來自Google的講師Ray Tsang一上來就讓大家開啟Laptop登入GCP,開始基於Kubernetes/Knative/Riff的一系列任務,先在GCP上建立Kubernetes叢集並安裝Riff及其依賴的Istio/Knative,然後開發部署兩個Riff函式,最後建立Eventing bus和channel將兩個Riff函式進行關聯,使得兩個函式能依序處理某一觸發事件,並得到預期的結果,我在做這個Workshop之前並沒有接觸過Riff,但是我順利完成了這一系列任務,並且對Riff和Knative有了基本的理解。一天Workshop做下來,最大的收穫是激發了我對Knative和Riff的強烈興趣。
其實大會在第二天,才算正式拉開帷幕,這一天首先登場的是Pivotal負責研發的高階副總裁Onsi Fakhouri,他分析了企業在數字化轉型過程中面臨的挑戰,以及Pivotal如何從工具、平臺、技術和服務等諸多方面幫助客戶應對這些挑戰,他的演講生動而又透徹;在他之後,來自Pivotal的Juergen Hoeller介紹了Spring Framework 5.1 on JDK 8&11,來自Google的Mark Chmarny介紹了Knative,來自Pivotal的Mark Fisher介紹了Riff,這些演講嘉賓都是業界知名的資深技術專家,他們的演講為參會者指明瞭未來五年的雲原生技術發展方向;接著,波音公司CIO兼高階副總裁Ted Colbert上場,介紹波音公司如何在Pivotal的幫助下加快企業數字化轉型的步伐,利用PCF平臺技術和Pivotal Labs服務,從技術和人才兩方面推動公司進入自己的雲原生時代。
主會場結束後,我先後聽取了遷移企業應用上PCF的工具和方法,基於Spring Cloud服務的雲原生應用開發,Spring Cloud和Istio兩種微服務框架的比較,測試驅動Spring Boot應用的開發等等。有的講師會娓娓道來他們的實際案例,有的講師會當場和你一起編寫程式碼,都讓我受益頗多。這裡我重點講一下遷移企業應用上PCF的工具和方法,實用工具有很多,比如SNAP,它用於分析應用遷移時的關注點和難易度;比如Tracker,它用於跟蹤專案的需求、任務分解和代辦事項,使之一目瞭然;比如Concourse,它和Jenkins一樣用於程式的自動化構建部署和釋出;關於方法,Pivotal Labs做過很多類似的專案,所以積累了一套行之有效的敏捷方法,比如結對程式設計,比如測試驅動開發,比如微服務化時的領域驅動設計等等。Pivotal Labs有一個部門叫AppTx,專門負責將企業應用遷移到雲應用平臺PCF上來,然後進行微服務化改造。為了更好的為中國企業服務,Pivotal Labs於今年年初在國內也組建了AppTx團隊.
當前的世界處在快速發展之中,而且越來越以軟體為導向,企業和組織應該如何進行軟體資產的創新,來跟上世界變化的速度,這是大會第三天不少的主會場演講者論述的重點。當前,將應用部署上雲已經成為業界共識,很多企業和組織,已經將應用遷移到PCF這樣的PaaS雲平臺,因為PCF提供了功能強大的框架和豐富實用的工具,能夠讓客戶只需關注業務本身,從而獲得企業快速發展所需的產品迭代速度,來自美國空軍Cyberspace Innovation的技術總監Lauren Knausenberger和Bryon Kroger上尉介紹了美國空軍如何與Pivotal Labs展開合作,來實現美國空軍軟體系統的創新;來自Pivotal的資深工程師Jon Schneider介紹了Spinnaker,這是一個開源且支援多雲的持續交付平臺,在多雲的世界,即是雲平臺發生變化,也可以用Spinnaker完成相同的交付工作;隨後,來自McChrystal Group的總裁Chris Fussell,來自Microsoft的Azure雲開發佈道師Bruno Borges,來自Accenture的首席技術官Paul Daugherty等業界精英也登場進行了精彩的演講,不一一詳述。
主會場結束之後,我先後聽取了在PKS上執行Apache Kafka,用Spring Flux實現Reactor執行模式,用Istio結合Kubernetes實現服務網格,Knative介紹等等。資訊量太大,不一一展開說了,在這裡重點介紹一下Knative,大家知道,Kubernetes只是個容器編排系統,Kubernetes自身只能部署容器級別的工作負載,這個系統本質上是給運維人員用的。開發人員用起來往往會遇到困難,開發人員希望的是能夠和PCF一樣,直接往平臺一鍵推送原始碼並可以很好的執行,而這就是Knative的使命。Knative可以在任意雲環境的Kubernetes和Istio之上執行,負責構建、部署和執行無伺服器化的函式,它由Google、Pivotal等公司發起開源,包含三個模組:Serving, Build, Eventing。Serving模組負責部署和執行無伺服器化的函式負載,它支援函式的執行可由HTTP或Message請求驅動,彈性伸縮可至零,並可利用Istio實現叢集內的路由分發以及進入叢集的入口連線;Build模組負責將原始碼構建成容器,它基於Google的容器構建服務,提供了一個可插拔的構建模型,可擴充套件實現多種構建方法,Buildpacks就是Pivotal提供的一種構建容器模式;Eventing模組實現函式釋出和訂閱事件流的能力,函式遵循CloudEvents規範來發送和接收事件,它也提供了可插拔的事件源和訊息代理模型,輕鬆支援多種訊息代理服務如Kafka, Google Pub/Sub, RabbitMQ等。有了Knative之後,整個Kubernetes體系就面貌一新了,我覺得Kubernetes+Istio+Knative+Riff將會成為雲應用平臺的一個發展方向。
事實上,我們身處一個複雜多變的世界,企業和組織面臨著各種各樣的境地和挑戰,這說明雲發展方向也將會存在多樣性。大會第四天也是最後一天,大會接近尾聲,在這天的主會場,演講嘉賓給我們講述他們軟體團隊曾經面臨的困境。StubHub是eBay旗下的全球最大的票務網站,每年購票人次達1.5億,客戶遍佈48個國家和地區,提供超過100萬項體育、娛樂和其他現場活動的票務服務,但是他們面臨系統分散式架構和業務快速迭代的問題;星展銀行(DBS Bank)是東南亞最大的銀行,有280多家分支結構,為廣大個人使用者提供豐富多彩的個人金融業務和應用,但是他們面臨著系統應用單體化、使用者體驗和開發人員效率的問題。在企業數字化創新這一趨勢下,他們都選擇了PCF平臺和Pivotal Labs服務,將應用平臺雲化,將應用架構微服務化,將應用部署自動化,將團隊敏捷化,現在,他們的系統兩年內無停機無業務中斷,軟體迭代速度提升了十多倍,人工的繁瑣運維工作大為減少,他們已經取得了令人驚歎的進步。
SpringOne大會歷時4天終於落下帷幕。百餘場講演,大咖雲集,乾貨滿滿。從TDD/CI/CD/DevOps敏捷開發工具和組織結構的最佳實踐,到企業數字化轉型時應用往雲上遷移的例項介紹,如數家珍;從Java和Spring未來幾年的相容版本和發展路線,到SpringFramework5的Web和Data層面的Reactive的全棧支援,娓娓道來;從PCF on AWS環境如何用ServiceBroker呼叫S3等AWS服務的動手練習,到GCP上部署Riff並快速實現函式即服務的實操演練,逐一講解;從基於SpringBoot2和SpringCloud的雲原生應用開發的程式碼分析,到Kubernetes環境快速構建部署應用或函式的Istio/Knative/Riff等新技術的介紹和Demo實現,均有涉獵。
四天的時間收穫很多,我聆聽了多家企業將遺留應用遷移到PCF上的例項介紹,吸收了一些Spring測試、安全或是Reactive方面的技能,也接觸了Istio、Knative和Riff這些新興的技術,但我覺得最大的收穫,是看到了當今雲平臺的發展方向,PaaS和CaaS在相當長的一段時間依然會是企業應用部署的首選,而FaaS的時代即將到來。
最後我要說的是,SpringOne Platform大會雖然很好,但是飛行十四個小時到美國華盛頓特區確實比較辛苦,還要倒時差,而且那邊飲食也不習慣。一個好訊息是SpringOne Tour大會即將於11月3日在北京舉行,多位剛剛在華盛頓SpringOne大會上發表演講的全球知名技術專家都將專程趕來。這絕對是Spring社群在中國的頂級盛會,點選大會官網:ofollow,noindex" target="_blank"> http://pivotal-china.com/html/event/springone_tour.html?channelID=gw 可以免費報名。
3606-1538993077362.png"/>