天天看點

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程序?

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程式?

快速發展和變化的業務需求所帶來的挑戰正在驅動現代企業數字化轉型,雲原生應用系統的建構是其中最為重要環節之一。

目前,雲原生應用開發架構Spring(包括Spring MVC、Spring Boot、Spring Cloud、Spring Cloud Dataflow)已經占據Java軟體開發架構的統治地位。在Snyk最新的2018 JVM生态調查中表明:40%被調研的開發者正在使用Spring Boot,36%被調研的開發者正在使用Spring MVC;2018年也是Spring Boot首次超過Spring MVC成為最受歡迎的Java軟體開發架構。Spring Boot和Spring MVC都是Spring家族的軟體開發架構。

Spring開發架構自2002年誕生以來一直備受開發者青睐,如今伴随着雲計算時代的發展,越來越強大的Spring已俨然成為現代企業構築雲原生應用系統和DevOps體系軟體開發架構之事實标準和最佳實踐。

Spring雲原生應用開發架構之前世今生

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程式?

第一代的Spring開源開發架構誕生于2002年,這是針對企業級Java應用的開發架構。Spring的創造者成立了SpringSource公司,相繼收購了Groovy、Grail、Cloud Foundry等開源軟體的主要支援公司,并獲得了世界頂級核心開發者和開源社群貢獻者;2009年,雲計算上司者VMware收購SpringSource。2013年由Spring和Cloud Foundry核心成員組成極具創新的Pivotal軟體公司。至此,Pivotal成為Spring和Cloud Foundry,GemFire等開源社群的最重要支援者、貢獻者和上司者。

Spring Boot誕生于2013年,這是一個輕量級的Spring架構,可以快速建立基于Spring架構的應用并立刻運作起來。Spring Cloud誕生于微服務極為流行的2015年,其目标是成為微服務架構在Java領域的落地标準。随着企業軟體向雲端遷移,以及更多的企業雲原生應用建立,Spring家族全套軟體産品(Spring全家桶)已經成為基于微服務的DevOps主流軟體開發環境、平台和工具。在Pivotal公司的全力投資和貢獻支援下,Spring社群和Spring全家桶正在全面繁榮并被企業應用設計開發者選擇為技術路線。

2018年11月初,Spring再次見證了中國開發者的熱情。來自Pivotal 公司的Spring技術布道師、Spring開源社群專家、開源貢獻者、6本Spring和Java等相關書籍的作者Josh Long在SpringOne Tour 2018北京站上表示:“中國網際網路的規模和發展速度至少要比矽谷早一年,來自中國的需求和中國開發者正在成為推動Spring發展的主力軍。”

此次SpringOne 北京站上,來自Pivotal公司的Josh Long、Spencer Gibb、Mark Heckler、Michael Cote、Paul Czarkowski等業界頂級開發者和架構師為中國開發者帶來了關于Cloud Natvie Spring、Spring Boot新特性、SpringCloud Gateway、Spring Cloud Apps on Pivotal Cloud Foundry等精彩的演講和現場代碼示範。

新一代雲原生軟體開發環境

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程式?

(上圖為Pivotal 公司的Spring技術布道師Josh Long)

自2012年開始,Pivotal公司的Josh Long每年都來到中國,在北京、上海、杭州等地與中國的技術人員交流。Josh Long代表Pivotal和Spring多次到訪大型中國網際網路和交易平台公司,對于中國網際網路技術開發人員所做的事情,感到非常驚訝。2013年4月,他在Spring社群發表文章《Spring的中國規模》,向外界介紹了中國網際網路雙十一期間的巨大交易規模挑戰及其Spring最佳實踐。

Josh Long在其2013年文章中介紹到,中國網際網路及交易平台的技術開發人員廣泛應用Pivotal技術,包括核心Spring架構、Spring MVC、Spring Security、Groovy等等,令人感到了Pivotal的開源軟體和平台的強大能量。Josh Long表示,中國技術開發人員廣泛采用Spring架構,而這一架構也已經普遍應用于Facebook、Google、Twitter等大型全球化網際網路公司,經過規模商業環境檢驗,因而中國企業和網際網路公司能夠很快地完成從開發到向生産環境的軟體開發生命周期。

