这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

国外用户案例

Dapr在国外的用户案例

1 - Bosch

Bosch/博世

1.1 - Bosch概述

Bosch/博世概述

公司介绍

世界知名制造商博世(Bosch)创建了一家名为 Residential IoT Services GmbH ( 住宅物联网服务有限公司 / RIoT) 的初创公司。专注于智能家居解决方案。

RIoT 运营着一个智能家居平台,用于跨设备和电器的自动化和信息,并开发了 Home Connect Plus 应用程序。家庭用户可以通过 Home Connect Plus 连接,自动化和集中控制来自不同品牌的各种智能家居设备和整个系统。

Customer:Residential IoT Services GmbH (Bosch-Group)

Industry:Manufacturing

Size:10,000+ employees

Country:Germany

Products and services

  • Azure Application Gateway
  • Azure Cosmos DB
  • Azure Key Vault
  • Azure Kubernetes Service (AKS)
  • Azure Service Bus

主要应用场景

为了控制和自动化智能家居设备,客户使用来自RIoT的Home Connect Plus移动应用程序,该应用程序向RIoT平台发送请求。

事件驱动的微服务

  • binding 构建块
  • pub / sub 构建块

“Dapr 为我们提供了对基础结构组件(如服务总线)的抽象级别。这使得进入发布/订阅模型变得更加容易,

通过调用 Dapr API,开发人员可以将其应用程序代码与状态管理、资源绑定、发布/订阅消息传递和其他常见的分布式系统挑战分离。

自动缩放

为了满足服务的预期规模,RIoT 工程师很早就决定使用 Azure 和分布式应用程序运行时 (Dapr),这是一个开源框架,可以更轻松地为云和边缘构建微服务。RIoT受益于Azure的全球规模以及Dapr与Azure Kubernetes Service(AKS)的集成,这有助于团队更快地将其创新推向市场。

为了部署服务并在 Kubernetes 集群中运行它,开发人员向 Dapr 部署方案添加了一些注释。AKS 可自动执行操作和维护任务,例如预配、缩放和监视,这有助于降低开发人员的复杂性。

Dapr抽象带来的开发便利

Dapr 提供的抽象层还使开发人员可以轻松更改不同环境中使用的组件:

抽象层 云上部署 本地开发测试
pub/sub Azure Service Bus Redis
status Azure Cosmos DB Redis
secret Azure Key Vault Redis

Jasper Mang: Lead Developer:

We used the Dapr SDK to publish events, which gave us the time to focus on what we wanted to communicate, instead of, ‘How do I get this communication implemented?’ We could focus on the real things that matter.

我们使用 Dapr SDK 发布事件,这让我们有时间专注于我们想要传达的内容,而不是如何实现这种沟通?我们可以专注于真正重要的事情。

即专注于 “What to do”,而不是 “How to do”,这也就是云原生的精髓所在:业务逻辑和技术实现分离解耦。

actor模型

actor 是具有单线程执行的计算和状态的隔离单元。使用 Dapr actor 来表示设备及其逻辑,IoT 开发人员可以更轻松地跨群集管理计算任务。

在RIoT平台中,Actor用于表示基于时间的自动化。RIoT 使用了 dapr actor 自带的 timer 和 reminder。

备注:Bosch 是 dapr actor 构建块的第一个 Java 用户,一起完善了 dapr java sdk。

总结

  • 基于微服务的架构支持大量的并发用户,而Dapr简化了 事件驱动的后端系统。
  • Dapr的pub/sub构建模块允许服务之间使用消息进行通信。
  • 而Dapr绑定使Azure服务总线能够接收这些消息并将其发送到指定的微服务中。
  • Azure Cosmos DB是生产状态 存储,而Redis则用于本地开发和测试。

案例资料

2 - Zeiss

Zeiss/蔡司

2.1 - 蔡司

Zeiss/蔡司

公司介绍

蔡司是光学和光电子领域的国际技术领导者。蔡司集团是一家国际领先的技术企业,在半导体制造技术、工业质量和研究、医疗技术和消费市场等领域开展业务。自1846年成立以来,蔡司不断推动光学领域的发展,并塑造技术进步。

Customer:Carl Zeiss AG

Industry:Manufacturing

Size:10,000+ employees

Country:Germany

Products and services

  • Azure API Management
  • Azure Container Registry
  • Azure Cosmos DB
  • Azure DevOps
  • Azure Front Door
  • Azure Key Vault
  • Azure Kubernetes Service
  • Azure Service Bus
  • Azure Storage

主要应用场景

主要场景:消费者业务,需要一个更敏捷的订单管理和处理系统。主要挑战是一个拥有20年历史的后端系统,具有硬编码的业务规则,最初的订单验证和路由解决方案基于具有固定容量的单体架构,存在很多系统依赖性,更改始终需要昂贵且耗时的开发人员干预。

主要编程语言: Java和JavaScript

简化微服务开发

开发人员面临着使用微服务架构构建分布式应用程序的复杂性。他们希望专注于业务逻辑,同时依靠运行时和托管平台,为他们的应用程序提供可扩展性、弹性、可维护性、弹性以及微服务架构的其他属性。

使用了 service invoke,statue,secret,还有可观测性:从其应用程序中获取详细的跟踪、指标和日志记录信息,以发送到 Azure Application Insights。

Dapr really simplifies the case of distributed application architectures. With Dapr, any developer can do it

Dapr真正简化了分布式应用架构的情况。有了Dapr,任何开发者都可以做到这一点。

事件驱动的工作流程:全球和区域

Azure Front Door 将请求路由到最近的区域,每个区域都包含处理和存储特定于该区域设置的数据所需的 Azure 资源。

Azure API Management 充当区域资源的网关,用于有效管理其在本地和 Azure 上托管的 API。

