Microsoft的开源软件Dapr(分布式应用程序运行时)已达到1.0版。 Dapr是一个支持微服务开发的运行时,从2019年10月Alpha版本发布一年半后发布用于生产。
开发微服务时,如何设计应用程序通信很重要。到目前为止,在微服务的开发中,诸如每个应用程序和数据存储之类的元素彼此直接通信,这使得很难转换为单个微服务并替换应用程序,或者可能成为引入新应用程序的障碍。
简而言之,Dapr是一种服务,它总结了微服务的角色和功能,并且有一个运行时透明地为应用程序提供通信功能。引入后,每个应用程序都不依赖于运营商,从而使将服务移至不同环境或引入新应用程序变得更加容易。例如,使用Dapr进行应用程序,数据存储和通信,可以在不更改应用程序代码的情况下区分测试环境中的Redis和生产环境中的云数据库。
Dapr功能不是集成框架,而是作为每种通信类型的构建块提供的。例如,如果只想使用状态管理功能,则只需引入一个块而不引入所有Dapr功能就可以满足要求。应用程序的结构可以使用HTTP或gRPC来访问Dapr,而使用Java,Python,Go,JavaScript和Rust等语言提供的SDK可以访问gpr。 Dapr不打算在Kubernetes中使用,但是当在Kubernetes中使用时,Dapr容器作为边车插入锅中。
作为管理微服务应用程序之间通信的系统,有一个由Istio表示的服务网络。服务网格和Dapr具有分布式服务跟踪功能和识别输出功能等通用部分,但前提是完全不同的。服务网格旨在管理整个微服务网络,而Dapr旨在支持不依赖执行环境的便携式微服务的开发。
该Dapr在2019年10月发布Alpha版本一年半之后,于2021年2月17日达到1.0版本。1.0版本将其自身定位为从开发到生产的生产就绪状态。在Alpha版本中,Dapr GitHub存储库的贡献者数量稳步增长,到2021年2月达到700名。Dapr还参与了阿里云,HashiCorp和Carl Zeiss的开发。例如,Dapr的PHP SDK是由一名工程师在Automatic的敌人开发的。此外,据说卡尔·蔡司(Carl Zeiss)已将Dapr引入其系统。
Dapr表示,这是社区内部为达到1.0版所做的努力的证明。将来,它还考虑在增强现有构件的同时提供读取或写入云设置的新构件。相关信息可以在这里找到。