IBM 的行业转型蓝图如何利用 AI、5G 和协作
应用程序激增,云复杂性呈爆炸式增长,Kubernetes 成为在云中部署应用程序的基础。这听起来像是一项成熟的机器学习优化任务,而 StormForge 正在采取行动。
云已成为应用程序部署的事实标准。Kubernetes 已成为应用程序部署的事实标准。以最佳方式调整部署在 Kubernetes 上的应用程序是一个不断变化的目标,这意味着应用程序可能性能不佳或超支。这个问题可以通过自动化以某种方式解决吗?
这是一个非常合理的问题, 其他人也问过这个问题。随着 Kubernetes 的不断发展和每次迭代的复杂程度,以及云部署选项的激增,微调应用程序部署和作变得越来越困难。这是个坏消息。
好消息是,我们现在已经达到了 Kubernetes 已经存在了一段时间的地步,并且在其整个生命周期中都有大量应用程序使用它。这意味着已经积累了大量知识 — 至关重要的是,数据 — 已经积累起来。反过来,这意味着应该可以使用机器学习来优化 Kubernetes 上的应用程序部署。
StormForge 自 2016 年以来一直在这样做。到目前为止,他们一直以部署前环境为目标。截至今天,他们还将 Kubernetes 用于生产。我们采访了 CEO 兼创始人 Matt Provo,讨论了 StormForge 产品的来龙去脉。
使用机器学习优化 Kubernetes
Provo 在 Apple 长期担任产品经理后,于 2016 年创立了 StormForge,其目标是利用机器学习来优化大型 HVAC 和制造设备的用电量。该公司正在使用 Docker 进行部署,在 2018 年底的某个时候,他们提升并转向 Kubernetes。正如 Provo 所说,这就是他们找到实现其核心竞争力的完美用例的时候。
一次转向、一次收购、$68m 的资金和众多客户之后,StormForge 今天宣布推出 Optimize Live,这是其平台的最新扩展。该平台使用机器学习来智能、自动地提高 Cloud Native 生产环境中的应用程序性能和成本效益。
首先要注意的是,StormForge 的平台已经为预生产和非生产环境做了这件事。这个想法是用户指定要优化的参数,例如 CPU 或内存使用率。
然后 StormForge 启动应用程序的不同版本,并返回用户的配置选项来部署应用程序。StormForge 声称,这通常可以节省 40% 到 60% 的成本,并将性能提高 30% 到 50%。
但是,还需要注意的是,这是一个多目标优化问题。这意味着,虽然 StormForge 的机器学习模型会尝试找到在不同目标集之间取得平衡的解决方案,但通常不可能同时优化它们。
要优化的参数越多,问题就越难。通常,用户最多提供 10 个参数。Provo 说,StormForge 看到的是成本效益连续体。
在生产环境中,该过程类似,但存在一些重要差异。StormForge 将此称为平台的观察端。通过与 APM(应用程序性能监控)解决方案(如 Prometheus 和 Datadog)集成来使用遥测和可观测性数据。
然后,Optimize Live 会提供近乎实时的推荐,用户可以选择手动应用它们,或使用 Provo 所说的“一劳永逸”。也就是说,让平台选择应用这些推荐,只要满足某些用户定义的阈值:
“我们的目标是提供足够的灵活性和用户体验,让开发者自己能够指定他们关心的事情。这些是我需要保持的目标。以下是我的目标。从那时起,机器学习开始发挥作用并接管。我们将提供数十个甚至数百个满足或超过这些目标的配置选项,“Provo 说。
Kubernetes 在生产中的细微差别
Provo 继续补充道,从生产数据中学习和观察与生产中的实时调整之间有一条非常微妙的界限。当你越过这条线时,风险水平是无法管理和维持的,StormForge 用户不希望这样——这是他们明确的答案。用户看到的是可以选择他们的风险承受能力,以及从自动化的角度来看他们愿意接受什么。
在预生产中,通过为此目的创建的软件对应用程序的不同配置选项进行负载测试。用户可以自带性能测试解决方案,StormForge 将与之集成,也可以使用 StormForge 自己的性能测试解决方案,该解决方案是通过 收购引入的。
优化 Kubernetes 上的应用程序部署是一个多目标 图片:StormForge
Provo 说,从历史上看,这一直是 StormForge 用于其机器学习的最大数据输入。然而,开始它并不容易。正如 Provo 所说,StormForge 人才丰富,但数据匮乏。
为了引导其机器学习,StormForge 为其第一批大客户提供非常优惠的交易,以换取使用其用例数据的权利。这很有效,StormForge 现在已经围绕机器学习构建了自己的 IP,用于解决多目标优化问题。
更具体地说,围绕 Kubernetes 优化。正如 Provo 所指出的,基础就在那里,针对每个特定用例和每个新参数进行微调只需几分钟,无需额外的手动调整。
虽然有一点学习,但总的来说,StormForge 认为这是一件好事。平台可能遇到的场景和情况越多,性能就越好。
在生产场景中,StormForge 在某种意义上是在与 Kubernetes 本身竞争。Kubernetes 具有自动扩展功能,机器人垂直和水平扩展,具有 VPA(垂直 Pod 自动缩放器)和 HPA(水平 Pod 自动缩放器)。
StormForge 与 VPA 合作,并计划也与 HPA 合作,以实现 Provo 所说的双向智能扩展。StormForge 根据 VPA 和 HPA 在 Kubernetes 环境中为用户推荐的内容来衡量提供的优化和价值。
Provo 说,即使在生产场景中,他们也看到了成本节约。虽然不如预生产选项高,但仍然可以节省 20% 到 30% 的成本,并且通常性能提高 20%。
Provo 和 StormForge 甚至提供减少云浪费的保证。StormForge 保证 Kubernetes 云应用程序资源成本至少降低 30%。如果节省的费用与承诺的 30% 不匹配,Provo 将支付您 1 个月的云账单差额(最高 50,000 美元/客户),并将等值金额捐赠给您选择的绿色慈善机构。
当被问及时,普罗沃说,到目前为止,他甚至一次都不必兑现这一承诺。他继续补充道,随着越来越多的人迁移到云,消耗更多的资源,与云废物有直接联系,这也与碳足迹有关。Provo 认为 StormForge 具有强大的使命导向性。
