アプリケーションのワークロード

IBM Cloud® Code Engine Code Engine は、 におけるワークロードの構築、デプロイ、管理に伴う運用負荷を抽象化し、開発者が最も重要なこと、つまりソースコードに集中できるようにする。 Kubernetes 開発者は、ワークロードの作成と管理の複雑さを Code Engineに委任することで、任意のフレームワークまたは言語で作成されたアプリケーションをデプロイおよびスケーリングできます。 Code Engineでのアプリケーションの使用方法について学びましょう。

アプリケーション・ワークロードとは

アプリケーション (アプリ) は、HTTP 要求を処理するコードを実行します。 IBM Cloud® Code Engine は、従来型の HTTP 要求に加えて、通信プロトコルとして WebSocket を使用するアプリケーションもサポートします。 アプリの実行中のインスタンス数は、入ってくるリクエストとコンフィギュレーション設定に基づいて自動的にスケールアップまたはスケールダウン(ゼロに)されます。 アプリには、1 つ以上のリビジョンが含まれています。 リビジョンとは、アプリの構成プロパティーの変更不可能なバージョンの 1 つを表します。 アプリの構成プロパティーが更新されるたびに、アプリの新規リビジョンが作成されます。

Code Engine アプリケーションを操作する際の主な機能は何ですか?

Code Engineでのアプリケーションの操作について詳しくは、以下のトピックを参照してください。

分離

Code Engine は、リージョン別のマルチテナント・サービスであり、複数のテナントが同じネットワークとコンピュート・インフラストラクチャーを共有します。 特に、ネットワークとコンピュート・インフラストラクチャーは共有リソースであり、一部の管理コンポーネントはすべてのテナントに共通です。 ただし、テナントとそのワークロードは、 Code Engine プロジェクトを使用して相互に分離されます。 Code Engine は、プロジェクト間の通信を防止し、マルチテナント環境内のアプリケーションを分離します。 さらに、許可されたユーザーのみがプロジェクト・リソース (アプリケーションやその他の Code Engine ワークロードなど) に対して特定の操作を実行できるようにするために、リソース・レベルで実行されるアクセス制御もあります。

ワークロードの分離について詳しくは、 Code Engine ワークロードの分離 を参照してください。

ロギング

Code Engineアプリケーションをコンソールで操作し、ロギングを有効にすると、ログは'Code Engineプロジェクトに関連付けられた'IBM Cloud Logsサービスインスタンスに転送されます。 IBM Cloud Logsサービスインスタンスでは、ログはインデックス化され、生成されたすべてのメッセージの全文検索と、特定のフィールドに基づく便利なクエリが可能になります。 アプリケーションのログの取得 を参照してください。

システムイベント情報は、ジョブを実行する際のトラブルシューティングにも役立ちます。 CLI を使用してシステム・イベント情報を表示できます。 アプリケーションのシステム・イベント情報の取得 を参照してください。

ロギングについて詳しくは、ログの表示を参照してください。

アプリケーションの実行

コードがソースとしてローカルファイルや Git リポジトリに存在する場合でも、コードがパブリックまたはプライベートレジストリに存在するコンテナイメージの場合でも、 Code Engine は、コードをアプリとして実行する合理的な方法を提供します。

以下の方法で、 Code Engine でアプリケーションをデプロイして実行することができます。

  • 既存のコンテナー・イメージから実行します。 アプリケーションを作成し、 Code Engineを使用してアプリケーションをデプロイするときに使用するイメージへの参照を指定します。

  • コンテナー・イメージなしで既存のソース・コードから実行します。 Git リポジトリーまたはローカル・ワークステーションにあるソース・コードから開始する場合は、ソースの場所を指すことができ、 Code Engine によってイメージの作成が行われます。 Code Engine は、Dockerfile および Cloud Native Buildpacks からのビルドをサポートします。Cloud Native Buildpacks は、ソース・コードを検査して、コンテナー・イメージとしてビルドおよびパッケージ化する必要がある方法を判別します。

アプリケーションのデプロイと実行について詳しくは、 Working with apps in Code Engine を参照してください。

スケーリング

Code Engine アプリケーションは、着信要求に応じてスケールアップまたはスケールダウンします。 アプリケーションは scale-to-zero モデルに従います。このモデルでは、トラフィックがない場合にインスタンスは作成されず、コストの最適化につながります。 着信要求がある場合、ワークロードに対応するために、アプリは自動的にゼロからスケールアップします。

Code Engineで、インスタンスの最小数と最大数を設定することにより、自動スケーリングを制御できます。 また、特定のアプリケーション・インスタンスに対して並行して実行する要求の数を指定することによって、アプリケーションの並行性を指定することもできます。これは、新規インスタンスがいつプロビジョンされるかを判別するのに役立ちます。

アプリのスケーリングについて詳しくは、アプリケーション・スケーリングの構成を参照してください。

セキュリティー

Code Engine は、あなたのアプリケーションに即座にDDOS保護を提供します。 Code Engine DDOS プロテクションは、 Cloud Internet Services (CIS) から追加費用なしで提供されます。 DDoS 防御は、システム相互接続(OSI)レイヤー3およびレイヤー4(TCP/IP)プロトコル攻撃をカバーしますが、レイヤー7 HTTP 攻撃はカバーしません。 DDoS 対策 を参照。

Code Engine も、ネットワーキング層を使用するためのサービス・メッシュを提供します。これにより、アプリケーション上の相互 Transport Layer Security (TLS) トラフィックが有効になり、 サービス間 および ユーザーとサービス間 の通信が保護されます。

セキュリティーについて詳しくは、 Code Engine とセキュリティー を参照してください。

イベントによるアプリケーションのトリガー

クーロン・イベント、 IBM Cloud Object Storage イベント、または Kafka トピックを受信するように Code Engine アプリケーションを構成できます。 イベント・プロデューサーをサブスクライブする場合は、イベントを受信する宛先アプリケーションの名前を指定する必要があります。

イベント・プロデューサーの操作について詳しくは、 サブスクリプション入門 を参照してください。

表示設定

Code Engine では、エンドポイント、またはリクエストを受信するために利用可能なシステム・ドメイン・マッピングを定義することによって、アプリケーションの適切な可視性レベルを決定することができます。 アプリケーションは、インターネットの IBM Cloud プライベート・ネットワークに公開することも、同じ Code Engine プロジェクト内の他のリソースにのみスコープ設定することもできます。

デフォルトでは、実行中のすべてのアプリケーションが独自の TLS セキュア・エンドポイントを取得します。これは、独自のドメインにマップできます。

さらに、独自のカスタムドメインを Code Engine アプリケーションにマップして、カスタム URLからのリクエストをアプリケーションにルーティングすることができます。 所有するドメインをアプリケーションのターゲットにする場合は、カスタム・ドメイン・マッピングを使用できます。 Code Engineでカスタム・ドメイン・マッピングを設定すると、完全修飾ドメイン名(FQDN)とプロジェクト内の Code Engine アプリケーションとの 1-to-1のマッピングが定義されます。

可視性について詳しくは、 Code Engine アプリケーションの可視性のオプション および アプリケーションのカスタム・ドメイン・マッピングの構成 を参照してください。

アプリケーションの使用を開始するにはどうすればよいですか?

icr.io/codeengine/helloworld サンプル・イメージを使用して単純な Code Engine アプリケーションをデプロイするには、 最初の Code Engine アプリケーションの作成 を参照します。

また、アプリケーション・チュートリアルを試すこともできます。 アプリケーションのデプロイおよびスケーリング を参照してください。

アプリケーションの操作について詳しくは、 Code Engine を参照してください。