マイクロサービス アーキテクチャ

マイクロサービスは信頼性の高いスケーラブル プラットフォームを作成


古いアプリケーションの問題

多くの古いクラウド アプリケーションには、一体式のアーキテクチャが使用されています。これらのレガシー アプリは複数のテナントにサービスを提供できるものの、内部依存性の高いコンポーネントの大規模で扱いにくいセットとして構築されています。1 つのコンポーネントの失敗が別のコンポーネントに破壊的な影響を与え、その結果、多数のまたはすべてのテナントにサービスの停止を招く可能性があります。これらのシステムを更新するには、それらをオフラインにする必要があり、アップグレード処理中はユーザーのアクセスが制限されます。 ハードウェアの制限がソフトウェア リソースの応答可能性とスケーラビリティをさらに制約する

PureCloud のマイクロサービス ソリューション

PureCloud は、マイクロサービスの使用によってモノリシック アーキテクチャの問題を解決します。 マイクロサービスの使用により、複雑な問題をシンプルなステートレス オブジェクトにて解決します。当社のマイクロサービス アーキテクチャはまた、地理的に散在している多数のデータセンターにまたがる数千ものサーバー間でほぼ無制限なスケーラビリティを提供しています。

モノとマイクロ

数個のしっかりと連結されたコンポーネントを使用する代わりに、PureCloud では機能がサービスに分割され、各サービスが特定タイプのリクエストを処理します。 PureCloud の各サービスは、イラスティック ロードバランサー (ELB) を使用して負荷を分散させ、各グループに複数のサーバーを含めて負荷に基づきダイナミックにスケールします。当社ではサービスレベルのトラフィックを連続的にモニターして、使用レベルとリクエストのタイプに基いてマイクロサービスを最適化します。

この図は、PureCloud の主なサービスを示したものです。

2-56cf47d60000205b16537af5.PC-platform-portrait2

 

オンデマンドのスケーリング 

ほとんどの PureCloud サービスで、自動スケーリング グループ (ASG) と共に ELB が使用されています。PureCloud は、負荷を分散してサービス特定のポリシーに基づいてグループをモニタリングします (例えば、集中的な計算が要求されるサービスの場合の CPU、つまりクエリー サービスの応答時間など)。しきい値ポリシーを超えると、グループは必要に応じて追加のリソースを自動的に追加または削除します。例えば、組織に 100 万件のファックスを送信する必要性が突然発生した場合、他の機能やテナントに影響を与えずに需要に対応するように、使用中のマイクロサービスは自動的にスケールアウトされます。

フェイルセイフの処理

マイクロサービスは独立して機能するため、1 つのマイクロサービスの問題が他のマイクロサービスに影響を与えることはなく、潜在的な問題が制限されることになります。 例えば、3 つの別々のマイクロサービスがそれぞれボイスメールの取得、アウトバウンド ファックス、着信カスタマー コールのルーティングを処理するとします。ボイスメール取得のマイクロサービスが失敗した場合、着信のカスタマー コールを処理するマイクロサービスは中断されることなく引き続き機能します。

復旧中の信頼性

個々のサーバーが失敗すると、該当する ELB/ASG が正常性チェックの失敗やタイムアウトが検出して、負荷バランサーから正常に機能していないコンポーネントを切り離します。エラーが一時的でない場合、追加のロジックによって自己ヒーリング動作がトリガーされ、エラーのあるノードが停止し、完全に新しいサーバーが作成されてその役目を取って代わります。グループ内の他のサーバーがシームレスに過剰の作業を処理し、トラフィックは留まることなく継続します。ユーザーがサービスのキャップに気づく前に、PureCloud は復元します。この復元処理により、リソースの急激な上昇が生じますが、Amazon Web Services (AWS) を介して十分なオンデマンドの帯域幅にアクセスできます。

PureCloud は、AWS の上に構築されており、国際的なクラウドベースのデプロイメントにおける歴然たるリーダーです。過去 4 年間にわたり、弊社では Amazon と密接に協力して、Amazon のモニタリングと ELB をテストおよび改良してきました。

This diagram illustrates the AWS Global Infrastructure.

 56def25d0000203b47185877.aws-infrastructure

