機械学習でKubernetesを最適化することでクラウドの無駄を削減

ソースノード: 1745358

クラウドは、アプリケーション展開の事実上の標準になっています。 Kubernetesは、アプリケーション展開のデファクトスタンダードになりました。 Kubernetesにデプロイされたアプリケーションを最適に調整することは、動く目標です。つまり、アプリケーションのパフォーマンスが低下したり、支出が過剰になったりする可能性があります。 その問題は自動化を使用して何らかの方法で解決できますか?

それは非常に合理的な質問です。 他の人も尋ねました。 Kubernetesは進化し、反復ごとに複雑になり、クラウドでのデプロイのオプションが急増しているため、アプリケーションのデプロイと操作を微調整することはますます困難になっています。 それは悪いニュースです。

良いニュースは、私たちは今、 Kubernetesはしばらく前から存在しています、そして多くのアプリケーションがその生涯を通じてそれを使用してきました。 つまり、蓄積された一連の知識、そして決定的にはデータが存在するということです。 つまり、機械学習を使用して次のことが可能になるはずです。 Kubernetesでのアプリケーションのデプロイを最適化する.

ストームフォージ 2016年からこれを行っています。これまでのところ、導入前の環境を対象としています。 現在、本番環境ではKubernetesもターゲットにしています。 CEO兼創設者のMattProvoに会い、StormForgeの製品の詳細について話し合いました。

機械学習によるKubernetesの最適化

ProvoがAppleの製品マネージャーとして長い間働いた後2016年にStormForgeを設立したときの目標は、機械学習を使用して、大規模なHVACおよび製造装置での電力消費方法を最適化することでした。 同社はデプロイにDockerを使用していましたが、2018年後半のある時点で、Kubernetesに移行しました。 これは、プロボが述べたように、コアコンピテンシーの完璧なユースケースを見つけたときです。

68つのピボット、XNUMXつの買収、XNUMX万ドルの資金調達、そしてその後の多くのクライアント、StormForgeは本日、プラットフォームの最新の拡張機能であるOptimizeLiveを発表します。 このプラットフォームは、機械学習を使用して、クラウドネイティブの本番環境でアプリケーションのパフォーマンスとコスト効率をインテリジェントかつ自動的に改善します。

最初に注意することは、StormForgeのプラットフォームは、実稼働前および実稼働以外の環境ですでにそれを実行していたことです。 ユーザーは、CPUやメモリの使用量など、最適化するパラメータを指定するという考え方です。

次に、StormForgeはアプリケーションのさまざまなバージョンを起動し、ユーザーの構成オプションに戻ってアプリケーションを展開します。 StormForgeは、これにより通常40%から60%のコスト削減が実現し、パフォーマンスが30%から50%向上すると主張しています。

ただし、これは多目的最適化の問題であることに注意することも重要です。 つまり、StormForgeの機械学習モデルは、設定されたさまざまな目標のバランスをとるソリューションを見つけようとしますが、通常、それらすべてを同時に最適化することはできません。

最適化するパラメーターが多いほど、問題は難しくなります。 通常、ユーザーは最大10個のパラメーターを提供します。 プロボによると、StormForgeが見ているのは、コストパフォーマンスの連続体です。

実稼働環境では、プロセスは似ていますが、いくつかの重要な違いがあります。 StormForgeは、これをプラットフォームの監視側と呼んでいます。 テレメトリと 可観測性 データは、PrometheusやDatadogなどのAPM(アプリケーションパフォーマンスモニタリング)ソリューションとの統合を介して使用されます。

その後、Optimize Liveはほぼリアルタイムの推奨事項を提供し、ユーザーはそれらを手動で適用するか、Provoが「設定して忘れる」と呼んだものを使用するかを選択できます。 つまり、特定のユーザー定義のしきい値が満たされている限り、プラットフォームにこれらの推奨事項の適用を選択させます。

