IBM Cloud News

IBM Cloud Code Engine でバッチジョブを実行する

記事をシェアする:

この投稿は、2021/4/14に米国 IBM Cloud Blog に掲載されたブログ(英語)の抄訳です。

 

できるか、できないかは、クラウドが決めること?

ワークロードの種類によって必要なランタイム環境は異なります。関数、12要素アプリ、バッチジョブなど、それぞれが異なるランタイム特性を持っているため、開発者はそれぞれのタイプを専用のプラットフォームでホストすることを期待しているのではないでしょうか? 実は、それは過去のことになります。IBM Cloud Code Engineが、クラウド・ネイティブ・ワークロードのホスティングに関する考え方に革命をもたらすのです。

 

IBM Cloud Code Engineとは?

IBMは新しいフラッグシップ・ランタイム・ホスティング環境「IBM Cloud Code Engine」を発表しました(発表内容はこちら)。Code Engineは、フルマネージドのクラウドベースのランタイムで、デプロイ先のインフラを一切管理することなく、あらゆるクラウドネイティブワークロードを数秒でデプロイすることができます。

Kubernetesはコンテナオーケストレーション戦争に勝ちました。Code EngineはKubernetesを裏で使用していますが、開発者がクラウド・ネイティブ・ワークロードをどのように管理すべきかについては、異なるアプローチを取りました。

Kubernetesを「管理」してくれる他のプラットフォームでは、Kubernetesを学ぶという作業が残っています。なぜなら、最終的にはポッド、replicaSets、デプロイメント、ロードバランサーなど、さまざまなことを学ぶ必要があるからです。なぜこのようなことが必要なのでしょうか? ホスティング環境との連携がない限り、アプリケーションでこれらを使用することは通常ありません。そのため、これらの概念を学ぶことは、コードを書き、最終的にお客様に価値を提供するという本来の目的から外れてしまうのです。Code Engineは、あなたに代わってIBMがKubernetesを管理するだけでなく、あなたからKubernetesを積極的に隠そうとしています。だから、あなたは学ぶという作業を取り除くことができるのです。

Code EngineはKubernetesの上の超シンプルなユーザーエクスペリエンスです。以前に公開したブログや、アプリケーションのデプロイがいかに簡単かを示すビデオが参考となるでしょう。今回のブログでは、Code Engineが様々な “as-a-service “プラットフォームをどのように統合しているかを紹介したいと思います。

あなたが書いたコードがコンテナの中で実行されるとしたら、PaaS環境、Kubernetes、またはサーバーレスのプラットフォームのいずれかを選択しなければならないことに、本当に意味があるのでしょうか? 特に、それぞれが異なるランタイム制約を持ち、それぞれが独自のユーザーエクスペリエンスを持ち、異なるCI/CDワークフローにつながっている場合はなおさらでしょう。これでは、多くの作業、学習、ランタイムの統合が必要となり、コードという形で顧客価値を提供するという本来の仕事から遠ざかってしまいます。

Code Engineでは、そのような心配はありません。ワークロードのランタイム特性に関わらず、単一のプラットフォームで単一のユーザーエクスペリエンスで実行することができ、すべてをシームレスに連携することができます。また、Code Engineはより複雑なAPIもサポートしているので、従来のKubernetesのワークロードと統合することもできます。例えば、アプリケーションごとに、負荷に応じて自動的に拡張するかどうか(ゼロにすることも可能)、それぞれに使用するリソースを制御するかどうか、外部からのアクセスを制御するかどうかを選択できます。選択肢はあなた次第です。

 

バッチジョブはクラウドネイティブワークロードでもある

クラウドネイティブなワークロードについて語るとき、見落とされがちなことあります。それは、すべてのワークロードがHTTP(イベント)ドリブンではないということです。つまり、すべてのワークロードがメッセージの受信に反応するわけではないということです。その典型的な例が「バッチジョブ」(「run-to-completion」ワークロードと呼ばれることもあります)です。