Spring架構的好處在于降低了大規模分布式軟體開發成本和難度、提高了團隊之間的溝通效率以及快速疊代,尤其适合小型靈活團隊和代碼的分布式開發,并且很容易水準擴充以應對業務快速增長、變化。不同于Ruby on Rails這類的“強意見”開發工具,Spring Boot既提供了針對場景的完整技術方案,也可以把這些設定全部抛棄,讓開發者靈活選擇自己的技術方案。Spring Cloud則是面向雲環境的一站式微服務管了解決方案,讓開發者專注于代碼開發即可,而不必耗費精力在雲基礎設施管理上。

Spring架構包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow集合的完整解決方案。除了提供基本雲原生微服務建構,還提供全面的服務治理和配套設定,整體優于其它基于開源的方案。架構吸收了Netflix、Facebook、Google、Twitter等多家大型頂級公司的技術所長,融合貫通之後又提供了簡化使用者體驗的産品。

目前,Spring Cloud已經針對Google雲GCP、微軟雲Azure、AWS等提供了API,可以流暢接入這些公有雲基礎設施。2018年10月30日,Spring Cloud釋出了Spring Cloud for Alibaba 0.2.0版本,旨在擴充更加廣泛的多雲生态系統,充分展開合作,讓Spring開發者具備更佳的靈活性和更多選擇,輕松使用Spring Boot和Spring Cloud開發Java應用。

再次颠覆企業級軟體開發

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程式?

(上圖為Pivotal軟體開釋出道師Spencer Gibb)

SpringOne Tour 2018北京站上,Josh Long以及另一位全球Spring社群重量級人物、Pivotal軟體開釋出道師Spencer Gibb一緻認為,Spring技術最新、最重要的更新就是Spring Framework 5.0以及其所推行的新企業級軟體開發模型:Reactive Programming(響應式程式設計)。

什麼是Reactive Programming? Reactive Programming對開發者的收益是什麼呢?簡單了解,Reactive Programming的好處就是異步處理機制。在傳統的單機時代,所有的邏輯、流程等機制都是按順序串行的;而到了分布式環境中,一方面把一個大的邏輯或流程分拆為若幹小邏輯和小流程後放到不同的機器上處理,處理完畢再把結果合并回來,這個過程仍然是同步并行執行的;而更進一步就是異步處理。響應式程式設計提供了另一種程式設計風格,專注于建構對事件做出響應的應用程式。

對于雙十一這樣巨大的資料和交易規模,即使是分布式處理也不能滿足其需求,是以大型網際網路公司早已開始探索異步處理機制。所謂異步處理機制,把一個大的邏輯或流程拆分成更小的部分後,随機交給不同的機器處理,處理結果的回收也不必等其它機器處理完畢,而是處理完成就馬上回收。異步處理可以了解為“交響樂”,每個樂器按不同的步調、不同的頻率、不同的音階各自處理後,整體仍然是很和諧完整的樂章。

Josh Long解釋Reactive Programming的一大收益就是基于異步處理機制的I/O,用同樣的資源處理更多的I/O請求而不用一直占用系統資源。Reactive Programming的另一個收益就是更加穩定的程式設計模型。在網際網路的大型分布式處理系統中,伺服器等計算資源的當機是随時發生的。是以在編寫網際網路大型分布式軟體時,要把底層基礎設施的随時當機或各種意外情況都要考慮進代碼中,無伺服器程式設計就是應對這一挑戰而産生的程式設計模式。Reactive Programming則通過代碼本身,讓開發者先天要考慮“系統如何失敗”這一問題,進而讓軟體更具有彈性,系統更加健壯。

Pivotal如何組織Spring的技術程序?

Spring全家桶帶來雲時代的軟體開發變革Spring雲原生應用開發架構之前世今生新一代雲原生軟體開發環境再次颠覆企業級軟體開發Pivotal如何組織Spring的技術程式?

(上圖為熱情的中國Spring開發者們)

Pivotal公司是Spring開源技術背後的重要推動者,很多Spring的重要貢獻者都在Pivotal公司任職。那麼,Pivotal是如何考慮群組織Spring的技術發展呢?

Spencer Gibb在Pivotal負責Spring Cloud的開發工作,Spring Cloud是Spring最新的技術成就,也是面向雲原生環境的管了解決方案。在雲計算環境中,由于在雲資料中心采用了更多的節點、更多的X86伺服器以及更多的軟硬體,導緻整個分布式系統更加複雜、更加傾向于出現各類問題。目前有不少雲環境的開源管了解決方案,例如Eureka等都可以幫助開發者管理雲基礎設施環境,但這些工具往往需要開發者自己做很多配置和管理工作,Spring Cloud則把很多工作都以自動化方式完成了。

