(57)【要約】  代替サーバ名を使用してｍＴＬＳを選択的に提供するための技法の例が、本明細書において説明される。例のシステムはレガシ・インジケータを検出したことに応じて代替サーバ名を生成するためのプロセッサを含む。プロセッサは、さらに代替サーバ名をポッドのアドレスに関連付ける。プロセッサは、代替サーバ名に基づいて相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するために、ポッドに関連付けられるプロキシをさらに構成する。
2021524090.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
レガシ・インジケータを検出したことに応じて代替サーバ名を生成し、前記代替サーバ名をポッドのアドレスに関連付けることと、
前記代替サーバ名に基づいて相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するために、前記ポッドに関連付けられるプロキシを構成することと
を行うためのプロセッサを備える、システム。
【請求項２】
前記システムが、前記ポッドが生成される前に、マニフェストを検査して、修正するためのアドミッション・コントローラを備える、請求項１に記載のシステム。
【請求項３】
前記システムが、ワークロードを受信することと、前記受信したワークロードで拡張ポイントをコールすることと、前記代替サーバ名を使用して少なくとも１つのユニフォーム・リソース・ロケータ（ＵＲＬ）を含む修正されたデプロイメント記述子を受信することとを行うための拡張アプリケーション・プログラミング・インターフェース（ＡＰＩ）・サーバを備える、請求項１に記載のシステム。
【請求項４】
前記システムが、変更通知にサブスクライブすることと、新しいワークロードを検出したことに応じて、前記新しいワークロードのデプロイメント記述子を修正し、前記代替サーバ名を使用する所望の状態に一致させることとを行うための制御ループを備える、請求項１に記載のシステム。
【請求項５】
前記レガシ・インジケータが、マニフェスト内の固有属性、ポッド固有メタデータ、デプロイメントのイメージを実行することにより生成された固有ＵＲＬパターン、またはアプリケーション・プログラミング・インターフェース（ＡＰＩ）仕様におけるレガシ・マイクロサービスを含む、請求項１に記載のシステム。
【請求項６】
検出されたレガシ・クライアントのアクセスに関連付けられるレガシ・クライアントが、ヘルス・チェックを実施するためのトランスポート層セキュリティ（ＴＬＳ）を使用するエージェントを含む、請求項１に記載のシステム。
【請求項７】
前記プロセッサが、前記構成されたプロキシを使用して、前記ポッド内のアプリケーション・インスタンス用のサービスを提供する、請求項１に記載のシステム。
【請求項８】
コンピュータ実装方法であって、
プロセッサを介して、レガシ・インジケータを検出することと、
前記プロセッサを介して、代替サーバ名を使用するために、ポッドのユニフォーム・リソース・ロケーション（ＵＲＬ）を修正することと、
前記代替サーバ名を受信したことに応じて、相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために前記ポッドに関連付けられるプロキシを構成することと
を含む、コンピュータ実装方法。
【請求項９】
前記レガシ・インジケータを検出することが、マニフェストを受信することと、前記マニフェストを検査のためにウェブフックに送信することとを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記レガシ・インジケータを検出することが、前記レガシ・インジケータを含む新しいワークロードを検出する変更通知にサブスクライブすることを含む、請求項８に記載のコンピュータ実装方法。
【請求項１１】
前記レガシ・インジケータを検出することが、サンドボックス環境内でデプロイメントのイメージを実行することと、前記レガシ・インジケータを含む特定のＵＲＬパターンの存在をテストすることとを含む、請求項８に記載のコンピュータ実装方法。
【請求項１２】
前記ＵＲＬを修正することが、ウェブフックを介してマニフェストを書き換えることを含む、請求項８に記載のコンピュータ実装方法。
【請求項１３】
前記代替名を使用するために他のシステムを構成するよう前記代替名を属性として暴露することを含む、請求項８に記載のコンピュータ実装方法。
【請求項１４】
前記代替名を使用して別のシステム・コンポーネントを自動的に再構成することを含む、請求項８に記載のコンピュータ実装方法。
【請求項１５】
相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム・コードを具現化して有するコンピュータ可読記憶媒体を備え、前記コンピュータ可読記憶媒体は一過性の信号そのものではなく、前記プログラム・コードはプロセッサによって実行可能であり、前記プロセッサに
複数のレガシ・インジケータについて複数のマニフェストを監視することと、
前記複数のマニフェストのうちの少なくとも１つにおける少なくとも１つのレガシ・クライアントに関連付けられるレガシ・インジケータを検出することと、
前記レガシ・インジケータを検出したことに応じて代替サーバ名を生成することと、
前記代替サーバ名をポッドのアドレスに関連付けることと、
レガシ・クライアントから前記代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを無効にするために、前記ポッドに関連付けられるプロキシを構成することと
を行わせる、コンピュータ・プログラム製品。
【請求項１６】
前記ポッドが生成される前にマニフェストを検査して修正するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
アプリケーションのデプロイメント中に前記レガシ・インジケータを検出するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１８】
サービス・レジストリ内の前記ポッドへの前記代替サーバ名のマッピングを記憶するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１９】
前記レガシ・クライアントから前記代替サーバ名を含む前記サーバ名インジケータを受信したことに応じてトランスポート層セキュリティ（ＴＬＳ）を提供するために、前記プロキシを構成するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【請求項２０】
前記代替サーバ名を含む前記サーバ名インジケータを受信したことに応じて相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために、前記プロキシを構成するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本技法は、相互トランスポート層セキュリティ（ｍＴＬＳ）に関する。より具体的には、本技法は、代替サーバ名を使用してｍＴＬＳを選択的に提供することに関する。
【発明の概要】
【０００２】
本明細書において説明される実施形態によると、システムはレガシ・インジケータを検出したことに応じて代替サーバ名を生成し、代替サーバ名をポッドのアドレスに関連付けるためのプロセッサを含むことができる。プロセッサは、代替サーバ名に基づいて相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するために、ポッドに関連付けられるプロキシをさらに構成することもできる。
【０００３】
本明細書において説明される別の実施形態によると、方法は、プロセッサを介して、レガシ・インジケータを検出することを含むことができる。方法は、プロセッサを介して、代替サーバ名を使用するために、ポッドのユニフォーム・リソース・ロケーション（ＵＲＬ）を修正することをさらに含むことができる。方法は、代替サーバ名を受信したことに応じて相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために、ポッドに関連付けられるプロキシを構成することをさらに含むこともできる。
【０００４】
本明細書において説明される別の実施形態によると、相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するためのコンピュータ・プログラム製品は、プログラム・コードを具体化して有するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、一過性の信号そのものではない。プログラム・コードはプロセッサによって実行可能であり、プロセッサに複数のレガシ・インジケータについて複数のマニフェストを監視させる。プログラム・コードは、さらにプロセッサに、複数のマニフェストのうちの少なくとも１つにおける少なくとも１つのレガシ・クライアントに関連付けられるレガシ・インジケータを検出させることができる。プログラム・コードは、さらにプロセッサに、レガシ・インジケータを検出したことに応じて代替サーバ名を生成させることができる。プログラム・コードは、さらにプロセッサに、代替サーバ名をポッドのアドレスに関連付けさせることができる。プログラム・コードは、さらにプロセッサに、レガシ・クライアントから代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを無効にするために、ポッドに関連付けられるプロキシを構成させることができる。
【０００５】
次に、単なる例として、添付の図面を参照して、本発明の実施形態を説明する。
【図面の簡単な説明】
【０００６】
【図１】代替サーバ名を使用してｍＴＬＳを選択的に提供するための例示のシステムのブロック図である。
【図２】代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例示の方法のブロック図である。
【図３】代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例示のコンピューティング・デバイスのブロック図である。
【図４】本明細書において説明される実施形態による、例示のクラウド・コンピューティング環境の処理フロー図である。
【図５】本明細書において説明される実施形態による、例示の抽象モデル・レイヤの処理フロー図である。
【図６】代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例示の有形の非一過性のコンピュータ可読媒体の図である。
【発明を実施するための形態】
【０００７】
マイクロサービス・ベースのアプリケーションは、本明細書においてマイクロサービスと称される、ネットワーク・プロトコルを使用して対話する、複数のサービスから構成される場合がある。例えば、ネットワーク・プロトコルは、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）、ハイパー・テキスト転送プロトコル・セキュア（ＨＴＴＰＳ）であってもよく、またはリモート・プロシージャ・コール（ＲＰＣ）システムに基づくものであってもよい。いくつかの例では、マイクロサービス・システムは、サービス・メッシュを採用することができる。サービス・メッシュは、中間プロキシを使用して間接的に通信を行うコンポーネントを含むことができる。これらのプロキシは、通信ハンドリングを単純化するために使用することができ、また通信の回復性およびセキュリティを向上することができる。マイクロサービス・ベースのアプリケーションのサービス同士の通信がプロキシを使用する限り、プロキシはマイクロサービス・コードに直接影響することなくあらゆる前提条件を完了することができる。例示の前提条件は、相互トランスポート層セキュリティ（ｍＴＬＳ）のハンドシェイクである可能性がある。本明細書において使用される場合、相互ＴＬＳ、すなわちｍＴＬＳとは、クライアントとサーバとの間で相互認証を実施するための技法を称する。例えば、サーバは、クライアントに証明書を送信することにより、それ自身の認証をクライアントで開始することができる。証明書は、信頼される認証局によって署名され、サーバの名前を含む場合がある。名前は、一般名および代替名を含む場合がある。証明書１０８は、公開鍵も含む場合がある。公開鍵は、乱数値を暗号化するためにクライアントによって使用される場合があり、次いで乱数値はクライアントに送信し戻されるサーバの識別情報の証明として、サーバによってその公開鍵に対応する秘密鍵を使用して復号化される。次いで、クライアントは同様に、そのクライアントの秘密鍵に対応する公開鍵を使用して暗号化されたサーバから受信した値の同様の復号化を実施することにより、それ自身をサーバで認証することができる。
【０００８】
サービス・メッシュ環境では、レガシ・クライアントによって行われるリクエストなどのプロキシによって開始されないリクエストは、傍受され、プロキシにリダイレクトされることもある。本明細書において使用される場合、用語レガシ・クライアントとは、ｍＴＬＳなどの特定の前提条件を使用するように構成されていないクライアントを称する。レガシ・クライアントによって開始されたリクエストは、ヘルス・チェック、メトリクスへのアクセス、状態、イントロスペクション、およびデバッグ・データ・リクエストを含む場合がある。ヘルス・チェックには、活性チェックまたは準備性チェックが含まれる場合がある。プロキシは、クライアントの識別情報を認識していない場合があるため、プロキシは、ｍＴＬＳ交換を開始する場合がある。しかしながら、クライアントの認証を開始する、得られるクライアント証明書リクエストは、レガシ・クライアントによって予期できない場合があり、結果的に接続が切断される場合がある。いくつかの例では、レガシ・クライアントは、活性チェックまたは準備性チェックなどのヘルス・チェックを実施することができる。例えば、レガシ・クライアントを使用して、ポッド内のアプリケーション・インスタンスの活性または準備性をチェックすることができる。本明細書において使用される場合、活性とはアプリケーション・インスタンスが活性であるかどうかを称する。例えば、活性チェックが、アプリケーション・インスタンスがダウンしていることを検出した場合、オーケストレータはアプリケーション・インスタンスを再始動することができる。本明細書において使用される場合、オーケストレータとは、コンテナ化されたインフラストラクチャのプロビジョニングを自動化して、作成するためにコンテナが使用されるサービスのためのロード・バランシングを提供するコンテナ管理ツールを称する。本明細書において使用される場合、準備性とはアプリケーション・インスタンスがトラフィックをサービスする準備ができているかどうかを称する。例えば、アプリケーション・インスタンスが活性であるが、１つまたは複数の依存関係が準備できていないことに起因して、トラフィックをサービスする準備ができていない場合がある。本明細書において使用される場合、ポッドとは、場合によってはコンテナ化された環境で実行中の１つまたは複数のプロセスのグループを称し、共有ストレージおよびネットワーク、ならびに１つまたは複数のコンテナをどのように実行するかの仕様を備えている。したがって、ポッドを使用してアプリケーション固有の論理ホストをモデル化することができる。例えば、ポッド内で１つまたは複数のコンテナはＩＰアドレスおよびポート空間を共有することができ、ローカルホストを介して互いを見つけることができる。それぞれのポッドには、別個のＩＰアドレスを割り当てられる場合があり、アプリケーション・インスタンスが競合することなくポートを使用することを可能にしている。ポッドを使用して、ローカル・ディスクのディレクトリまたはネットワーク・ディスクなどのボリュームを定義すること、およびボリュームをポッド内の１つまたは複数のコンテナに対して暴露することができる。ポッド内のアプリケーションは、ポッドの一部として定義することができ、それぞれのアプリケーションのファイルシステムにマウントできるように利用可能にすることができる共有ボリュームへのアクセスを有する場合がある。ポッドは、オーケストレータを介して、またはアドミッション・コントローラなどのコントローラを介して、手動で管理することができる。
【０００９】
本開示の実施形態によると、システムは、代替サーバ名を使用してｍＴＬＳを選択的に提供することができる。システムはレガシ・クライアントを検出したことに応じて代替サーバ名を生成し、代替サーバ名をポッドのアドレスに関連付けるための代替名生成器を含むことができる。システムは、代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを無効にするために、ポッドに関連付けられるプロキシを構成するためのプロキシ構成器をさらに含むことができる。
【００１０】
したがって、本明細書において説明される技法により、レガシ・クライアントを、ｍＴＬＳを使用するサービス・メッシュ・システムに展開することができる。さらには、本明細書において説明される技法は、アプリケーション・インスタンスに対して透明性があり、アプリケーションまたはクライアントにおけるいかなるコードの変更も必要としない。本技法を使用して、クライアント・コードに影響することなく、またはクライアント・コードを変更することなく、ｍＴＬＳクライアントと非ｍＴＬＳクライアントとを、異なる論理サーバに分離することができる。
【００１１】
いくつかのシナリオでは、本明細書において説明される技法は、クラウド・コンピューティング環境に実装することができる。少なくとも図３〜図５を参照して以下でより詳細に議論されるように、代替サーバ名を使用してｍＴＬＳを選択的に提供するように構成されるコンピューティング・デバイスは、クラウド・コンピューティング環境に実装することができる。本開示はクラウド・コンピューティングについての説明を含む場合があるが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを、前もって理解されたい。むしろ本発明の実施形態は、現在既知のまたは後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
【００１２】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有されるプールへの便利でオン・デマンドのネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００１３】
特徴は以下のとおりである：
オン・デマンド・セルフサービス：クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス：能力はネットワーク上で利用可能であり、異質なシンまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プール：プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用する複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求にしたがって動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化（例えば、国、州、またはデータセンタ）において場所を特定できることもある。
迅速な拡張性：能力は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な能力は、しばしば無制限に見え、いつでもいくらでも購入することができる。
計測されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント）に適当な抽象化のいくつかのレベルにおいて計測能力を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用量は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
【００１４】
サービス・モデルは以下のとおりである：
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供される能力は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション能力を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有のアプリケーション構成設定が可能である。
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供される能力は、クラウド・インフラストラクチャに、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によってはアプリケーションをホストする環境構成についての制御を有する。
サービスとしてのインフラストラクチャ（ＩａａＳ）：消費者に提供される能力は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーキング・コンポーネント（例えば、ホスト・ファイヤウォール）の限定された制御についての制御を有する。
【００１５】
デプロイメント・モデルは以下のとおりである：
プライベート・クラウド：クラウド・インフラストラクチャはある組織のためだけに運用される。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案（例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項）を有する特定のコミュニティをサポートする。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、一意なエンティティのままである２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）を組合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術（例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト）によって結合される。
【００１６】
クラウド・コンピューティング環境は、ステートレスであること、低い結合性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００１７】
次に図１を参照すると、ブロック図が代替サーバ名を使用してｍＴＬＳを選択的に提供するための例示のシステムを示している。例示のシステムは、全体として参照符号１００によって示される。例えば、システム１００は、サービス・メッシュ・システムであり得る。図１のシステム１００は、オーケストレータ１０４に通信可能に接続されるクライアント１０２を含む。例えば、クライアントは、ユーザ、プログラム、または自動化されたデプロイメント・パイプラインなどの自動化されたエージェントである可能性がある。本明細書において使用される場合、オーケストレータとは、ワークロードのスケジューリングまたはオーケストレーション・システムを称する。システム１００は、オーケストレータ１０４に通信可能に接続されるレジストレーション・エージェント１０６をさらに含む。システム１００は、レジストレーション・エージェント１０６によってサービス・レジストリ１１０に登録することができる代替名レジストレーション（ＨＣ−ＡＰＰＢ）１０８を含む。それに応じてレジストレーション・エージェント１０６もまた、サービス・レジストリ１１０に通信可能に接続される。サービス・レジストリ１１０は、第１のアプリケーション・インスタンス１１２にさらに通信可能に接続される。第１のアプリケーション・インスタンス１１２は対応する第１のサイドカー型プロキシ１１４に通信可能に接続される。本明細書において使用される場合、サイドカー型プロキシとは、アプリケーション・インスタンス用のサービス・メッシュのうち１つまたは複数のサービスを提供するために特定のアプリケーション・インスタンスに関連付けられるプロキシを称する。第１のサイドカー型プロキシ１１４は第２のサイドカー型プロキシ１１６に通信可能に接続される。サービス・レジストリ１１０および第２のサイドカー型プロキシ１１６は、トランスポート層セキュリティ（ＴＬＳ）を使用してエージェント１１８に通信可能に接続される。本明細書において使用される場合、ＴＬＳとは、クライアントが通信相手であるサーバを認証する技法を称する。例えば、エージェント１１８は、オーケストレータに属する場合があり、特定のエンドポイントまたはノードにスケジューリングされているワークロードが健全であることを保証することができる。例えば、エージェントは、様々なアプリケーション・インスタンスの健全性および実行中のサービスをそのヘルス・エンドポイントにｐｉｎｇすることによってチェックすることができる。エージェント１１８は、ｍＴＬＳを実施するように構成されていないレガシ・クライアントであり得る。第２のサイドカー型プロキシ１１６は、第２のサイドカー型プロキシ１１６に対応する第２のアプリケーション・インスタンス１２０にさらに通信可能に接続される。いくつかの例では、サイドカー型プロキシ１１４および１１６は、ｍＴＬＳを実施するように構成される場合がある。サイドカー型プロキシ１１４および１１６は、ともにサービス・メッシュを形成することができる。したがって、サイドカー型プロキシ１１４および１１６には、それぞれアプリケーション・インスタンス１１２および１２０の１つまたは複数の機能を委任することができる。例えば、サイドカー型プロキシ１１４および１１６は、レポーティングおよびロギングなどの機能のうちでもとりわけ、どのようにリクエストをロード・バランスするか、どのように障害をハンドリングするか、リクエストについてのメトリクスをどのように暴露するかを、一貫したやり方で決定することができる。サイドカー型プロキシ１１４および１１６は、対応するエンドポイント１２２および１２４を含む。例えば、エンドポイント１２２および１２４は、ＨＴＴＰまたはＨＴＴＰＳエンドポイントであり得る。エンドポイント１２２および１２４のそれぞれは、１つまたは複数の、名前または識別情報を有する場合がある。それぞれのエンドポイント１２２および１２４は、様々な目的に関連付けられる複数の識別情報を有することができる。例えば、ある名前は活性チェックに関連付けられる場合があり、別の名前は準備性チェックに関連付けられる場合がある。以下でさらに詳細に説明するように、名前のうちの１つはヘルス・チェックの間ｍＴＬＳをバイパスするために使用することができる代替サーバ名であり得る。エンドポイント１２２および１２４は、さらに名前または識別情報の証明を認証用に使用される証明書の形態で有することができる。
【００１８】
図１の例では、クライアント１０２は、オーケストレータ１０４にリクエストを送信して、矢印１２６によって示されるように、第２のアプリケーション・インスタンス１２０を展開させることができる。いくつかの例では、リクエストはマニフェストの形態である場合がある。本明細書において使用される場合、マニフェストは、情報の中でも、名前、開くポート、使用するラベル、実行するアプリケーション・イメージ、および実行するインスタンスの数を指定することができるファイルである。マニフェストは、アプリケーションの１つまたは複数のインスタンスをスケジューリング、実行、管理するために、オーケストレータ１０４によって使用することができる。マニフェストは、管理されるそれぞれのワークロードごとにユーザによって構成される場合がある。いくつかの例では、マニフェストは、さらにワークロードについてのヘルス・チェックをどのように実行するかの情報を含む場合がある。例えば、マニフェストは、以下の図２の例の方法により代替サーバ名を使用して活性チェックおよび準備性チェックを実行するよう指定する場合がある。オーケストレータ１０４は、矢印１２８によって示すように、デプロイメント通知のセットをレジストレーション・エージェント１０６に送信することができる。レジストレーション・エージェント１０６は、矢印１３０および１３２によって示されるように、第２のアプリケーション・インスタンス１２０についてのヘルス・チェック（ＨＣ）に対応する代替サーバ名１０８を、サービス・レジストリ１１０に送信することができる。例えば、レジストレーション・エージェント１０６は、代替サーバ名を生成して、特定のサービスについて登録される代替サーバ名を指定するマニフェストに基づいて代替サーバ名を登録することができる。図１の例では、第２のアプリケーション・インスタンス１２０のヘルス・チェック用に生成された代替サーバ名はＨＣ−ＡＰＰＢである。いくつかの例では、レジストレーション・エージェント１０６は、拡張フックからのリクエストに応じて代替名登録１３０を実施する場合がある。例えば、拡張フックはアドミッション・コントローラ、拡張ＡＰＩまたは制御ループである可能性がある。
【００１９】
さらに図１を参照すると、矢印１３４によって示されるように、第１のアプリケーション・インスタンス１１２は、アプリケーション・インスタンス１２０に対応するサーバ名ＡＰＰＢをサービス・レジストリ１１０に送信することができる。次いで第１のアプリケーション・インスタンス１１２は、レスポンスとしてＩＰアドレスＩＰＢを受信することができる。矢印１３８によって示されるように、第１のサイドカー型プロキシ１１４は、第２のアプリケーション・インスタンス１２０の名前ＡＰＰＢを使用してサーバのＩＰアドレスのリクエストを送信することができる。次いで、矢印１４０によって示されるように、第１のサイドカー型プロキシ１１４は、レスポンスとしてＩＰアドレスを受信することができる。次いでサイドカー型プロキシ１１４は、ＩＰアドレスＩＰＢを使用して第２のサイドカー型プロキシ１１６と通信することができる。例えば、ＩＰアドレスは第２のアプリケーション・インスタンス１２０に関連付けられる第２のサイドカー１１６のエンドポイント１２４に対応する場合がある。サイドカー型プロキシ１１４は、第２のサイドカー１１６に、第１のサイドカー型プロキシ１１４と第２のサイドカー型プロキシ１１６との間でｍＴＬＳを使用する正常な通信が発生することを示すＡＰＰＢのサーバ名インジケーション（ＳＮＩ）メッセージを送信することができる。本明細書において使用される場合、ＳＮＩはＴＬＳコンピュータ・ネットワーキング・プロトコルに対する拡張であり、それによりクライアントはハンドシェイク・プロセスの開始時どのホスト名に対して接続を試行するかを示している。ＳＮＩを使用することにより、サーバは同一のＩＰアドレスおよびＴＣＰポート番号に対して複数の証明書を提示することができ、ひいては複数のセキュアな（ＨＴＴＰＳ）ウェブサイト（またはＴＬＳ上のあらゆる他のサービス）を、これらのすべてのサイトに同一の証明書を使用するよう要求することなく同一のＩＰアドレスによりサービスさせることができる。したがって、第２のサイドカー型プロキシ１１６がＡＰＰＢのＳＮＩを受信する際、第２のサイドカー型プロキシ１１６は第１のサイドカー型プロキシ１１４と相互ＴＬＳ認証を実施するよう構成することができる。例えば、第２のサイドカー型プロキシ１１６は特定のＳＮＩに対応する証明書を使用することができる。
【００２０】
対照的に、エージェント１１８と第２のサイドカー型プロキシ１１６との間の通信は、ｍＴＬＳを使用しない場合がある。代わりにエージェント１１８は、第２のアプリケーション・インスタンス１２０に対するヘルス・チェックを実施するためにＴＬＳを使用することができる。いくつかの例では、ヘルス・チェックはアプリケーション・インスタンスを再始動するかどうかを判断するために使用するための活性チェックであってもよい。例えば、アプリケーション・インスタンスは、アプリケーション・インスタンスが実行中であるが進行することができずにいるデッドロック状態にあるため、再始動する可能性がある。いくつかの例では、アプリケーション・インスタンスは実行中ではないため再始動される場合がある。ヘルス・チェックは、さらにアプリケーション・インスタンスがワークロードをサービスする準備ができているかどうかを判断するための準備性チェックであってもよい。したがって、両端矢印１４４によって示されるように、エージェント１１８は、第２のアプリケーション・インスタンス１２０のＩＰのリクエストを送信し、関連付けられるＩＰアドレスを受信することができる。例えば、エージェントはサービス・レジストリ１１０をコールして名前ＨＣ−ＡＰＰＢを解決し、レスポンスとしてＩＰアドレスＩＰＢを受信することができる。次いでエージェント１１８は、矢印１４６によって示されるように、ＨＣ−ＡＰＰＢのＳＮＩメッセージを送信してｍＴＬＳが第２のサイドカー型プロキシ１１６との通信において使用されないことを示すことができる。例えば、代替名は、マニフェストのデプロイメントＹＡＭＬ記述子においてヘルス・チェックのエンドポイントとして指定されている可能性がある。ＳＮＩメッセージは、クリア・テキスト形式で送信することができる。ＨＣ−ＡＰＰＢのＳＮＩを受信したことに応じて、第２のサイドカー型プロキシ１１６は、エージェント１１８で、ｍＴＬＳ認証ではなく、ＴＬＳ認証を実施だけするように構成される可能性がある。いくつかの例では、第２のサイドカー１１６は、ＴＬＳを使用してエージェント１１８で認証し、エージェント１１８に活性ステータスまたは準備性ステータスのいずれかを提供することができる。したがって、エージェント１１８にはクライアント証明書リクエストが１つも送信されず、接続のドロップが回避される場合がある。
【００２１】
図１のブロック図は、システム１００が図１に示されるコンポーネントのすべてを含むことを示すよう意図されていないことを理解されたい。むしろ、システム１００は、図１に示されない、より少ない、または追加的なコンポーネントを含むことができる（例えば、追加的なクライアント・デバイス、アプリケーション、アプリケーション・インスタンス、プロキシ、エージェント、レジストリ、チェックのタイプなど）。例えば、オーケストレータは代替的に、デプロイメント記述子を書き換えて元の名前を適当な代替名で変更するために使用することができるアドミッション・コントローラ（図示せず）にコールアウトすることができる。例えば、アドミッション・コントローラを使用して、ポッド内での活性プローブまたは準備性プローブのために、名前を代替名に変更することができる。アドミッション・コントローラは、オブジェクトの永続性（persistence）に先立って、しかしリクエストが認証され認可された後に、オーケストレータのＡＰＩサーバへのリクエストを傍受することができる。次いで、アドミッション・コントローラは、受信したマニフェストを検査することができる。アドミッション・コントローラは、マニフェストにおけるヘルス・チェックなど１つまたは複数のサービスを検出することができる。次いでアドミッション・コントローラは、代替サーバ名を使用するためにヘルス・チェックに関連付けられるＵＲＬを変更することができる。例えば、アドミッション・コントローラは、リクエストに一致する１つまたは複数のアドミッション制御ウェブフックをコールすることができる。本明細書において使用される場合、ウェブフックとは、ユーザ定義のハイパーテキスト転送プロトコル（ＨＴＴＰ）コールバックなどの、あらゆるコールバックまたはコールアウトのメカニズムを称する。いくつかの例では、拡張ＡＰＩ（図示せず）を使用してウェブフックをコールすることができる。ウェブフックを使用して、マニフェスト内のデプロイメント記述子を書き換えて、元の名前を活性プローブおよび準備性プローブ用の代替名に変更することができる。次いでアドミッション・コントローラは、代替サーバ名に関連付けられるヘルス・チェック・エンドポイントでポッドを作成するために、更新されたデプロイメント記述子をオーケストレータに返すことができる。いくつかの例では、マニフェストはオフラインで修正することができる。例えば、マニフェストがオーケストレータ１０４に送信される前に、マニフェストが検査され、代替サーバ名がマニフェストに挿入される場合がある。いくつかの例では、制御ループ（図示せず）は、対象のオブジェクトにおける変更通知を監視し、変更通知を検出したことに応じてオブジェクトを書き換えるプログラムである場合がある。例えば、制御ループは、オーケストレータのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・サーバを通じてクラスタの共有状態を監視して、現在の状態を所望の状態に移すよう試行するよう変更することができる。ＡＰＩサーバは、オーケストレータによって管理される様々なオブジェクトの作成および削除などの変更の通知を提供することができる。オーケストレータによってコールすることが���きるアドミッション・コントローラとは異なり、制御ループは反応的でありイベントを通知として処理する場合がある。
【００２２】
図２は代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例の方法の処理フロー図である。方法２００は、図３のコンピューティング・デバイス３００など任意の適切なコンピューティング・デバイスに実装することができ、図１のシステム１００を参照して説明する。例えば、以下で説明する方法は、図３のコンピューティング・デバイス３００のプロセッサ３０２によって実装することができる。
【００２３】
ブロック２０２において、レガシ・インジケータが検出される。本明細書において使用される場合、レガシ・インジケータとは、特定の接続がｍＴＬＳを使用しないインジケータを称する。いくつかの例では、レガシ・インジケータは、デプロイメント・マニフェストにおいて特定の属性の形態を取ることができる。例えば、マニフェストは、展開されるワークロードのうちの１つまたは複数を指定する場合がある。ワークロードは、のウェブ・アプリケーションを含むアプリケーション・インスタンスまたはサービスによって、より複雑で、分散されるバックオフィスの処理システムへ展開され得るあらゆるサービスを含むことができる。いくつかの例では、レガシ・インジケータはアプリケーションの展開中に検出される場合がある。いくつかの例では、デプロイメントは、例えば「ＲｅｐｌｉｃａＳｅｔ」「Ｄｅｐｌｏｙｍｅｎｔ」「Ｐｏｄ」などを含む様々なオブジェクト・タイプを含むことができる。前述のように、ポッド・オブジェクトは、何らかの機能を実施する１つまたは複数のコンテナであり得る。いくつかの例では、ポッドは直接作成することができる。ＲｅｐｌｉｃａＳｅｔオブジェクトを使用して、クラスタで実行中のポッドの数を動的に設定することができる。例えば、ポッドの数は、実行するイメージ、構成、オープンなポートなどの共有される仕様に基づいて設定することができる。オーケストレータを使用して、オブジェクト・インスタンスが実行中であり、あらゆる障害を扱うことを確実にすることができる。デプロイメント・オブジェクトを使用して、さらなる機能性を追加することができる。例えば、デプロイメント・オブジェクトを使用して、ローリング・アップデートなどを可能にすることができる。例えば、レガシ・インジケータはポッドのデプロイ中にアドミッション・コントローラによって検出される場合がある。いくつかの例では、レガシ・インジケータは拡張アプリケーション・プログラミング・インターフェース（ＡＰＩ）を介して検出される場合がある。例えば、アドミッション・コントローラを使用してウェブフックをコールしてマニフェストをウェブフックに送信して検査し、以下で説明するようにマニフェストを書き換えることができる。いくつかの例では、レガシ・インジケータは制御ループを介して検出される場合がある。例えば、制御ループは、変更通知にサブスクライブする場合があり、新しいワークロードを検出したことに応じて、制御ループは検出されたレガシ・インジケータに基づいて新しいワークロードのデプロイメント記述子を修正し、代替サーバ名を使用する所望の状態に一致させることができる。いくつかの例では、レガシ・インジケータはコンテナ識別情報および個々のレガシＵＲＬを提供する明示的なグローバル・デプロイメント構成においてＵＲＬの形態を取ることもできる。例えば、コンテナ識別情報はイメージ名およびラベルを含むことができる。いくつかの例では、レガシ・インジケータは、ラベルまたは注釈中の明示的に追加されたポッド固有のメタデータの形態を取ることができる。いくつかの例では、レガシ・インジケータは、サンドボックス環境内でデプロイメントのイメージを実行し、レガシ・インジケータを含む固有のＵＲＬパターンの存在をテストすることにより検出することができる。いくつかの例では、レガシ・インジケータは、レガシ・マイクロサービスについて利用可能なＡＰＩ仕様を分析することにより検出することができる。この場合、レガシ・インジケータは、指定される固有のレガシ・マイクロサービスの形態を取ることができる。
【００２４】
ブロック２０４において、代替サーバ名を使用するためにポッドのユニフォーム・リソース・ロケータ（ＵＲＬ）が修正される。例えば、アドミッション・コントローラを使用してポッドのＵＲＬを受信したマニフェストにおける代替サーバ名に変更することができる。アドミッション・コントローラは、アドミッションウェブフックをコールして、再構成するマニフェストを送信することができる。アドミッション・コントローラは、ヘルス・チェックなどのサービス用の代替名を使用して更新されたＵＲＬを伴うマニフェストを受信することができる。いくつかの例では、代替サーバ名のポッドへのマッピングは、サービス・レジストリ内に記憶することができる。いくつかの例では、ポッドのコレクションは、解決可能なＤＮＳ名を有するサービスにグループ化することができる。非ｍＴＬＳ接続を使用するポッドがレガシ・インジケータを介して検出されると、システムはポッドの同一のセットに対する代替名マッピングを作成することができる。例えば、代替名用に任意の名前を使用することができる。いくつかの例では、サービス名は様々なＤＮＳ解決スコープを有して使用され得る。例えば、ヘルス・チェックの名前空間を作成することができ、代替名はそのヘルス・チェックの名前空間の下で、元のサービス・エンドポイントを明示的に参照して作成することができる。いくつかの例では、特殊化されたＤＮＳサーバを、healthcheck.<original_service_name>またはno-mtls.<original_service_name>など、特別にフォーマットされた代替名を解決するように構成することができ、ここで<original_service_name>は特別にフォーマットされた代替名で置換されるサービスの元の名前である。したがって、上述のように、ＵＲＬは自動的に書き換えられ、マニフェスト内に提示される場合があり、いかなるユーザ関与もなしに完全に透明なシステム変更を可能にしている。
【００２５】
ブロック２０６において、ポッドに関連付けられるプロキシは、代替サーバ名を受信したことに応じて、相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするように構成される。例えば、プロキシは、サイドカー型プロキシである場合がある。プロキシは、ｍＴＬＳをいくつかのサーバ名に与えるように構成することができるが、代替サーバ名を含むＳＮＩを受信したことに応じて、ｍＴＬＳを無効にして代わりにＴＬＳを使用する。したがって、プロキシは、受信したサーバ名に応じてアプリケーション・インスタンス用に様々なサポート・サービスを実施することができる。したがって、例えば、レガシ・クライアントは代替サーバ名を使用してヘルス・チェックを実施することができる。例えば、ヘルス・チェックは、活性チェックまたは準備性チェックであり得る。レガシ・クライアントは、代替サーバ名を、代替サーバ名を受信したことに応じてＴＬＳを提供するように構成されるプロキシに送信することができる。例えば、レガシ・クライアントは代替サーバ名を含むサーバ名インジケータを、プロキシに送信することができる。
【００２６】
図２の処理フロー図は、方法２００の動作がいかなる特定の順序で実行されること、または方法２００の動作のすべてが、すべての事例に含められることを示すように意図されていない。さらには、方法２００は任意の適切な数の追加的な動作を含むことができる。例えば、レガシ・インジケータの他の形態を使用することができる。さらには、いくつかの例では、プロキシは、ｍＴＬＳ接続用に標準ポートを残して、非ｍＴＬＳ接続用に様々な、非標準のポート番号を使用するように構成することができる。プロキシは、様々なリスナを作成することができ、また別個の処理パイプラインをそれぞれのポートにリクエストすることができる。さらには、代替名を含めるためのＵＲＬの修正は、いかなるユーザ入力もなしに自動的に実施されるものとして上述したが、いくつかの例では、システムは代替的に、代替名を属性として暴露して、ユーザが代替名を使用するために他のシステムを構成できるようにする。例えば、他のシステムは、中央集権化された監視システムであり得る。さらに、いくつかの例では、代替名を使用して自動的に他のシステム・コンポーネントを再構成することができる。例えば、元のサービス名がＩｎｇｒｅｓｓリソースを通じて暴露される場合、システムはヘルス・チェックＵＲＬを代替サービス名にマッピングするさらなるＩｎｇｒｅｓｓ定義を作成することができる。Ｉｎｇｒｅｓｓリソースはヘルス・チェックＵＲＬおよび元のサービス名に固有に作ることができ、元の内部サービス名にマッピングされた他のＵＲＬを維持しつつ代替的な内部サービス名へのマッピングだけを変更することができる。
【００２７】
図３は、代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例のコンピューティング・デバイスのブロック図である。コンピューティング・デバイス３００は、例えばサーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータまたはスマートフォンであり得る。いくつかの例では、コンピューティング・デバイス３００は、クラウド・コンピューティング・ノードであり得る。コンピューティング・デバイス３００は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで説明され得る。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピューティング・デバイス３００は、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散クラウド・コンピューティング環境において実用化することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールはメモリストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置することができる。
【００２８】
コンピューティング・デバイス３００は、記憶された命令を実行するプロセッサ３０２、動作中の前記命令の動作のために一時的なメモリ空間を提供するメモリ・デバイス３０４を含むことができる。プロセッサは、シングルコア・プロセッサ、マルチコア・プロセッサ、コンピューティング・クラスタ、またはあらゆる数の他の構成であることができる。メモリ３０４は、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ、フラッシュ・メモリまたは任意の他の適切なメモリ・システムを含むことができる。
【００２９】
プロセッサ３０２は、コンピューティング・デバイス３００を１つまたは複数のＩ／Ｏデバイス３１０へ接続するように適合された入出力（Ｉ／Ｏ）デバイス・インターフェース３０８へ、システム相互接続３０６（例えば、ＰＣＩ（登録商標）、ＰＣＩ−Ｅｘｐｒｅｓｓ（Ｒ）など）を通じて接続することができる。Ｉ／Ｏデバイス３１０は、例えばキーボードおよびポインティング・デバイスを含むことができ、この場合、ポインティング・デバイスには、とりわけタッチパッドまたはタッチスクリーンが含まれ得る。Ｉ／Ｏデバイス３１０は、コンピューティング・デバイス３００の内蔵コンポーネントであってもよく、またはコンピューティング・デバイス３００に外部接続されるデバイスであってもよい。
【００３０】
プロセッサ３０２はまた、システム相互接続３０６を通じて、コンピューティング・デバイス３００をディスプレイ・デバイス３１４に接続するように適合されたディスプレイ・インターフェース３１２にリンクすることができる。ディスプレイ・デバイス３１４は、コンピューティング・デバイス３００の内蔵コンポーネントであるディスプレイ画面を含むことができる。ディスプレイ・デバイス３１４はまた、コンピューティング・デバイス３００に外部接続される、とりわけ、コンピュータ・モニタ、テレビジョン、またはプロジェクタを含むことができる。追加として、ネットワーク・インターフェース・コントローラ（ＮＩＣ）３１６は、コンピューティング・デバイス３００を、システム相互接続３０６を通じてネットワーク３１８に接続するように適合され得る。いくつかの実施形態では、ＮＩＣ３１６は、とりわけｉｎｔｅｒｎｅｔ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅなど、あらゆる適切なインターフェースまたはプロトコルを使用して、データを送信することができる。ネットワーク３１８は、とりわけセルラ・ネットワーク、無線ネットワーク、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）またはインターネットであり得る。外部コンピューティング・デバイス３２０は、ネットワーク３１８を通じてコンピューティング・デバイス３００に接続することができる。いくつかの例では、外部コンピューティング・デバイス３２０は、外部ウェブサーバ３２０であり得る。いくつかの例では、外部コンピューティング・デバイス３２０は、クラウド・コンピューティング・ノードであり得る。
【００３１】
プロセッサ３０２はまた、システム相互接続３０６を通じてストレージ・デバイス３２２にリンクされる場合があり、ストレージ・デバイス３２２は、ハード・ドライブ、光学ドライブ、ＵＳＢフラッシュ・ドライブ、ドライブ・アレイ、またはそれらのあらゆる組合せを含むことができる。いくつかの例では、ストレージ・デバイスはインジケータ検出器モジュール３２４、代替名生成器モジュール３２６、およびプロキシ構成器モジュール３２８を含むことができる。インジケータ検出器モジュール３２４は、レガシ・インジケータを検出することができる。例えば、インジケータ検出器モジュール３２４は、マニフェストを受信して、マニフェスト内のレガシ・インジケータを検出することができる。レガシ・インジケータは、マニフェスト内の固有属性、ポッド固有メタデータ、デプロイメントのイメージを実行することにより生成された固有ＵＲＬパターン、または上で議論したようなアプリケーション・プログラミング・インターフェース（ＡＰＩ）仕様におけるレガシ・マイクロサービスであり得る。レガシ・インジケータはレガシ・クライアントの潜在的なアクセスを示す場合がある。例えば、レガシ・クライアントは、トランスポート層セキュリティ（ＴＬＳ）を使用してヘルス・チェック、またはあらゆる他のサービスを実施するエージェントであり得る。代替名生成器モジュール３２６は、レガシ・クライアントを検出したことに応じて代替サーバ名を生成することができる。代替名生成器モジュール３２６は、さらに代替サーバ名をポッドのアドレスに関連付ける。例えば、ポッドは、サイドカー型プロキシのエンドポイントを含む場合がある。いくつかの例では、代替名生成器モジュール３２６は、代替サーバ名に基づいてポッドのＵＲＬを修正することができる。代替名生成器モジュール３２６はアドミッション・コントローラ、拡張ＡＰＩまたは制御ループを介して実装することができる。プロキシ構成器モジュール３２８は、代替サーバ名に基づいてサービスを選択的に提供するために、ポッドに関連付けられるプロキシを構成することができる。例えば、構成器モジュール３２８は、代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを選択的に無効にするために、ポッドに関連付けられるプロキシを構成することができる。一例として、無効にされるサービスは、ｍＴＬＳであり得る。プロセッサ３０２は、アプリケーション・インスタンスまたはサービス用に、構成されたプロキシを使用してデータを送信することができる。いくつかの例では、プロセッサ３０２は、構成されたプロキシを使用してアプリケーション・インスタンス用に、サービスを提供することができる。例えば、プロセッサは、構成されたプロキシを使用して、ｍＴＬＳまたはＴＬＳサービスなどの認証サービスを提供することができる。
【００３２】
図３のブロック図は、コンピューティング・デバイス３００が図３に示されるコンポーネントのすべてを含むことを示すよう意図されていないことを理解されたい。むしろ、コンピューティング・デバイス３００は、図３に示されない、より少ない、または追加的なコンポーネントを含むことができる（例えば、追加的なメモリ・コンポーネント、埋め込みコントローラ、モジュール、追加的なネットワーク・インターフェースなど）。さらには、インジケータ検出器モジュール３２４、代替名生成器モジュール３２６、およびプロキシ構成器モジュール３２８の機能性のいずれかを、部分的、または全体的にハードウェアまたはプロセッサ３０２あるいはその両方に実装することができる。例えば、機能性は、とりわけ特定用途向け集積回路、埋め込みコントローラに実装されるロジック、またはプロセッサ３０２に実装されるロジックに、実装することができる。いくつかの実装形態において、インジケータ検出器モジュール３２４、代替名生成器モジュール３２６、およびプロキシ構成器モジュール３２８の機能性は、ロジックで実装することができ、ここで本明細書において称される場合、ロジックとは、あらゆる適切なハードウェア（例えば、とりわけプロセッサ）、ソフトウェア（例えば、とりわけアプリケーション）、ファームウェア、またはハードウェア、ソフトウェア、およびファームウェアのあらゆる適切な組合せを含むことができる。一例として、インジケータ検出器モジュール３２４、代替名生成器モジュール３２６、およびプロキシ構成器モジュール３２８の機能性は、拡張フックに実装することができる。例えば、拡張フックはアドミッション・コントローラ、拡張ＡＰＩサーバまたは制御ループである可能性がある。アドミッション・コントローラは、ポッドが生成される前に、マニフェストを検査して修正することができる。例えば、アドミッション・コントローラは、リクエストに一致する１つまたは複数のアドミッション制御ウェブフックをコールすることができる。ウェブフックは、マニフェスト内のデプロイメント記述子を書き換えて、元の名前を活性プローブおよび準備性プローブ用の代替名に変更することができる。拡張ＡＰＩサーバはアドミッション・フックをコールすることができる。例えば、拡張ＡＰＩサーバは、ワークロードを受信し、受信したワークロードで拡張ポイントをコールし、代替サーバ名を使用して少なくとも１つのユニフォーム・リソース・ロケータ（ＵＲＬ）を含む修正されたデプロイメント記述子を受信することができる。制御ループは、オーケストレータのＡＰＩサーバを通じてクラスタの共有状態を監視して、現在の状態を所望の状態に移すよう試行するよう変更することができる。例えば、制御ループは、変更通知にサブスクライブする場合があり、新しいワークロードを検出したことに応じて、新しいワークロードのデプロイメント記述子を修正し、代替サーバ名を使用する所望の状態に一致させることができる。
【００３３】
次に図４を参照すると、例のクラウド・コンピューティング環境４００が描写されている。示されるように、クラウド・コンピューティング環境４００は、例えば、携帯情報端末（ＰＤＡ）または携帯電話４０４Ａ、デスクトップ・コンピュータ４０４Ｂ、ラップトップ・コンピュータ４０４Ｃ、または自動車コンピュータ・システム４０４Ｎあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる１つまたは複数のクラウド・コンピューティング・ノード４０２を含む。ノード４０２は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの１つまたは複数のネットワークにおいて、これらは物理的または仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境４００は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。図４に示されるコンピューティング・デバイス４０４Ａ〜Ｎのタイプは、図示のみを意図されており、コンピューティング・ノード４０２およびクラウド・コンピューティング環境４００は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で（例えば、ウェブ・ブラウザを使用して）あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
【００３４】
次に図５を参照すると、クラウド・コンピューティング環境４００（図４）によって提供される機能的な抽象化レイヤのセットが示されている。図５に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことがまず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。
【００３５】
ハードウェアおよびソフトウェア・レイヤ５００は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム、一例としてＩＢＭ（登録商標）  ｚＳｅｒｉｅｓシステム、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャベースのサーバ、一例としてＩＢＭ  ｐＳｅｒｉｅｓシステム、ＩＢＭ  ｘＳｅｒｉｅｓシステム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）、ストレージ・デバイス、ネットワークおよびネットワーキング・コンポーネントが挙げられる。ソフトウェア・コンポーネントの例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例としてＩＢＭ  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例としてＩＢＭ  ＤＢ２（登録商標）データベース・ソフトウェアが挙げられる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅおよびＤＢ２は、世界中の多くの法域で登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【００３６】
仮想化レイヤ５０２は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える：仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアント。一例において、管理レイヤ５０４は以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティ（図示せず）は、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータルはクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行（図示せず）は、将来的な要求がＳＬＡにしたがって予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。サービス・メッシュは、ルーティング、セキュリティおよびメトリクスなどインフラストラクチャ・サービスを提供する。
【００３７】
ワークロード・レイヤ５０６はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる：マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想授業教育配信、データ分析処理、トランザクション処理、およびモバイル・デスクトップ。
【００３８】
本技法は、システム、方法、またはコンピュータ・プログラム製品であり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【００３９】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、以下を含む：ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック（登録商標）、フロッピー（登録商標）・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【００４０】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング／処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の伝送ケーブル、光学伝送ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含むことができる。それぞれのコンピューティング／処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【００４１】
本技法の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＳｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語などの従来的な手続き型プログラミング言語もしくは類似するプログラミング言語、を含む１つまたは複数のプログラミング言語のあらゆる組合せで記述された、コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部はリモートのコンピュータ上で、またはすべてリモートのコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、リモートのコンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ（例えば、インターネット・サービス・プロバイダを使用するインターネットを介して）に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路は、本技法の態様を実施するために、電子回路を仕様に合わせてカスタマイズするためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【００４２】
本技法の態様は本技法の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【００４３】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【００４４】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／作用を実装するべく、コンピュータ実装処理を作るために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
【００４５】
次に図６を参照すると、代替サーバ名を使用してｍＴＬＳを選択的に提供することができる例示の有形の非一過性のコンピュータ可読媒体６００のブロック図が描かれている。有形の非一過性の、コンピュータ可読媒体６００は、コンピュータ相互接続６０４上でプロセッサ６０２によってアクセスすることができる。さらには、有形の非一過性のコンピュータ可読媒体６００は、プロセッサ６０２に、上の図２の方法２００の動作を実施させるよう指示するためのコードを含む場合がある。
【００４６】
本明細書において議論される様々なソフトウェア・コンポーネントは、図６に示されるように、有形の非一過性のコンピュータ可読媒体６００に記憶することができる。例えば、インジケータ検出器モジュール６０６は、レガシ・インジケータ用のマニフェストを監視するためのコードを含む。インジケータ検出器モジュール６０６は、マニフェスト内のレガシ・クライアントに関連付けられるレガシ・インジケータを検出するためのコードをさらに含む。いくつかの例では、インジケータ検出器モジュール６０６は、ポッドが生成される前に、マニフェストを検査して修正するためのコードをさらに含む場合がある。いくつかの例では、インジケータ検出器モジュール６０６は、アプリケーションのデプロイメント中にレガシ・インジケータを検出するためのコードをさらに含む場合がある。代替名生成器モジュール６０８は、レガシ・インジケータを検出したことに応じて代替サーバ名を生成するためのコードを含む。代替名生成器モジュール６０８は、代替サーバ名をポッドのアドレスに関連付けるためのコードをさらに含む。いくつかの例では、代替名生成器モジュール６０８は、代替サーバ名からサービス・レジストリ内のポッドへのマッピングを記憶するためのコードをさらに含む。プロキシ構成器モジュール６１０は、レガシ・クライアントから代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを無効にするために、ポッドに関連付けられるプロキシを構成するためのコードを含む。例えば、プロキシ構成器モジュール６１０は、レガシ・クライアントから代替サーバ名を含むサーバ名インジケータを受信したことに応じて相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために、プロキシを構成するためのコードを含む。いくつかの例では、プロキシ構成器モジュール６１０は、レガシ・クライアントから代替サーバ名を含むサーバ名インジケータを受信したことに応じて代替サービスを提供するために、プロキシを構成するためのコードを含むことができる。例えば、プロキシ構成器モジュール６１０は、レガシ・クライアントから代替サーバ名を含むサーバ名インジケータを受信したことに応じてＴＬＳを提供するために、プロキシを構成するためのコードを含むことができる。いくつかの例では、レガシ・クライアントは代替サーバ名を使用してプロキシに関連付けられるアプリケーション・インスタンスに対するヘルス・チェックを実施することができる。例えば、ヘルス・チェックは、活性チェックまたは準備性チェックであり得る。特定のアプリケーションに応じて、図６には図示されていない、任意の数のさらなるソフトウェア・コンポーネントが、有形の非一過性のコンピュータ可読媒体６００に含まれ得ることが理解されよう。
【００４７】
図面中のフローチャートおよびブロック図は、本技法の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための１つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。具体的な用途に応じて、図６には図示されていない、任意の数のさらなるソフトウェア・コンポーネントが、有形の非一過性のコンピュータ可読媒体６００に含まれ得ることが理解されよう。
【００４８】
例示を目的として本技法の様々な実施形態の説明を提示してきたが、網羅的であること、または開示された実施形態に限定することは意図されていない。説明された実施形態の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者にとって明らかとなろう。本明細書において使用される用語法は、実施形態の原理、実践的な用途もしくは市場で見られる技術に対する技術的な改善を最良に説明するため、または当業者の他の者が本明細書において開示される実施形態を理解できるように選ばれたものである。
【図１】
2021524090.tif 000003
【図２】
2021524090.tif 000004
【図３】
2021524090.tif 000005
【図４】
2021524090.tif 000006
【図５】
2021524090.tif 000007
【図６】
2021524090.tif 000008
【手続補正書】
【提出日】令和2年11月25日(2020.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムであって、
レガシ・インジケータを検出したことに応じて代替サーバ名を生成し、前記代替サーバ名をポッドのアドレスに関連付けることと、
前記代替サーバ名に基づいて相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するために、前記ポッドに関連付けられるプロキシを構成することと
を行うためのプロセッサを備える、システム。
【請求項２】
前記システムが、前記ポッドが生成される前に、マニフェストを検査して、修正するためのアドミッション・コントローラを備える、請求項１に記載のシステム。
【請求項３】
前記システムが、ワークロードを受信することと、前記受信したワークロードで拡張ポイントをコールすることと、前記代替サーバ名を使用して少なくとも１つのユニフォーム・リソース・ロケータ（ＵＲＬ）を含む修正されたデプロイメント記述子を受信することとを行うための拡張アプリケーション・プログラミング・インターフェース（ＡＰＩ）・サーバを備える、請求項１または２に記載のシステム。
【請求項４】
前記システムが、変更通知にサブスクライブすることと、新しいワークロードを検出したことに応じて、前記新しいワークロードのデプロイメント記述子を修正し、前記代替サーバ名を使用する所望の状態に一致させることとを行うための制御ループを備える、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記レガシ・インジケータが、マニフェスト内の固有属性、ポッド固有メタデータ、デプロイメントのイメージを実行することにより生成された固有ＵＲＬパターン、またはアプリケーション・プログラミング・インターフェース（ＡＰＩ）仕様におけるレガシ・マイクロサービスを含む、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
検出されたレガシ・クライアントのアクセスに関連付けられるレガシ・クライアントが、ヘルス・チェックを実施するためのトランスポート層セキュリティ（ＴＬＳ）を使用するエージェントを含む、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記プロセッサが、前記構成されたプロキシを使用して、前記ポッド内のアプリケーション・インスタンス用のサービスを提供する、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
コンピュータ実装方法であって、
プロセッサを介して、レガシ・インジケータを検出することと、
前記プロセッサを介して、代替サーバ名を使用するために、ポッドのユニフォーム・リソース・ロケーション（ＵＲＬ）を修正することと、
前記代替サーバ名を受信したことに応じて、相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために前記ポッドに関連付けられるプロキシを構成することと
を含む、コンピュータ実装方法。
【請求項９】
前記レガシ・インジケータを検出することが、マニフェストを受信することと、前記マニフェストを検査のためにウェブフックに送信することとを含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記レガシ・インジケータを検出することが、前記レガシ・インジケータを含む新しいワークロードを検出する変更通知にサブスクライブすることを含む、請求項８または９に記載のコンピュータ実装方法。
【請求項１１】
前記レガシ・インジケータを検出することが、サンドボックス環境内でデプロイメントのイメージを実行することと、前記レガシ・インジケータを含む特定のＵＲＬパターンの存在をテストすることとを含む、請求項８〜１０のいずれか１項に記載のコンピュータ実装方法。
【請求項１２】
前記ＵＲＬを修正することが、ウェブフックを介してマニフェストを書き換えることを含む、請求項８〜１１のいずれか１項に記載のコンピュータ実装方法。
【請求項１３】
前記代替名を使用するために他のシステムを構成するよう前記代替名を属性として暴露することを含む、請求項８〜１２のいずれか１項に記載のコンピュータ実装方法。
【請求項１４】
前記代替名を使用して別のシステム・コンポーネントを自動的に再構成することを含む、請求項８〜１３のいずれか１項に記載のコンピュータ実装方法。
【請求項１５】
相互トランスポート層セキュリティ（ｍＴＬＳ）を選択的に提供するための、プロセッサによって実行可能なコンピュータ・プログラムであって、前記プロセッサに
複数のレガシ・インジケータについて複数のマニフェストを監視することと、
前記複数のマニフェストのうちの少なくとも１つにおける少なくとも１つのレガシ・クライアントに関連付けられるレガシ・インジケータを検出することと、
前記レガシ・インジケータを検出したことに応じて代替サーバ名を生成することと、
前記代替サーバ名をポッドのアドレスに関連付けることと、
レガシ・クライアントから前記代替サーバ名を含むサーバ名インジケータを受信したことに応じてサービスを無効にするために、前記ポッドに関連付けられるプロキシを構成することと
を行わせる、コンピュータ・プログラム。
【請求項１６】
前記ポッドが生成される前にマニフェストを検査して修正するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
アプリケーションのデプロイメント中に前記レガシ・インジケータを検出するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５または１６に記載のコンピュータ・プログラム。
【請求項１８】
サービス・レジストリ内の前記ポッドへの前記代替サーバ名のマッピングを記憶するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５〜１７のいずれか１項に記載のコンピュータ・プログラム。
【請求項１９】
前記レガシ・クライアントから前記代替サーバ名を含む前記サーバ名インジケータを受信したことに応じてトランスポート層セキュリティ（ＴＬＳ）を提供するために、前記プロキシを構成するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５〜１８のいずれか１項に記載のコンピュータ・プログラム。
【請求項２０】
前記代替サーバ名を含む前記サーバ名インジケータを受信したことに応じて相互トランスポート層セキュリティ（ｍＴＬＳ）を無効にするために、前記プロキシを構成するために、前記プロセッサによって実行可能なプログラム・コードをさらに含む、請求項１５〜１９のいずれか１項に記載のコンピュータ・プログラム。
【国際調査報告】
2021524090.tif 000009
2021524090.tif 000010