新浪潮的Azure服务提升了Kubernetes和Cosmos DB

严易安
2023-12-01

微软已经开始将自己称为三云公司。 有Xbox游戏云,Microsoft 365生产力服务以及最重要的Azure。 仅次于Amazon Web Services的Azure是一个超大型的庞然大物,它以难以跟上的速度推出一项又一项的服务。 在Microsoft的三个主要开发人员活动中,这种快速的节奏甚至更为明显,有时您必须深入研究公告以了解关键要素。

显然,Microsoft的重点是将Azure作为构建无服务器应用程序的平台,提供不需要指定虚拟机的基础结构服务,并按所用CPU的第二秒收费。 各种平台服务都位于您的应用程序下,提供机器学习,分析,存储和计算。

[使用云中的数据需要新的思维。 InfoWorld向您展示了方式: Cosmos DB如何确保全球云中的数据一致性 | 通过InfoWorld的《 云计算报告》时事通讯了解云 ]

两者相遇之处,事情变得很有趣:这一点开始提高我们在单个Azure区域内或整个Azure公共云中的代码的可伸缩性。 手动构建分布式应用程序并不容易,并且Microsoft提供了更多使用熟悉的工具和新功能来自动实现可伸缩性的方法。

Kubernetes中事件驱动的扩展

与其他大型公共云一样,Azure高度依赖Kubernetes。 在使用超大规模计算时,以及在隔离的容器中交付应用程序简化了从构建系统交付完整基础架构的过程时,管理和协调分布式应用程序至关重要。

但是Kubernetes可能很复杂,尤其是当您将它用于简单的事件驱动的应用程序时。 一个选项是Brigade ,它具有JavaScript精心编排的Kubernetes,但是如果我们使用诸如Azure的EventGrid之的工具来触发事件并按需启动新的无服务器功能, 那么它就无法满足我们的扩展需求。

微软和红帽一直在合作开发一种可扩展的替代产品:KEDA(基于Kubernetes的事件驱动自动缩放)。 KEDA旨在通过使用其自身的触发器来替代HTTP事件来快速扩展工作负载 。 应用程序使用其他应用程序和服务的通知来驱动扩展,而不是根据工作负载性能进行更常见的扩展,从而根据需要对应用进行必要的扩展和缩减(甚至缩减至零)。

通过使用KEDA进行扩展,您可以响应事件推出容器,准备处理与该事件关联的数据。 这是类似于Azure的功能的模型,Microsoft提供KEDA作为采用现有功能代码并将其托管在Kubernetes应用程序中的一种方式也就不足为奇了。 通过容器中的功能并由事件触发,我们可以快速扩展Kubernetes集群以支持需求,并在不再需要容器时将其关闭。

将功能放在Kubernetes容器中有助于避免云锁定; 使用KEDA意味着无服务器应用程序可以在Azure,本地或任何云上运行。 您所需要的就是在其自己的Kubernetes基础架构或您自己的虚拟服务器中支持KEDA的主机。

分析Cosmos DB中的全局数据

我仍然对Cosmos DB着迷。 使用它可能并不便宜,但是它提供了真正可全局的可扩展分布式数据库,它使用新颖的一致性模型来适应应用程序的工作方式,而不是使应用程序适合数据库的复制模型。 到目前为止,它一直是有用的商店,分析能力有限; 如果您需要分析,则可以使用查询来填充另一个系统。 但是,一些较大的Cosmos DB实现中存储了PB的数据,这使得难以证明相同规模的辅助分析系统是合理的。

最新版本的Cosmos DB添加了一组Apache Spark API,支持对任何区域中任何Cosmos DB分区的查询。 查询是针对您的Cosmos DB数据的最近副本进行的,Cosmos DB数据负责将其自身的数据格式转换为Spark的本机格式。

为了帮助开发Cosmos DB分析,它现在在所有数据模型中都支持Jupyter笔记本,因此您可以在笔记本中构建和运行查询并与同事共享。 由于Jupyter及其相关工具是尝试ML(机器学习)模型的常用方法,因此您可以将ML开发直接带入数据,通过使用Cosmos DB进行ML训练并作为推理数据的来源来缩短开发周期。

使用Cosmos DB扩展Kubernetes

分布式数据库不仅是处理大量数据的工具; 它们可以支持规模较小的应用程序,其中商店的分布式性质很重要。 在这里,您使Cosmos DB成为应用程序基础结构的一部分,将应用程序管理数据保留在最接近您的代码的位置。 您一次构建代码,一次构建基础架构,一次存储配置信息,然后使用Cosmos DB全局共享该数据。

Etcd是Kubernetes的关键组件,拥有其配置和状态数据。 微软在Azure中大规模运行Kubernetes,它需要一个分布式存储来存储Kubernetes配置数据。 Cosmos DB作为Azure大部分数据基础结构的基础,显然符合要求,并且显然已经处理了一段时间。 现在,etcd的支持正在转变为面向公众的服务 。 使用经过良好测试的内部API,向所有开发人员提供支持的转变是合乎逻辑的举动,因为越来越多的开源基础架构服务正在使用etcd。

将Cosmos DB用于etcd数据将使构建全局复制的Kubernetes应用程序变得更加容易。 您可以拥有一个Cosmos数据库实例来托管所有Kubernetes集群的配置数据,而不必在每个区域中放置etcd的副本并托管您托管它的服务器。 配置更改仅需要进行一次,从而降低了部署和更新失败的风险。

微软的新流行语是“脚手架”,它提供了框架来支持在其平台之上构建的工具和服务。 它与Azure所做的大部分工作都是大规模地提供该脚手架。 以Cosmos DB为基础,以Kubernetes为基础,现在有足够的空间来开始构建自己的分布式应用程序-从Functions开始并从那里开始构建。

From: https://www.infoworld.com/article/3393261/a-new-wave-of-azure-services-lifts-kubernetes-and-cosmos-db.html

 类似资料: