IBMは先頃、IBM Cloud Code Engineという名称の新しい計算サービスをベータ版提供すると発表した。このサービスは、Webアプリやマイクロサービス、イベント駆動関数、バッチジョブなど、コンテナ化されたワークロードを実行するマネージド・サーバレスプラットフォームである。
フォローアップ記事ではユースケースの他、Code Engineの構築に使用されたオープンソーステクノロジとして、サーバレスワークロードのデプロイと管理を行うKubernetesベースのプラットフォームであるKnative、サービスメッシュのIstio、継続的インテグレーションおよびデリバリ(CI/CD)システム開発用のフレームワークであるTektonなどの名を挙げている。同社デベロッパアドボケートのCong Nguyen氏は、次のようにツイートしている。
最後に、クラウド上の共有Knativeサービス。私のささやかな夢がついに叶いました。
IBMは、オープンソースレイヤとプラットフォームのポータビリティを強調した上で、提供するユーザインターフェースは極めてシンプルだが、Kubernetesデータモデルの完全なカスタマイズや、あるいは既存のデプロイメントスクリプトの再利用がCode Engine上で可能だ、と説明している。
Code Engineは負荷に応じてコンテナを自動的にスケールする。アクティブな要求のない場合には、スケールをゼロにすることも可能である。サービスを使用する上で、コンテナイメージの用意は必須ではない。Code EngineがソースコードをGitリポジトリから取得し、"buildpack"とIBMが呼ぶサポート対象ランタイム環境にバンドルして、コンテナを生成してくれるのだ。これを行う方法のガイドは、IBM Cloud Design Engineer Gitbookで確認できる。
"About IBM Cloud Code Engine"には主要なコンセプトと、プラットフォームで使用される名称や用語が紹介されている。IBMの提供する最初のチュートリアルには、Code EngineとCloud CLIを使用した視覚認識プラットフォームの構築方法が取り上げられている。
出典: https://cloud.ibm.com/docs/solution-tutorials?topic=solution-tutorials-image_classification_code_engine
IBM GermanyのデベロッパアドボケートであるHarald Uebele氏は自身の個人ブログに、Code Engine上でコンテナをサーバレスに実行する方法に関して、新プラットフォームが優れているユースケースを中心とした詳細な記事を書いている。
私はKubernetesの大ファンです。コンテナ化されたアプリケーションを管理する上で、非常に強力なツールだと思います。ですが、小規模なアプリケーションを、生成するトラフィック量を正確に知らないまま実行したい場合などには、Kubernetesは大きすぎたり、費用や労力が掛かりすぎたりするかも知れません。このような場合には、Knative Servingのようなサーバレスプラットフォームの方が適していると思われます。しかし、それでもKubernetesが必要です。Knativeインスタンスを自分で運用するのでは、おそらくメリットはあまりないでしょう。IBMのCode Engineが活躍するのは、このような場合なのです。
BNP Paribasのクラウドディレクタである Christophe Boulangé氏はこのサービスを"次世代FaaS"と評しているが、既存のサービスに対するアドバンテージに疑問を持つ開発者たちもいる — "AWS lambdaやGCPのCloud Functionsに対して、このソリューションの長所は何なのだろうか?"
ベータ版提供中、Code Engineは無償である。