Fork me on GitHub

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 示例之类的资源。

  英文原文链接:https://www.globenewswire.com/news-release/2019/09/10/1913510/0/en/Ballerina-Reinvents-Cloud-Native-Middleware-as-a-Programming-Language-Puts-ESB-on-the-Path-to-Extinction.html

来自:
云头条(ID:YunTouTiao)

作者:Johnson
原创文章,版权所有,转载请保留原文链接。