複数のリクエストを同時に処理したり、複数のリクエストを順次処理したりするアプリケーションインスタンスとは異なり、バッチジョブインスタンスは、一度だけ実行され、いくつかの処理を行ってから終了することを目的としています。例えば、日中に収集したデータを処理するために毎晩実行されるバッチジョブがその典型例です。

バッチジョブは、アプリケーションと同様に拡張することができますが、HTTPリクエストに基づいて拡張するのではなく、通常は実行する必要のある作業量に基づいて拡張されます。先ほどの「日中に収集したデータの処理」の例で言えば、各バッチジョブの呼び出しは1時間以内に完了する必要があり、各ジョブインスタンスはその時間内に1,000個のデータを処理することしかできません。10,000レコードを処理する必要がある場合、バッチジョブを実行するたびに10のインスタンスにスケールアップする必要があります。

Code Engineでは、これが簡単にできます。ジョブを実行するたびに、どのようにスケールアップするかをCode Engineに指示するだけで、必要なインフラのデプロイとスケールアウトが行われます(もちろん、終了したらゼロにスケールダウンします)。支払いは、ジョブが実際に実行されている時間分だけです。

さらに、アプリケーションの管理とバッチジョブの管理のユーザーエクスペリエンスは同じです。バッチジョブが実行する、すべてのワークロードは同じランタイム環境でホストされているため、自動的に接続され、お互いに安全に通信することができ、追加の統合は必要ありません。

バッチジョブをいかに簡単かつ迅速にデプロイして実行できるかを紹介するビデオを公開しています。

Code Engine How to

 

ビデオの中では、上で説明したのとよく似たサンプルを紹介しています。ビデオでは手動でジョブの実行を開始していますが、APIやイベントから簡単に呼び出すこともできます。例えば、Ping(cron)イベントプロデューサに接続して、バッチジョブを1日のうちの決められた時間に実行させることができます。

この後は、ぜひご自身でCode Engineを試してみてください。Code Engineには無料枠(一定の条件に達するまで無料)があるので、購入する前に実際に使ってみることができます。サンプルやチュートリアルをご覧になれば、移行をスムーズに進めることができるでしょう。

始める準備はできましたか?

 

IBM Cloud Code Engineを始めましょう。ランディング・ページにアクセスしてアクセスして Code Engine を知ってください。その後、ドキュメントの「Getting Started with Code Engine」に進み、コンテナバッチ・ジョブをデプロイするか、ソース・コードを直接デプロイしてください。

 

参考情報:

IBM Cloud Code Engineにコンテナをデプロイする

IBM Cloud Code Engine にソースコードをデプロイする


翻訳:IBM Cloud Blog Japan 編集部

*このブログは、2021/4/13に発行された“Running Batch Jobs in IBM Cloud Code Engine”(英語)の抄訳です。

More IBM Cloud News stories

第14回【開催レポート】『コンテナ共創センター勉強会〜VMwareが考えるコンテナとKubernetesの世界〜』

IBM Cloud Blog, IBM Partner Ecosystem

こんにちは、日本IBM クラウドテクニカルセールスの中山です。 この記事では4月27日に行われた第12回コンテナ共創センター勉強会の様子をご紹介します。 COVID-19の影響で発足当初からオンラインで開催していた勉強会 ...続きを読む


IBM Cloud FoundryからCode Engineへのマイグレーションに関するベスト・プラクティスの紹介:サービス・バインディングとコード

IBM Cloud Blog, IBM Cloud チュートリアル

Part1:Cloud Foundry アプリケーションを IBM Cloud Code Engine にマイグレーションするためのベスト・プラクティス 昨年、 Cloud Foundry のアプリケーションを IBM ...続きを読む


VRA OSを最新にアップグレードしましょう

IBM Cloud Blog, IBM Cloud アップデート情報, IBM Cloud テクニカルサポート

VRAをご利用の皆様、現在使用しているバージョンは1912でしょうか? VRA OS 1912は、2022年6月にEOS (End of Support)となる予定です。 この機会に2012へのアップグレードを推奨致しま ...続きを読む