ハイブリッド・クラウドのデプロイメントに対応したアプリケーションの開発は、闇の魔法のようなものではありませんが、多くの企業にとっては依然として神秘的な取り組みです。
ハイブリッド・クラウドの開発を想定しているユーザーであれば、最終的にはこのようなプロジェクトを数多く完了させる必要があると考えられます。そのため、まずすべてのプロジェクトに適用できる実装戦略を策定し、その実装戦略を適切なハイブリッド展開でテストすることが賢明です。ハイブリッド・クラウドの実装を成功させるためには、そのような実装戦略は、ハイブリッド・クラウド・アプリケーションの使命、ハイブリッド・クラウドを使用する理由、およびハイブリッド運用とアプリケーション・エクスペリエンスの品質との間の重要な相互作用を考慮する必要があります。
クラウドアプリケーションプランナーが犯しやすい最も深刻な過ちは、アプリケーション自体のアプリケーション環境を設定せずに、合成、統合、クラウドプラットフォームの選択などの技術的な問題を検討することです。アプリケーションの設計は、常に技術ではなくミッションによって推進されますが、プロジェクトのミッションステートメントは、ビジネス上の問題と技術的要件の両方を適切に統合する必要があります。
クラウドコンピューティングアプリケーション全般
アプリケーションは多次元に分類することができます。トランザクショナルなものからメッセージングを伴うものまで。デスクトップ・システム・ベースではなく、モバイル・ベースの場合もあります。*** また、セッションベースであったり、インスタンスベースであったりします。これらすべての次元の中で、***最初の選択肢は2番目よりも設計上の注意が必要です。
の次元では、トランザクション・アプリケーションは情報を記録または変更するものとして機能します。これは、データの破損を引き起こすリスクを回避するために、問題のデータとやり取りする際に高い信頼性が求められることを意味します。信頼性の向上が求められるということは、ハイブリッド・アプリケーションのパブリック・クラウド・コンピューティング・コンポーネントに高い信頼性が求められるか、データの完全性を保護するために特別なプログラミング対策を講じる必要があるということです。クラウドバーストやフェイルオーバーのアプリケーションでハイブリッドクラウドを使用する場合、トランザクションアプリケーションは規模の変更やフェイルオーバーのアクティビティ中にデータの整合性を維持する必要があります。
これとは対照的に、メッセージング・アプリケーションは障害や応答時間の変動に耐えることができます。これは、ロードバランシングのような単純な技術が、アプリケーションの弾力的なスケーリングと、パブリッククラウドコンピューティングとデータセンター間のワークロードの転送をサポートすることを意味します。
2つ目の次元では、モビリティは2つの点で特別な注意を必要とする問題を提起します。***モバイル接続は無線ネットワークを介して確立されるため、接続の信頼性は通常デスクトップシステムよりも低くなります。この事実は、トランザクション・アプリケーションにおけるデータ整合性の問題を悪化させます。また、モバイル・ユーザーは複数の可変環境で作業する可能性がありますが、パブリック・クラウド・コンピューティング・サービスは単一のデータセンターから提供されるため、パフォーマンスに大きな差が生じる可能性があります。ユーザーが非常に分散している場合は、地域ごとにホストされているサービス・プロバイダーを探す必要があります。
セッションベースのアプリケーションかインスタンスベースのアプリケーションかという問題は、ユーザが短期的な単一のインタラクションではなく、長期的なマルチステップのインタラクションをアプリケーションと行うかどうかということです。コラボレーションはセッションベースのインタラクションの例であり、単に1回のクレジットカード購入を処理するビジネスはインスタンスベースのアプリケーションの例です。
セッション指向のアプリケーションの設計では、いわゆるステートフルビヘイビアを通した信頼性の高い一貫した接続に依存する傾向があります。ほとんどのインスタンス指向のアプリケーションは、1人のユーザーとの多段階の会話の環境を維持する必要はありません。包括的なステートフル・アプリケーションは、コンポーネントがクラウドのアウトブレイクやクラウドのフェイルオーバーを経験すると、アプリケーションがプロセス内のユーザー・アクティビティに関する情報を失うため、はるかに困難です。
合成を実装できる理由は、動的なコンポーネント・スケジューリング、またはフロントエンドとバックエンドの既存のクラウド・コンピューティング・コンポーネント・アプリケーションにあります。動的なスケジューリングとは、作業負荷や実際にリソースに障害が発生しているかどうかに基づいて、クラウドまたはデータセンター内のアプリケーション・コンポーネントにリソースが割り当てられることを意味します。
フロントエンドとバックエンドのハイブリッド・アプリケーションは、ユーザーとアプリケーションの残りの部分との間でWebライクなアプリケーション・エクスペリエンスを開発し、パブリック・クラウド・コンピューティングを最大限に活用して、これらのコンポーネントをスケーリングしたり、ユーザーの実際の物理的な位置分布に基づいて適切な地域に移動したりします。フロントエンドとバックエンドのアプローチにより、コンポーネントが常にクラウドまたはデータセンターにある一貫した合成パターンが作成され、設計が簡素化されます。コンポーネントを動的に移動する必要がある場合、ユーザーエクスペリエンスの一貫性とデータベースの整合性を確保できるすべての手段が実装されます。
高品質なユーザー体験の確保
ユーザー・エクスペリエンスの一貫性は、ハイブリッド・クラウドの設計課題の中でも最も困難なものの1つです***。パブリック・クラウド・アプリケーションのエクスペリエンス特性は大きく変動する可能性があり、この変動は、関連するクラウド・ホスティング・ポイントに対するユーザーの位置、データ・センター・コンポーネントに対するクラウド・ホスティングの位置、およびこれらすべての位置におけるネットワーク接続の品質に大きく依存します。
ハイブリッド・クラウド・アプリケーションのアプリケーション・エクスペリエンスの特性は、ホスティングの発生場所を管理するためにアベイラビリティ・ゾーン・アプローチを使用し、クラウドのバーストやフェイルオーバーの動的なスケジューリング・プロセスが、トランザクション・アプリケーションのSTATUSFUL動作に遅延をもたらす可能性のあるアプリケーション・エラーを生成しないようにすることで、非常に簡単に対処できます。
ハイブリッド・クラウド・アプリケーションの設計***の1つの側面は、クライアント・デバイスとその中でホストされるローカル・ソフトウェアの役割です。アプリケーション・エクスペリエンスの特性化が不十分な場合、クライアント・ソフトウェアは「ユーザーとアプリケーション」のインタラクションを管理し、ユーザーがリクエストを再送信して複数のアップデートを生成するのを防ぐことができます。また、クラウドの停止やフェイルオーバーが発生した場合に、アプリケーションセッションやトランザクションの再同期を支援することもできます。
独自のハイブリッド・クラウド・アプリケーションの開発中に上記の設計上の問題のほとんどに遭遇した場合、クラウド・アプリケーションの他の部分を補完するために、専門のアプライアンス・アプリケーションの採用を検討することをお勧めします。逆にそうすることで、システムの安定性とユーザーの満足度を向上させることができます。