PureCloud は、世界中における複数の独立した AWS 領域にデプロイされています。各領域は、複数の Amazon の「空きゾーン」からなり、それぞれが 1 つ以上の実際のデータ センターから構成されています。各使用可能ゾーンに個別の電源、バックボーン ネットワーク接続、レプリケートされたデータ メモリ、および(場合によっては)物理的な分離スパニング テクトニック フォールトプレートを持たせることで、冗長性はこのレベルでもシステムの構造に織り込まれています。カスタマー データは、リージョン内のゾーンおよびデータ センター間でレプリケートされます。1 つのデータ センター全体を失っても一時的に容量が低下するだけで、その状況はデータの損失なく自動的に修復します。データの持続性を確保するに加えて、データ主権もクラウド展開に重要な側面です。PureCloud アーキテクチャは、組織がその「レコードのリージョン」を定義することで、データがインフラストラクチャ内のリージョンの境界を超えないようにできます。PureCloud アーキテクチャは、組織がその「レコードのリージョン」を定義することで、データがインフラストラクチャ内のリージョンの境界を超えないようにできます。

This diagram illustrates the Geographic Availability.

56def2650000203b4c397e9c.geographic-availability

ブラウザとモバイル クライアント

多くの面で、PureCloud クライアントはマイクロサービスで使用されるステートレス アプローチをミラーします。ブラウザが PureCloud をレンダリングするにつれて、データ更新のイベント通知を含む、一連のオブジェクトがブラウザ メモリー内に構築されます。ブラウザが新しい情報を受信するにつれて、メモリー内のオブジェクトを更新し、ユーザー用のビューを更新します。

ユーザーがビューを変更したり新しいタスクを開始するたびに、既存のローカル データが即時表示され、アップデートをチェックするようにリクエスされます。これらのデータ リクエストは、利用可能なサービスに一致するように形成され、帯域幅を低減しクライアント ビューの速度を上げるように最適化されます。

継続的なアップデート

当社は新しいコードを継続的に本番 PureCloud システムにプッシュしています。マイナーな欠陥が検出されたら、すぐにそれを修正して影響のあるサービスの新しいバージョンをプッシュします。

当社では分散アーキテクチャをとることにより、システム全体をメンテナンスのために停止することなくローリング アップデートをリリースできます。当社では負荷分散や「red-black デプロイ」などの手法を使用して、カスタマーが当社の更新プロセスによって悪影響を受けないようにしています。マイクロサービスの新しいバージョン(新機能や修正を含む)が利用可能になり次第、そのサーバーの全く新しいサーバー イメージを作成します。システムにパッチを施すのではなく、このイメージを使用して全く新しいサーバーを作成します。これらの新しいサーバーがオンラインになって正常性が確認されたら、ロードバランサーに接続され、少量のトラフィックがそれらのサーバーによって処理されるようになります。新しいサーバーが期待通りに機能すると仮定し、容量を追加して古いサーバー (サービスの旧バージョンを持つ) をロードバランサーから外し、未処理のリクエストを破棄します。数分以内で、対象マイクロサービスの機能を提供しているサーバー群全体を置き換えることができます。WAN インターフェイスにパブリック IP は必要ありません。インプレースアップグレードを避け、本番前環境でテストしたシステムが本番でデプロイされるシステムと機能的に全く同等であることを保証することで、脆弱性を低減します。それはまた、新バージョンが万一期待通りに機能しない場合には、マイクロサービスの良好なことが知られているバージョンまですばやくロールバックできます。それはまた、新バージョンが万一期待通りに機能しない場合には、マイクロサービスの良好なことが知られているバージョンまですばやくロールバックできます。

The independence of microservices and our extensive automated testing and build promotion process allows Genesys to push out bug fixes without the fear of inadvertently breaking something else. What’s more, Genesys can create microservices for new features without impacting existing services. Updates occur while millions of customers are actively using PureCloud.

各会社向けの PureCloud

当社のマイクロサービス アーキテクチャでは、PureCloud はあらゆるサイズの組織を効率的に取り扱うことができます。御社のユーザー数が 10 人であっても 100,000 人であってもかまいません。どのようなサイズの組織でも、PureCloud の使用を全く努力なしで拡張できます。

詳細はこちら

www.inin.com/resources でさらに読む。