最新釋出的Spring Cloud Gateway就是這一“使用者友好”思想的産物。Spring Cloud Gateway是基于Spring Framework 5.0、Spring Boot 2.0和Project Reactor等技術開發的網關,旨在為微服務架構提供一種簡單而有效的統一API路由管理方式。Spring Cloud Gateway作為Spring Cloud生态系中的網關,不僅提供統一的路由方式,并且提供網關基本功能,如安全、監控/埋點和限流等等。在企業級環境中,Spring Cloud Gateway既可以路由給傳統Legacy系統,也可以路由給Pivotal Cloud Foundry私有雲系統等。

Spencer Gibb表示,Spring Cloud Gateway的開發曆時兩年時間,在2018年6月釋出了GA版本。Spring Cloud之前已經內建了Zuul1,兩年前當Netflix釋出Zuul2的時候,Pivotal的Spring開發團隊開始思考是否可以提供更好的開發者體驗,于是就在Project Reactor、Spring Framework 5.0等其它Pivotal Spring團隊的工作基礎上,專注于Gateway這樣一個小的領域進行開發。Spencer Gibb形容這有點像整車開發與單個部件開發之間的關系,Pivotal公司有不同的Spring團隊負責“整車開發”以及其它部件的開發,這樣Spencer Gibb所帶領的Spring Cloud團隊就可以更加專注。

Spencer Gibb介紹Pivotal Spring團隊是按年度來規劃Spring的技術進展。Pivotal Spring團隊每年兩次聚集到一起讨論業界的最新趨勢和技術進展,平時也不斷從SpringOne技術社群、Github以及Twitter等處收集開發者和使用者的回報,結合業界最新的技術進展以及使用者回報的結果後,Pivotal的Spring團隊就可以設定下一階段的開發方向。

Josh Long和Spencer Gibb都注意到了中國龐大的Spring生态及軟體開發者,這也是Pivotal公司近年來不斷投資中國市場的SpringOne系列活動的主要原因。正如Josh Long所觀察的現象,在矽谷開發一個網際網路應用可能要數年時間并在多個市場成功後才能成長為一個巨型系統,而中國一個市場就可以在一年間支撐起巨型網際網路系統,這種獨特的中國網際網路規模為Spring等技術提供了巨大的發展空間。

采訪過程中Josh Long熱情的表示,由于語言的問題,中國開發者對Spring的貢獻難以被中國以外的市場察覺和認知。他歡迎更多的中國開發者到Spring.io上交流。他本人從2011年1月開始每周二會釋出一個當周的Spring社群更新,迄今已經堅持8年了,從未間斷;現在他還會提供每月的彙總,友善更多的開發者了解Spring社群和技術進展。Josh Long 還有自己的部落格,“歡迎大家到我的部落格上,加我的微信,我很願意跟大家交流”。

總結而言,微服務、容器服務、DevOps、CI/CD相結合共同支援企業的雲原生應用體系建構。Pivotal 公司作為Cloud Native雲原生概念的提出者、領域的技術先驅與倡導者,不斷大力推動Spring開源社群和生态,促進和提供微服務系統建構的平台,架構和工具,Spring Boot、Spring Cloud就是最強大架構之一。Pivotal雲原生平台結合Spring架構按照三階段架構持續發展,支援從開發、測試到生産的雲原生應用全生命周期:第一階段為雲原生應用架構、雲原生運作時平台、雲原生運維;第二階段為指導現代應用和微服務架構設計的12要素、容器編排、基礎設施自動化;第三階段為Cloud Foundry Buildpacks及Spring Cloud、Cloud Foundry彈性運作時以及Cloud Foundry BOSH多雲運維管理平台;而在最下層就是支援這一系列變革的雲原生文化。除了雲原生平台的演進外,Pivotal的大資料及資料平台Greenplum和GemFire也在與時俱進,支援最新的機器學習等新興企業級應用。

Spring軟體家族不僅帶來了雲時代的軟體開發變革,也将有機會讓中國開發者和中國的規模效應産生全球影響力,這也是中國在全球軟體業的機遇。 基于Spring建構的雲原生應用系統,結合Pivotal Application Service雲原生平台、Pivotal Container Service容器服務平台、Pivotal Function Service無伺服器平台,加之完整的現代雲原生系統建構方法論,将幫助現代企業更加順暢地完成數字化轉型之路。(文/甯川)

繼續閱讀