Dapr加速Dedalow在AWS和Azure上的开发

2022-04-19 09:54:44 浏览数 (1)

作者:Javier Vela & Adolfo Gonzalez

Dedalow[1]是由NTT DATA[2]开发的低代码/无代码解决方案,为你提供端到端服务,根据你的需求以不同的技术建模、生成和部署你的应用。Dedalow 带来了一些功能,包括测试、任务自动化和针对现有应用的代码发现服务。查看 Dedalow 的运行情况[3]

Dedalow 是个容器化的应用程序,由 30 多个服务组成,采用不同的技术开发,包括:.NET、Python、Node.js 或者 Java。由于容器化和 Helm chart,你可以在 Kubernetes 集群上部署 Dedalow,现在,该服务在亚马逊 Elastic Kubernetes Service(EKS)和 Azure Kubernetes Service(AKS)上可用。

Dedalow 在不断发展,需要集成三个新功能:

  • 异步消息传递(Asynchronous messaging),允许服务向其他服务发送有关异步请求状态的信息;例如,关于流水线状态或执行状态的信息。
  • 保存测试执行结果的存储(Storage)。
  • 来自 Shell 脚本的电子邮件通知(Email notifications)。

在这三个案例中,我们都希望利用公共云提供商 AWS 和 Azure 提供的服务:

功能

Azure

AWS

Asynchronous messaging

Service bus

SNS/SQS

Storage

Azure storage

S3

Email notifications

SendGrid

SES

以前,实现这些功能的一个障碍是开发这些功能的时间。最初,我们考虑集成云提供商提供的不同 SDK,但这一解决方案并不十分合适,原因如下:

  • 集成时间。
  • 选择和集成要使用的库的复杂性,取决于:
    • 云提供商。
    • 部署应用程序的群集类型(开发/生产)。

然后我们开始评估Dapr[4](Distributed Application Runtime,分布式应用运行时)。Dapr 是一个由 CNCF 托管的开源运行时,由阿里巴巴、Diagrid、英特尔和微软进行开放治理。Dapr 提供了不同的 API 来解决开发分布式应用程序的复杂性:

  • 服务调用
  • 发布和订阅
  • 机密管理
  • 绑定(输入/输出)
  • 状态管理
  • Actors

对于 Dedalow,我们决定使用这些 API 进行特性开发:

  • 发布和订阅
  • 绑定(输入/输出)

Dapr 的集成非常容易,因为 Dapr 允许我们开发无感的实现并应用配置更改,而不需要重新编译我们的应用程序或使用外部库。Dapr 提供了跨不同云的代码可移植性。

要在任何 Dedalow 核心服务中使用 Dapr,你只需在 Helm charts 中添加所需的注释。添加之后,Dapr Kubernetes Operator 将一个容器注入到 Dedalow 服务的 pod 中。然后,Dapr 和 Dedalow 通过 sidecar 模式协同工作,两个容器之间通过 HTTP 进行通信。

下图显示了 Dedalow 与 Dapr 的集成:

Dapr 在 Dedalow 的生产环境使用,AWS 中的 EKS 和 Azure 中的 AKS。目前,并不是所有 Dapr 使用的组件都处于稳定状态。然而,使用它们的好处大大超过了潜在的缺点,到目前为止,我们还没有看到任何问题。Dedalow 平台团队打算在未来增加我们对 Dapr 的使用,因为事实证明,它在实施新功能时既高效又可跨云移植,这两者对于 Dedalow 的发展至关重要。

参考资料

[1]Dedalow: https://dedalow.com/

[2]NTT DATA: https://www.nttdata.com/

[3]查看 Dedalow 的运行情况: https://dedalow.com/the-platform/

[4]Dapr: https://dapr.io/


CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。

CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。

0 人点赞