當前位置:
首頁 > 科技 > ESB 走上滅絕的道路:編程語言 Ballerina 重塑雲原生中間件

ESB 走上滅絕的道路:編程語言 Ballerina 重塑雲原生中間件

開源Ballerina 1.0語言從根本上簡化了廣大開發人員構建和部署雲原生分散式應用程序和服務的方式。

遍地開花的數字服務、移動應用程序和聯網設備導致終端數量激增:從API、事件、數據流、微服務、serverless應用程序到其他數字資產,不一而足。今天的開發人員需要一種比傳統的集中式企業服務匯流排(ESB)更現代更敏捷的方法來連接這些端點。近日推出正式版的Ballerina 1.0首次以一種編程語言的角色提供雲原生中間件,以此實現這一目標。因此,Ballerina的這種新語言從根本上簡化了廣大開發人員構建和部署雲原生分散式應用程序和服務的方式,Ballerina是WSO2創立和支持的一個開源項目。

Ballerina項目的創始人兼負責人Sanjiva Weerawarana博士說:「現代應用程序實際上整合了來自大批資源的服務、數據、事務和流程,以提供創新的新服務。但是ESB及其他傳統的整合方法未能與時俱進。Ballerina編程語言有助於在開發雲原生分散式應用程序方面迎來重大的飛躍,這種應用程序正在消除應用程序開發和整合之間以往的障礙,從而提高靈活性、性能和彈性。該編程語言還在此過程中加快ESB走向滅絕的道路。」

Ballerina面向現代雲原生編程

Ballerina是第一種基於現代應用程序編程需要創建和使用API這個概念的語言。Ballerina程序效仿序列圖(sequence diagram)概念,自編文檔,完全適合微服務的模式和雲原生開發的模式。充分利用(REST)的API和gRPC API創建起來簡潔明了。早期用戶聲稱,用Ballerina開發API比其他語言更高效,原因是其語法圍繞服務、端點和網路類型(比如JSON和ProtoBuf)而設計;簡單的注釋可自動為Kubernetes、Docker和Istio創建部署。

Ballerina語言採用了特別的架構,充當面向雲原生應用程序和微服務的以語言為中心的平台的核心。它擁有現代編程語言理應擁有的所有通用功能,還引入了幾個不同尋常的方面,使其特別適合編寫和使用API?6?7?6?7。這包括:

專門用於使用和提供網路服務的語言構件。

面向並發和網路交互的與序列圖緊密對應的抽象和語法——為任何Ballerina源代碼支持文本表示與圖形表示之間的雙向映射作為序列圖。

比傳統的靜態類型語言更靈活、允許更鬆散耦合的結構類型系統——結合來自多個獨立設計的系統的數據時特別有用。

克服ESB的雲原生缺陷

現有的ESB在滿足現代應用程序開發和整合的需求方面存在重大缺陷,包括加劇集中開發的瓶頸、與敏捷開發不合適以及導致在開發人員中口碑不佳的低性能配置語言。與ESB和業務流程工作流工具不同,Ballerina旨在適合現代開發生命周期——可以與眾多工具協同運行:持續集成和持續交付(CI/CD)工具,比如Jenkins、Travis和Codefresh;可觀察性工具,比如Prometheus、Zipkin和Honeycomb;以及Kubernetes等雲編排系統。而與ESB配置語言不同,Ballerina是一種正宗的編程語言,因此開發人員在解決複雜問題時不至於無計可施。

Ballerina語言與Ballerina平台一起設計,後者為現代軟體工程流程和工具鏈提供全面支持。Ballerina平台包括下列部分:

軟體包/模塊管理框架,包括依賴項和版本管理;

Ballerina Central,用於在開發人員之間共享模塊的公共Web服務;

面向Visual Studio Code和IntelliJ Idea的IDE工具插件,支持Ballerina程序的文本和圖形化開發及調試;

用於Ballerina程序文檔編製和測試的框架;

面向OpenAPI(Swagger)和Protocol Buffers v3/gRPC的內置工具;

一套全面的標準庫,支持許多網路協議、數據源和數據格式,便於採用該語言

相比早期的預生產版本,Ballerina 1.0版本添加了幾項新功能,包括如下:

支持穩定的語言規範:2019R3

針對Java虛擬機(JVM)的新Ballerina編譯器

Java互操作性,以便用戶從Ballerina調用Java代碼

Ballerina開發者工具全面重新設計

Ballerina 1.0還包括添加構件以提供其他中間件功能的試驗性功能,比如事件流處理和分散式事務。工作流程和可靠的消息傳遞功能也在開發之中。

Ballerina是一個百分之百開源的項目,項目的所有部分都在https://github.com/ballerina-platform上公開發布。

早期用戶反饋Ballerina的優點

摩托羅拉的集成架構師兼高級經理Sri Harsha Pulleti說:「我們被Ballerina的雲原生功能所吸引,比如自動生成Docker、Kubernetes和Helm工件,另外它佔用資源少、啟動時間更短。它還能夠在AWS中作為Lambda函數(serverless)來運行。總之,這些功能使我們能夠在大規模環境下的容器中輕鬆運行微服務,並與CI/CD工具整合,不用花太大的力氣。」

美國一所知名大學的應用程序架構師Jim Kittle說:「Ballerina默認情況下支持快速、高質量、12-factor就緒的部署。強大的注釋集是一種出色的「功能齊全」(batteries included)的方法,將使開發團隊和運維團隊在開發之初就可以進行協作。」

solo.io的現場首席技術官Christian Posta說:「[有了Ballerina],你可以自動獲得序列圖。情況開始變得複雜,你又需要了解並與團隊的其餘成員交流你在構建的軟體時,這些圖變得大有幫助。」

供貨情況和支持

Ballerina 1.0已上市。作為採用Apache許可證2.0發布的一款完全用開源實現的產品,它不收任何許可費,可以在此處(https://www.globenewswire.com/Tracker?data=xYMmuw-o-BX0r8gwWhmba223D7c9-TNvvEzP22KmtIbgSK3_gb4SOTQWMoItBlW9AW1ZHMiVu4J8pq40vZJOjZ2fBPQSK0PZ_Gcxh9Dj0pzFUGU0VNwO4fwwJ5IzZa-5yAJWpFjnVhWtdXHF9vpEaF_CHRExMs5Kig5TcHkeWF8Jj3-Kcs9dI4oebNNKM_SkpqBF646pjHj9CFeX4SR5Nw==)免費下載。

用戶可以通過Ballerina的Slack Channel、Google Group或Github,藉助不斷壯大的開源社區獲得支持。此外,可以在此處(https://www.globenewswire.com/Tracker?data=X1Lp_V4HzO9XF2HCeQMTzsyhnhcZ7xe-_uTvEy8O9NeG_xrn-mOmk43a-A3bhNuT4dixi7tUxhVt9GTLdBSB2sZHFovW6W5HvVGEMiNtMtqaCv4zDd4dK2gpNI0ahki_akBQQq62TDS_BdSrxu9vEV-0hAHafSwVohssB526BMcpLvNotQOP6IgQiWMrk_A6)找到諸如Quick Tour和Ballerina示例之類的資源。

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


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

俄羅斯立法者提議在智能手機上強制預裝本國軟體
重磅!AWS中國喜迎女帥:張文翊