IBM Cloud News
IBM Cloud Code Engine でバッチジョブを実行する
2021年04月30日
カテゴリー IBM Cloud Blog | IBM Cloud News | IBM Cloud アップデート情報 | IBM Cloud チュートリアル
記事をシェアする:
この投稿は、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に指示するだけで、必要なインフラのデプロイとスケールアウトが行われます(もちろん、終了したらゼロにスケールダウンします)。支払いは、ジョブが実際に実行されている時間分だけです。
さらに、アプリケーションの管理とバッチジョブの管理のユーザーエクスペリエンスは同じです。バッチジョブが実行する、すべてのワークロードは同じランタイム環境でホストされているため、自動的に接続され、お互いに安全に通信することができ、追加の統合は必要ありません。
バッチジョブをいかに簡単かつ迅速にデプロイして実行できるかを紹介するビデオを公開しています。
ビデオの中では、上で説明したのとよく似たサンプルを紹介しています。ビデオでは手動でジョブの実行を開始していますが、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”(英語)の抄訳です。
セキュリティー・ロードマップ
IBM Cloud Blog
統合脅威管理、耐量子暗号化、半導体イノベーションにより、分散されているマルチクラウド環境が保護されます。 2023 安全な基盤モデルを活用した統合脅威管理により、価値の高い資産を保護 2023年には、統合された脅威管理と ...続きを読む
量子ロードマップ
IBM Cloud Blog
コンピューティングの未来はクォンタム・セントリックです。 2023 量子コンピューティングの並列化を導入 2023年は、Qiskit Runtimeに並列化を導入し、量子ワークフローの速度が向上する年になります。 お客様 ...続きを読む
ハイブリッドクラウド・ロードマップ
IBM Cloud Blog
コンポーザブルなアプリケーション、サービス、インフラストラクチャーにより、企業は複数のクラウドにまたがるダイナミックで信頼性の高い仮想コンピューティング環境の作成が可能になり、開発と運用をシンプルに行えるようになります。 ...続きを読む