使用到 Azure Service Bus 和 Dapr pub/sub 构建块。

蔡司订单处理逻辑在 AKS 中与 Dapr 结合使用在区域上运行。唯一的订单号全局存储在 Azure Cosmos DB 中。

Dapr抽象带来的开发便利和多云支持

编写代码的开发人员不必知道和学习特定技术的所有细节即可发布和订阅消息,从而使代码具有可移植性并更快地开发。

This flexibility enables the ZEISS developers to swap out alternative services to support multiple cloud and on-premises environments. Without having to change one line of code, we can still use the same state and use the same business code.

这种灵活性使蔡司的开发人员能够调换替代服务,以支持多种云和企业内部环境。无需改变一行代码,我们仍然可以使用相同的状态,使用相同的业务代码。

In our multicloud environment, Dapr gave us the flexibility we needed. It provides a layer of abstraction that allows the developers to focus on the business case at hand.

在我们的多云环境中,Dapr为我们提供了所需的灵活性。它提供了一个抽象层,使开发人员能够专注于手头的业务案例。

actor模型

Order Processing 应用程序编排其他八个微服务,这些微服务做出有关供应链物流的决策,例如将订单传送到何处以及订单是否有效。

为了管理订单的生命周期,蔡司使用了Dapr virtual actor。actor 是具有单线程执行的计算和状态的隔离单元。Actor 非常适合创建工作流、IoT 和其他具有独立计算单元的应用程序。

蔡司创建了GlobalOrderIDStatus作为Dapr virtual actor:

  • GlobalOrderID 服务生成唯一的订单号

  • Statue 服务将订单的当前状态报告给附加的子系统。

actor 状态全局存储在 Azure Cosmos DB 中。

总结

We wanted a platform-agnostic, microservices architecture with a very small footprint. We got that with Dapr and Azure Kubernetes Service.

我们想要一个与平台无关的微服务架构,占用空间非常小。我们通过Dapr和Azure Kubernetes Service获得了这一点。

案例资料

3 - Ignition

Ignition Group

3.1 - Ignition

Ignition Group

公司介绍

Ignition Group成立于2002年,是非洲最大的技术,媒体,电信和金融服务提供商之一。

主要应用场景

Ignition Group 使用 Dapr 来加速 Azure Kubernetes Service 的开发,用于其新的、可扩展的订单处理和支付系统。

主要编程语言:.NET Core (最初是使用.NET Framework和Windows Workflow Foundation开发)

简化微服务开发

类似。

Dapr抽象带来的可移植性

Dapr Binding API 的使用:

在构建 Marketic 时,团队意识到它正在使用关系数据库 SQL Server 来存储文档,后来切换到MongoDB。

我们所做的只是使用与 SQL Server 通信的 ID 相同的 ID 进行部署,因此没有其他任何内容注意到我们更改了后端存储。

Dapr Secret API 的使用:

开发环境使用 Kubernetes secrets,生产环境使用 Azure Key Vault 。

案例资料

4 - Legentic

Legentic

4.1 - Legentic

Legentic

公司介绍

legentic

Legentic在其解决方案中利用了 Dapr 与Python和运行在AWS上的FastAPI。

主要应用场景

主要编程语言:Python

消息通讯

The fact that we could focus on the core logic and let Dapr deal with the underlying messaging systems allowed us to iterate much faster than we expected.

我们可以专注于核心逻辑,让Dapr处理底层的消息传递系统,这让我们的迭代速度远远超过我们的预期。

案例资料

5 - Roadwork

Roadwork

5.1 - Legentic

Legentic

公司介绍

legentic

初创公司,数据处理。

To create a platform that allows our customers to gain actionable insights from their data without additional operational effort

创建一个平台,使我们的客户能够从他们的数据中获得可操作的见解,而不需要额外的运营努力。

主要应用场景

Scraper.AI 网站,允许任何用户访问任何网站,指向他们想要提取或监视的数据,它会提取数据,然后以结构化的方式将其呈现给用户。

  • 按需任务:在后台,Scraper.AI 创建实例,用于执行用户设置的操作。实例占用约 2048MB 的 RAM,平均持续时间为 30 秒。

  • 调度任务:此外还有各种定时调度任务(hourly, daily, weekly / monthly)。

成本考虑,必须实现硬件和软件上的自动伸缩方案,是典型的 serverless 场景。

核心诉求:希望保持我们的解决方案的 “可移植性"和"与云无关”,以便它可以移动到我们想要的任何位置,尽可能避免"供应商锁定"。

serverless解决方案

Dapr + KEDA

  • Dapr:用于和 rabbitmq的连接,仅仅需要调用 dapr 的 rest 接口 (HTTP API,绕开了 dapr sdk)。

  • KEDA: 用于 Kubernetes 的事件驱动自动缩放

    监控队列大小,一旦队列中的项目超过某个阈值,KEDA 将自动横向扩展部署,以向集群中添加额外的容器。

可移植性

从Digital Ocean 迁移到AWS,最后迁移到Azure,迁移只需要几个小时,因为所要做的就是再次配置Kubernetes,Dapr和KEDA,然后我们就可以再次设置和运行!

案例资料

6 - Man

Man

6.1 - Man

Man

公司介绍

legentic

Man Group

主要应用场景

Man集团使用Dapr来更新其交易平台,该平台在内部部署的虚拟机上运行。

With Dapr we can introduce platform-wide capabilities across a broad spectrum of technologies and deployment models with minimal effort, allowing us to more effectively evolve our core trading system

有了Dapr,我们可以用最小的努力在广泛的技术和部署模式中引入平台范围的功能,使我们能够更有效地发展我们的核心交易系统。

主要编程语言: .net

使用HashiCorp Consul进行 Dapr名称解析

TBD

案例资料