首页 / ASP.NET / 正文

什么是Dapr

1834 发布于: 2022-03-07 读完约需7分钟

分布式应用程序运行时介绍

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。

任何语言,任何框架,任何地方

如今,我们正经历着上云浪潮。 开发人员习惯于 Web + 数据库应用架构(例如经典 3 层设计),但对天然支持分布式的微服务应用架构却感觉陌生。 成为分布式系统专家很难,并且你也不需要这么做。 开发人员希望专注于业务逻辑,同时希望平台为其提供可伸缩的、弹性的、可维护的和云原生架构的其他功能。

这就是Dapr所要解决的。 Dapr 将构建微服务应用的 最佳实践 设计成开放、独立和模块化的方式,让你能够使用任意的开发语言和框架构建可移植的应用程序。 每个构建块都是完全独立的,您可以采用其中一个、多个或全部来构建你的应用。

此外,Dapr 是和平台无关的,这意味着您可以在本地、Kubernetes 集群或者其它集成 Dapr 的托管环境中运行应用程序。 这使得您能够在云平台和边缘计算中运行微服务应用。

使用 Dapr,您可以使用任何语言、框架轻松构建微服务应用,运行在任何地方。

云平台和边缘计算的微服务构建块

在设计微服务应用时,需要考虑很多因素。 Dapr提供了一些常用功能的最佳实践,开发人员可以使用标准模式进行微服务应用的构建,并部署到任意环境中。 Dapr 通过提供分布式构建块来实现此目的。

每个构建块都是独立的,这意味着您可以采用其中一个、多个或全部来构建应用。 目前,可用的构建块如下:

Sidecar 架构

Dapr以 sidecar 架构的方式公开其API,可以是容器,也可以是进程,不需要应用代码包含任何 Dapr 运行时代码。 这使得 Dapr 与其他运行时的集成变得容易,在应用逻辑层面做了隔离处理,提高了可扩展性。

托管环境

Dapr可以托管在多个环境中,包括在Windows/Linux/macOS机器上自托管和Kubernetes。

自托管

自托管模式 下,Dapr 运行一个单独的 sidecar 程序,在您的服务代码中可以通过 HTTP 或 gRPC 调用它。 每个运行的服务都有一个 Dapr 运行时进程 (或 sidecar) ,配置为使用状态存储, pub/sub,绑定组件和其他构建块。

您可以使用 Dapr CLI 在本地机器上运行启用了 Dapr 的应用程序。 请使用 入门示例。

Kubernetes 托管

在托管在容器环境中(如 Kubernetes),Dapr 作为 sidecar 容器运行,和应用程序容器在同一个 pod 中。

在 Kubernetes 中, dapr-sidecar-injector 和 dapr-operator 服务提供一流的集成,以将 Dapr 作为 sidecar 容器启动在与服务容器相同的 pod 中 ,并为在集群中部署的 Dapr 组件提供更新通知。

dapr-sentry 服务是一个认证中心,它允许 Dapr sidecar 实例之间的相互 TLS 进行安全数据加密。 关于 Sentry 服务的更多信息请阅读 安全概述

在 Kubernetes 集群中部署和运行启用 Dapr 的应用程序非常简单,只需向 deployment 方案添加一些注解。 访问 Kubernetes 文档上的 Dapr

开发者语言 SDK 和框架

Dapr 提供各种 SDK 和框架,便于开始以您喜欢的语言与 Dapr 一起开发。

Dapr SDKs

为了让不同语言使用 Dapr 更加自然,它还包含了 语言特定的 SDK:

  • C++
  • Go
  • Java
  • JavaScript
  • Python
  • Rust
  • .NET
  • PHP

这些 SDK 通过特定语言 API 来暴露 Dapr 构建块的功能,而不是调用 http/gRPC API。 这使您能够以自己选择的语言编写无状态和有状态功能和 actors 的组合。 由于这些 SDK 共享 Dapr 运行时,因此您可以获得跨语言 actor 和功能支持。

开发框架

Dapr 可以与任何开发框架集成。 下面是一些已经和 Dapr 集成的。

Web

集成和扩展

访问 integrations 页面,了解 Dapr 对各种框架和外部产品的一流支持,包括:

  • Azure Functions runtime
  • Azure Logic Apps runtime
  • Azure API 管理
  • KEDA
  • Visual Studio Code

为运维而设计

Dapr 专为 运维 和安全性而设计。 Dapr sidecar、运行时间、组件和配置都可以轻松、安全地管理和部署,以满足组织的需求。

通过 Dapr CLI 安装的 服务仪表板提供了基于 Web 的 UI ,使您能够查看信息,查看日志以及 Dapr sidecar 的更多内容。

监控工具支持 提供 Dapr 系统服务和sidecar 的更深入的可见性,Dapr 的 可观测性能力 提供了对应用程序的深入了解,例如追踪和度量。

原文转载自:https://docs.dapr.io/zh-hans/concepts/overview/

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: API接口调试工具有哪些--Postman,Insomnia,ApiPost,REST Client,Fiddler Everywhere...

下一篇: 我来推荐,你随意挑!推荐7款非常棒的将代码片段转换成图片的工具

本文永久链接码友网 » 什么是Dapr

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册