• Dapr如何加速Dedalow在AWS和Azure上的开发
  • 发布于 2个月前
  • 524 热度
    0 评论
  • Vinda
  • 4 粉丝 62 篇博客
  •   
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 提供的服务:

以前,实现这些功能的一个障碍是开发这些功能的时间。最初,我们考虑集成云提供商提供的不同 SDK,但这一解决方案并不十分合适,原因如下:
1.集成时间。
选择和集成要使用的库的复杂性,取决于:
1.云提供商。

2.部署应用程序的群集类型(开发/生产)。


然后我们开始评估Dapr[4](Distributed Application Runtime,分布式应用运行时)。Dapr 是一个由 CNCF 托管的开源运行时,由阿里巴巴、Diagrid、英特尔和微软进行开放治理。Dapr 提供了不同的 API 来解决开发分布式应用程序的复杂性:
1.服务调用
2.发布和订阅
3.机密管理
4.绑定(输入/输出)
5.状态管理

6.Actors


对于 Dedalow,我们决定使用这些 API 进行特性开发:
1.发布和订阅

2.绑定(输入/输出)


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 的发展至关重要。
用户评论