「目標は、開発者自身が気になることを指定できる十分な柔軟性とユーザーエクスペリエンスを提供することです。 これらは私が内にとどまる必要がある目的です。 そして、これが私の目標です。 そしてその時点から、機械学習が始まり、引き継ぎます。 これらの目標を満たすか、それを超える数百ではないにしても数十の構成オプションを提供します」とプロボは述べています。

生産中のKubernetesとの良好なライン

プロボは、本番データからの学習と観察と、本番でのライブチューニングとの間には、非常に細かい境界線があると付け加えました。 その境界線を越えると、リスクのレベルは管理不可能で受け入れられなくなり、StormForgeユーザーはそれを望まないでしょう—それが彼らの明白な答えでした。 ユーザーに提示されるのは、リスク許容度がどこにあるか、および自動化の観点から何に慣れているかを選択するオプションです。

実稼働前では、アプリケーションのさまざまな構成オプションが、この目的のために作成されたソフトウェアを介して負荷テストされます。 ユーザーは、StormForgeが統合する独自のパフォーマンステストソリューションを持参するか、StormForge独自のパフォーマンステストソリューションを使用することができます。 買収を通じて持ち込まれた.

ストームフォージ.png

Kubernetesでのアプリケーションのデプロイを最適化することは、多目的目標です。画像:StormForge

歴史的に、これはStormForgeの機械学習用の最大のデータ入力であるとProvo氏は述べています。 しかし、それを開始するのは簡単ではありませんでした。 StormForgeは才能に富んでいましたが、プロボが言ったようにデータは貧弱でした。

機械学習をブートストラップするために、StormForgeは、ユースケースからのデータを使用する権利と引き換えに、最初の大口顧客に非常に良い取引を提供しました。 これはうまく機能し、StormForgeは多目的最適化問題のための機械学習を中心にIPを構築しました。

具体的には、Kubernetesの最適化についてです。 Provoが指摘したように、基盤はそこにあり、特定のユースケースごとに微調整するために必要なすべてのことと、新しいパラメーターは数分で、追加の手動調整は必要ありません。

少し学習が行われていますが、全体として、StormForgeはこれを良いことだと考えています。 プラットフォームが遭遇する可能性のあるシナリオと状況が多いほど、パフォーマンスが向上する可能性があります。

本番シナリオでは、StormForgeはある意味でKubernetes自体と競合しています。 Kubernetesには自動スケーリング機能があり、ボットは垂直方向と水平方向にあり、 VPA(垂直ポッドオートスケーラー)およびHPA(水平ポッドオートスケーラー).

StormForgeはVPAと連携し、HPAとも連携して、Provoが双方向インテリジェントスケーリングと呼んでいるものを可能にすることを計画しています。 StormForgeは、VPAとHPAがKubernetes環境内のユーザーに推奨しているものに対して提供される最適化と値を測定します。

生産シナリオでも、プロボはコスト削減を見ていると言いました。 実動前のオプションほど高くはありませんが、それでも20%から30%のコスト削減、および通常はパフォーマンスの20%の向上です。

ProvoとStormForgeは、 クラウド廃棄物削減保証。 StormForgeは、Kubernetesクラウドアプリケーションのリソースコストを最低30%削減することを保証します。 節約額が約束された30%と一致しない場合、プロボは1か月間クラウド請求に差額を支払い(最大$ 50,000 /顧客)、選択したグリーンチャリティーに同等の金額を寄付します。

尋ねられたとき、プロボは彼が今日まで一度でもそのコミットメントを尊重する必要はなかったと言いました。 ますます多くの人々がクラウドに移動し、より多くのリソースが消費されるにつれて、クラウド廃棄物との直接的なつながりがあり、これは二酸化炭素排出量にも関係していると彼は続けました。 プロボは、StormForgeが強力なミッション指向の側面を持っていると見ています。

タイムスタンプ:

より多くの ZDネット