Skip to content

如何使用Azure Cosmos DB和Pulumi构建全球分布式应用程序

如何使用Azure Cosmos DB和Pulumi构建全球分布式应用程序

Pulumi通过一个独特的平台,重塑了人们如何构建现代云应用程序,该平台将深度系统和基础架构创新与优雅的编程模型和开发人员工具相结合。

我们生活在奇妙的时代,不同大陆的人们和企业可以光速互动。众多行业和应用程序面向全球用户:电子商务网站,多人在线游戏,联网的IoT设备,协作工作和休闲体验等等。所有这些应用程序都需要最终用户附近的计算和数据基础架构,以最大程度地减少延迟并保持用户体验的吸引力。现代云使这些方案成为可能。

Azure基础架构

Azure Cosmos DB提供了一个交钥匙型数据分发到任意数量的区域,这意味着可以在运行生产工作负载的同时添加或删除位置。Azure负责数据复制,弹性和效率,同时提供用于读取和写入操作的API,延迟少于10毫秒。

相反,计算服务(虚拟机,容器实例,Azure App服务,Azure功能和托管的Azure Kubernetes服务)位于单个Azure区域中。为了充分利用数据库的地理冗余,用户应将其应用程序部署到每个目标区域。

该图显示了全球分布的应用程序。

应用程序区域必须与Azure Cosmos DB区域保持同步,才能享受低延迟的好处。运营团队必须管理应用程序和服务池,以提供正确的位置以及自动扩展配置,有效的网络连接,安全性和可维护性。

为了帮助管理复杂性,采用了将基础结构作为代码的方法。

基础架构即代码

尽管Azure门户是所有Azure服务的绝佳选择,但不应将其直接用于供应生产应用程序。相反,我们应该努力用可以执行以创建所有必需的云资源的程序来描述基础架构。

传统上,这可以通过自动化脚本(例如PowerShell Cmdlet或调用Azure CLI的bash脚本)来实现。但是,这种方法费力且容易出错。使环境从当前状态达到理想状态通常并非易事。脚本中间的故障通常需要手动干预才能修复环境,从而导致停机。

所需状态配置是基础结构定义的另一种样式。用户以声明的方式描述基础结构的所需最终状态,工具负责将环境从其当前状态转换为具有所需状态的奇偶校验。这样的程序对于演化和跟踪变化更自然。

Azure资源管理器模板是Azure领域中定制的期望状态配置工具。状态被描述为一个JSON模板,列出了所有资源和属性。但是,大型JSON模板很难手动编写。他们的学习曲线很高,并且很快变得庞大,复杂,冗长且重复。开发人员发现自己缺少诸如迭代或自定义函数之类的简单编程语言的可能性。

Pulumi通过使用通用编程语言来描述所需的云基础架构状态来解决此问题。使用JavaScript,TypeScript或Python可以将代码量减少很多倍,同时将诸如函数和组件之类的结构引入DevOps工具箱。

Pulumi的全球应用

为了说明这一点,Azure开发了TypeScript程序来在Azure中置备分布式应用程序。

目标方案需要大量资源才能在多个Azure区域中分布应用程序,包括:

在多个区域中配置Azure Cosmos数据库帐户

将应用程序层的副本部署到每个这些区域

将每个应用程序连接到Azure Cosmos DB本地副本

添加流量管理器以将用户请求路由到最近的应用程序端点

该图显示了使用Azure和Pulumi的全局应用程序的流程。

但是,我们可以依靠Pulumi的CosmosApp组件代替手动编写此代码,如如何使用Azure Cosmos DB和Pulumi构建全球分布式应用程序中所述。该组件创建分布式Azure Cosmos DB资源以及前端路由组件,同时允许可插入的计算层实现。

可以在可重用组件中找到示例代码,以使用Azure Cosmos DB创建全局分布的应用程序。

Pulumi CLI执行代码,将其转换为要创建的资源树,然后将所有代码部署到Azure:

屏幕截图显示了Pulumi的CLI执行代码。

命令成功执行后,应用程序将在我选择的三个区域中启动并运行。

基础架构即代码有助于在全球和可扩展的云应用程序领域中实现现代DevOps实践。

Pulumi允许您使用通用编程语言来定义基础结构。它将最佳的工具和实践从软件开发领域带到基础架构管理领域。

尝试使用具有无服务器功能,容器或虚拟机的CosmosApp(可在GitHub上使用TypeScript,C#)来开始使用Pulumi和Azure。

相关推荐: 食品出口英国需要什么认证

食品出口的国际认证有:HACCP认证、ISO22000认证、最具权威的BRC认证(英国零售商协会)和IFS德国国际食品标准认证。 食品安全认证是指第三方依据程序对食品、生产过程及服务符合规定的要求给予书面保证或合格证。 (来源:跨境小师妹) 相关推荐: 美国暂…

    码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.

    电子商务网站建设的重要性和好处