云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云主机_日照网站建设哪家好_好用

小七 141 0

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

这篇文章是由米哈伊尔·希尔科夫(Mikhail Shilkov)合著的,他是Pulumi的软件工程师。开发人员如何将创新和现代应用程序与Pulumi平台结合起来,打造出一个独特的平台。我们生活在一个奇妙的时代,不同大陆的人们和企业可以以光速互动。许多行业和应用程序的目标用户遍布全球:电子商务网站、多人在线游戏、联网物联网设备、协作工作和休闲体验等等。所有这些应用程序都要求计算和数据基础设施靠近最终客户,以尽量减少延迟并保持用户体验。现代云使这些场景成为可能Azure基础设施azurecosmosdb为任意数量的区域提供了一个交钥匙的数据分发,这意味着可以在运行生产工作负载的过程中添加或删除位置。Azure负责数据复制、恢复能力和效率,同时为读写操作提供api,延迟小于10毫秒。相比之下,计算服务虚拟机、容器实例、Azure应用程序服务、Azure函数和托管Azure Kubernetes服务都位于单个Azure区域中。为了充分利用数据库的地理冗余,用户应该将其应用程序部署到每个目标区域。 全球分布式应用应用程序区域必须与Azure Cosmos DB区域保持同步才能享受低延迟的好处。操作团队必须管理应用程序和服务池,以提供正确的位置,以及自动扩展配置、高效网络、安全性和可维护性。为了帮助管理复杂性,基础设施作为代码的方法来拯救。基础设施即代码我们不应该用一个优秀的云计算平台来描述Azure的所有应用程序,而不是直接使用它来创建一个优秀的云应用程序。传统上,这可以通过自动化脚本实现,例如,PowerShell Cmdlet或调用azurecli的bash脚本。然而,这种方法很费力,而且容易出错。将环境从其当前状态转变为所需状态通常是非常重要的。脚本中间的故障通常需要手动干预来修复环境,从而导致停机。理想状态配置是基础设施定义的另一种风格。用户以声明性的方式描述基础设施的最终状态,工具负责将环境从其当前状态带到与所需状态一致的状态。这样的程序更自然地进化和跟踪变化。Azure资源管理器模板是Azure世界中定制的理想状态配置工具。状态被描述为一个JSON模板,列出了所有的资源和属性。然而,大型JSON模板很难手工编写。他们有很高的学习曲线,很快就会变得庞大、复杂、冗长和重复。开发人员发现自己缺少一些简单的编程语言,比如迭代或自定义函数。Pulumi通过使用通用编程语言来描述云基础设施的理想状态来解决这个问题。使用JavaScript、TypeScript或Python可以将代码量减少很多倍,同时将函数和组件等结构引入DevOps工具箱。Pulumi全球应用为了说明这一点,我们开发了一个TypeScript程序来在Azure中提供一个分布式应用程序。目标场景需要相当多的资源来跨多个Azure区域分发应用程序,包括:在多个区域中提供Azure Cosmos DB帐户将应用程序层的副本部署到每个区域将每个应用程序连接到Azure Cosmos DB本地副本添加流量管理器以将用户请求路由到最近的应用程序终结点使用Azure和Pulumi的全局应用程序 然而,我们可以依赖Pulumi的CosmosApp组件,而不是手动编写代码,如如何使用azurecosmos DB和Pulumi构建全球分布式应用程序中所述。该组件创建分布式azurecosmos数据库资源,以及前端路由组件,同时允许实现可插拔计算层。您可以在ReusableComponent中找到使用Azure Cosmos DB创建全球分布应用程序的示例代码。Pulumi CLI执行代码,将其转换为要创建的资源树,并将所有这些资源部署到Azure:命令成功后,应用程序将在我选择的三个区域中启动并运行。下一步行动基础设施即代码对于在全球和可扩展的云应用程序中实现现代DevOps实践非常重要。Pulumi允许您使用通用编程语言来定义基础设施。它将软件开发领域的最佳工具和实践引入基础设施管理领域。尝试使用带有无服务器函数、容器或虚拟机的CosmosApp(在GitHub TypeScript上可用)或虚拟机,开始使用Pulumi和Azure。