利用AKS和Azure工具优化智能应用的可扩展性和可用性

随着数字化转型的深入,企业越来越依赖智能应用来处理复杂的任务,如图像分析和数据提取。这些应用需要具备高效的可扩展性和高可用性,以应对不断变化的工作负载和用户需求。本文将探讨如何使用Azure Kubernetes Service (AKS) 以及其他Azure工具来优化智能应用的可扩展性和可用性。

AKS的配置和管理

首先,需要配置AKS来管理不同的工作负载,并确保它能够平滑地扩展智能应用,以处理高强度和波动的工作负载。AKS提供了强大的工具和功能,帮助实现这一目标。

在Azure Log Analytics中,工作区是一个集中的存储库和分析平台,用于收集、存储并提供对由Azure服务、应用程序和资源生成的日志和遥测数据的洞察。创建工作区的步骤如下:

  1. 点击“创建资源”,搜索“Log Analytics工作区”,然后点击“创建”。
  2. 选择“计算机视觉”资源组,并在“实例详情”中将工作区名称设置为“DefaultLAWorkspace”。

接下来,需要配置AKS集群的诊断设置,以便收集和分析日志数据。在Azure门户中打开aks-intelligent-app AKS集群,然后在“监控”部分下打开“诊断设置”并点击“添加诊断设置”:

  1. 给诊断设置一个名称,例如“diagnostic-setting-intelligent-app”。
  2. 勾选所有与Kubernetes相关的日志类别,勾选“AllMetrics”,勾选“发送到Log Analytics工作区”,然后选择“DefaultLAWorkspace”作为目的地。
  3. 点击“保存”按钮。

要查看AKS集群生成的日志,请点击“监控”下的“日志”项,然后在“警报”部分下找到“容器内存”查询并点击“运行”:

将看到Azure自动为创建了以下查询。这个查询是用Kusto Query Language (KQL)编写的,它在Azure门户中广泛使用:

let threshold = 75000000; // 选择一个阈值 Perf | where ObjectName == "K8SContainer" and CounterName == "memoryRssBytes" | summarize AvgUsedRssMemoryBytes = avg(CounterValue) by bin(TimeGenerated, 30m), InstanceName, _ResourceId | where AvgUsedRssMemoryBytes > threshold | render timechart

KQL查询对于监控AKS集群至关重要,因为它们提供了一种强大且灵活的手段来提取、分析和可视化AKS集群中的数据。这些查询允许管理员和DevOps团队通过查询从AKS环境中的各种来源收集的遥测和日志来获得集群的健康状况、性能和安全性的洞察。

监控AKS的关键指标

接下来,让查看与AKS集群使用情况相关的关键指标。点击“监控”下的“指标”:

在这里,可以使用预定义的指标创建一个或多个图表来监控,例如CPU、磁盘、内存使用情况、网络流量和Pod中断事件。

Azure Kubernetes Service Diagnostics在增强Azure环境中Kubernetes集群的管理和性能方面发挥着至关重要的作用。可以通过启用诊断来获得有关Kubernetes集群健康状况、可用性和效率的宝贵洞察。

点击左侧菜单中的“诊断和解决问题”,可以找到许多故障排除类别。

这些类别提供了有关各种集群方面的问题的详细信息,包括性能、连接性、可扩展性、安全性、节点健康状况和最佳实践。

智能应用的现实世界用例

集群自动伸缩器、Azure负载均衡器和Azure可用区促进了智能应用的成本效益,均匀地分配流量并优化服务性能,确保不间断的用户体验。

电子商务业务必须处理在特殊事件或假日季节波动很大的流量。他们的网站需要高可用性和灾难恢复能力。

这些企业在用户流量大或技术故障期间可能会遭受重大挫折,可能导致客户不满、购物车被遗弃和销售损失。

通过实施高可用性策略和智能应用,电子商务企业可以确保不间断的服务、网站响应性和无缝的在线购物体验,最终提高客户满意度和收入。像集群自动伸缩器和Azure负载均衡器这样的工具确保电子商务企业拥有处理高流量的资源和容量。

医疗机构需要数据可靠性和灾难恢复能力。在医疗保健领域,应用程序通常需要处理大量的患者数据和图像,尤其是在诊断程序中。

通过战略性地实施和管理智能应用,如Azure负载均衡器、可用区和集群自动伸缩器,医疗保健组织确保其数字基础设施与运营目标一致。此外,他们可以提高患者护理和监管合规性,同时控制成本和降低风险。

金融服务组织通常有处理交易、分析和客户交易的应用程序。这些组织需要高可用性和数据驻留合规性。

例如,银行应用程序在高峰时段或特殊事件期间面临挑战。同时访问其账户的用户激增,如在高峰时段或特殊事件期间,可能会使应用程序的服务器承受压力,导致减速或超时。

Azure负载均衡器、可用区和集群自动伸缩器等工具共同帮助银行应用程序保持数据在所需区域,应对活动激增,保持弹性,并为客户提供平稳可靠的银行体验。

优化智能应用

可能希望优化第一部分中的智能应用,以便在处理图像时进行动态扩展和不间断服务,并将非结构化结果存储在Cosmos DB中。可以遵循以下策略:

  1. 配置集群自动伸缩器,根据工作负载波动调整AKS集群的节点数量。在图像处理激增期间,它通过提供额外的节点进行扩展,以有效处理。相反,在需求低迷期间,它通过缩减来降低运营成本,同时保持性能。
  2. 使用AKS HPA在集群内动态扩展应用程序Pod。HPA监控队列长度和处理时间等自定义指标。当超过阈值时,它自动调整Pod的数量,确保OCR处理工作负载在多个Pod之间有效分配,以实现不间断服务。
  3. 利用Azure负载均衡器将图像处理请求均匀地分配到应用程序实例,优化性能并防止过载。将应用程序实例部署到Azure可用区以实现冗余和容错。健康探针主动监控实例健康状况,将流量从不健康的实例重定向,以保持高可用性。
  4. 优化容器的资源使用。微调应用程序容器的资源请求和限制,以确保资源使用高效和稳定。使用Prometheus和Grafana等工具持续监控容器资源使用,并根据观察到的使用模式调整资源分配。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485