OCI Functionsのレジリエンシ、可用性、同時実行性およびスケーラビリティ
OCI Functionsが回復性、可用性、同時実行性およびスケーラビリティの要件を満たす方法をご覧ください。
レジリエンシおよび可用性
レジリエンシおよび可用性とは、一部のコンポーネントで障害が発生したりパフォーマンスが最適ではなくても、システムが動作を継続できることを意味します。
OCI関数の場合:
- コントロール・プレーンは、ファンクション定義を管理する一連のコンポーネントです。
- データ・プレーンは、呼出し要求に応じてファンクションを実行する一連のコンポーネントです。
レジリエンシおよび高可用性のために、コントロール・プレーン・コンポーネントとデータ・プレーン・コンポーネントは両方とも、リージョン内の異なる可用性ドメインおよびフォルト・ドメイン間で分散されます。いずれかのドメインを使用できなくなると、ファンクション定義の管理と実行が中断しないように残りのドメインのコンポーネントが引き継ぎます。
ファンクションが呼び出されると、それらは、そのファンクションが属するアプリケーションに指定されたサブネットで実行されます。レジリエンシおよび高可用性のためには、アプリケーションのリージョナル・サブネット(または、異なる可用性ドメインにある複数のAD固有のサブネット)を指定することをお薦めします。アプリケーションに対して指定されたアベイラビリティ・ドメインを使用できない場合、OCIファンクションは別のアベイラビリティ・ドメインでファンクションを実行します。
同時実行性およびスケーラビリティ 🔗
同時実行性とは、システムが共有リソースを使用して複数の操作をパラレルに実行する能力のことです。スケーラビリティとは、需要を満たすためにシステムの容量(稼働中と停止中の両方)を拡張する能力のことです。
ファンクションの場合、ファンクションが初めて呼び出されたときに、そのファンクションのイメージは、そのファンクションが属するアプリケーションに関連付けられたサブネットのインスタンス上のコンテナとして実行されます。ファンクションがコンテナ内部で実行されている場合、そのファンクションは、同じサブネットで実行されている他の共有リソースやサービス(たとえば、Database as a Service)に対して読取りおよび書込みが可能です。このファンクションは、他の共有リソース(たとえば、オブジェクト・ストレージ)および他のOracle Cloud Servicesとの間で読取りおよび書込みを行うこともできます。
OCI Functionsが、実行中のコンテナ内で現在実行中のファンクションに対して複数のコールを受け取ると、OCI Functionsは自動的かつシームレスに水平にスケーリングされ、すべての受信リクエストを処理します。OCI Functionsは、テナンシに指定された制限まで、複数のDockerコンテナを起動します。デフォルトの制限は、可用性ドメインごとのファンクション実行用に予約された60 GBのRAMですが、この制限の引き上げをリクエストすることもできます。制限を超えていない場合、異なるコンテナで実行されるファンクション間で応答時間(レイテンシ)に違いはありません。
様々なアプリケーションのファンクションが同時に呼び出されるとき、OCI Functionsは、それらのファンクションの実行が互いに分離されることを確認します。