云爆发是云计算中的一种配置,其中应用在私有云或本地数据中心内运行,当对计算容量的需求激增时,“爆发”到公有云中。这实际上充当了一个溢流阀,当私有基础设施达到其限制时,流量会自动导向公有云服务,以确保服务不会中断。您可以将其想象成一家零售店,只有当排队结账的人太多时,才会开放额外的结账通道。云爆发设置是一种特定类型的混合云部署。
在标准的云扩缩模型中,公司可能会尝试在一个环境中处理所有事务。然而,如果为了应对一年中最繁忙的一天而购买足够的物理服务器,那么这些服务器在其他 364 天里就会空闲下来,无法得到充分利用。云爆发可以帮助解决这个问题,因为它可以让组织在自己的数据中心支付基本容量的费用,并且只在实际需要时才支付额外的公有云资源费用。这种方法可以帮助公司处理突如其来的流量高峰,而无需购买他们并不总是需要的高昂硬件。
为了理解云爆发的机制,不妨将您的私有云想象成一个水箱。正常情况下,水(数据流量)保持在水箱的容量范围内。但是,当突如其来的暴风雨来袭(流量高峰)时,水箱会面临溢出风险。
在云爆发设置中,IT 团队会配置“触发器”或阈值,通常是在资源使用率达到 70-80% 左右时触发。一旦超过此阈值,系统就会自动打开一个阀门,将流量导入备用水箱(公有云)。应用继续无缝运行,溢出流量被路由到公有云资源。一旦风暴过去,流量水平回落,系统就会关闭阀门并停用公有云资源,将运营完全恢复到私有云。
根据团队需要的控制程度或自动化程度,有多种不同的方式来设置这些爆发事件。
云爆发并不总是适合所有应用,尤其是那些依赖于无法离开专用网络的复杂敏感数据的应用。它通常最适合需求模式波动、季节性或不可预测的工作负载,这些工作负载对速度和正常运行时间要求很高,例如以下情况:
在黑色星期五或网购星期一等热门购物活动期间,零售商经常面临流量激增的情况。云爆发让这些企业能够使用公有云处理数百万购物者几天,然后在高峰期过后缩减回私有基础设施。
数据科学家和工程师经常运行高性能计算 (HPC) 任务,例如复杂模拟、AI 模型训练或其他繁重的计算任务(如 3D 渲染)。这些作业可能只需要几小时,但却需要数千台服务器。通过爆发,团队可以暂时租用这种强大的计算能力,而无需在漫长的超级计算队列中等待,也不必构建利用率不足的超级计算机。
软件开发者经常需要启动临时环境来测试新代码或更新。他们可以将这些测试环境爆发到公有云,而不是占用主专用服务器上的空间。这有助于确保生产环境的安全和稳定。
如果本地数据中心因停电或自然灾害而离线,云爆发可作为故障切换机制,支持灾难恢复。系统可以将流量重定向到公有云,以确保应用在主站点修复之前正常运行。
实现云爆发不仅需要两个计算环境,还需要一种策略来处理在两个环境之间移动数据和应用的复杂性。为了有效实现这一目标,组织需要确保无缝连接和一致管理的功能。
实现云爆发触发器的最有效方法之一是使用 Google Kubernetes Engine (GKE) 和 Pod 横向自动扩缩器 (HPA) 以及外部指标。在此场景中,本地应用会向 Google Cloud Monitoring 发送信号(指标)。当该信号超过阈值时,GKE 会自动在云端启动新的 Pod 来处理负载。
下面介绍如何根据 Pub/Sub 队列深度(衡量本地工作器是否过载的常用指标)设置触发器:
1. 启用自定义指标 API:首先,您必须允许 GKE 集群从 Cloud Monitoring 读取指标。为此,您需要将自定义指标 Stackdriver 适配器部署到集群。此适配器充当桥梁,将 Google Cloud 指标转换为 Kubernetes 可以理解的内容。
2. 定义 HPA 配置:创建 HorizontalPodAutoscaler YAML 文件。与查看 CPU 使用率的标准自动扩缩器不同,此自动扩缩器将查看外部指标,具体来说是 Pub/Sub 订阅中未传送的消息数 (num_undelivered_messages)。
3. 应用并监控:使用 kubectl apply -f hpa.yaml 应用此配置。现在,GKE 正在“监视”您的队列。如果本地系统速度减慢,并且队列中的消息数量超过目标值(50 条消息),HPA 将自动触发在云端创建新 Pod 来处理积压的消息。队列为空后,GKE 会将 Pod 缩减回零。
无从看见,何谈管理。为了实现云爆发,IT 团队需要清楚地了解私有数据中心和公有云中的资源。Google Cloud 提供了一些工具,可让您详细了解应用如何使用 CPU 和内存。
通过准确了解应用消耗的“燃料”量,团队可以设置准确的爆发阈值。如果阈值过低,您可能会在不需要时将资金投入到公有云中。如果内存使用量过高,应用可能会在新资源到达之前崩溃。统一监控有助于组织微调这些设置,以平衡性能和成本。
手动平衡适用于小型、不频繁的项目,但可能无法很好地扩展到企业应用。为了提高效率,组织可以实施软件和工具来自动编排云计算资源。Terraform 或 Google Cloud 的 Deployment Manager 等自动化工具可以帮助定义基础设施即代码 (IaC)。
这意味着系统可以根据实时需求自动预配、配置和管理服务器。当流量高峰消退时,自动化工具还会处理这些资源的“取消预配”或关闭。这样可确保公司在不再需要公有云时立即停止付费。
在爆发事件期间保持控制对于安全和预算管理至关重要。组织需要强大的监控功能来跟踪资源,确保资源得到适当预配,而不会中断服务。
报告工具可帮助跟踪爆发随时间推移产生的费用。这些数据对于预测未来预算至关重要。此外,一致的安全政策必须适用于爆发资源。实施监控和报告的工具可以帮助识别使用情况中的趋势和异常情况,从而随着时间的推移降低成本并提高效率。
对于希望平衡性能和预算的组织,采用云爆发策略可以带来以下几项优势。
节约费用
公司只需在使用时为额外的公有云资源付费,这有助于避免购买在静默期处于空闲状态的硬件所产生的资本支出。
灵活性和可伸缩性
它让团队可以自由测试新项目或处理流量的大幅激增,而不受自身数据中心可用物理空间或电力的限制。
业务连续性和弹性
如果私有数据中心出现问题或不堪重负,应用会将负载转移到公有云,从而保持在线状态,这有助于防止崩溃和停机。
资源优化
IT 团队可以确保私有云以稳定、高效的水平运行,以处理关键任务,同时将可变、不可预测的流量卸载到灵活的公有云。
云爆发概念是通用的,但支持它的基础设施在不同提供商之间差异很大。Google Cloud 具有独特的优势,可让混合爆发处理更快速、更可靠且更易于管理。