方法:ホスティングプロバイダーのインフラストラクチャの構築方法

画像



ホスティングプロバイダーのビジネスは非常に技術的です。最大かつ最も人気のあるサイトでさえスムーズに運用するには、強力なインフラストラクチャを作成する必要があります。 今日は、 1cloudプロジェクトの外部システムのアーキテクチャについてお話します。



インフラストラクチャ要素



インフラストラクチャを構築するとき、「ホスティングサービス」と呼ばれる製品のさまざまなコンポーネントの分離を最大化することが決定されました。 負荷が増加すると、このアプローチにより、単一のアプリケーションを分割したり、複雑な移行に対処したりせずに、必要なサービスを新しいサーバーに単純に転送できます。



1cloudシステムは、次のコンポーネントで構成されています。





サービスの作成時に、C#、ASP.NET MVC 5、Entity Framework 6.1テクノロジーが使用されました。 これらのコンポーネントはすべて、DataLayerという共通のソフトウェアパーツによって接続されています。これには、モデル、静的メソッド、および一般的な辞書に関する情報が含まれています。 同じ決定により、データベースを操作するためのいわゆるデータファサードが定義されます。



概略的に、インフラストラクチャは同様の方法で表すことができます。



画像



クリックすると、画像がフルサイズで開きます。



システムの個々の要素をより詳細に検討してください。



外部サイトと内部パネル


先ほどお話ししたメインの1 クラウド Webサイトは、新しい顧客を引き付けるために使用され、訪問者が最初に目にする一種のショーケースとして機能します。 サイトページのコンバージョンを増やすために、サービスのコストを計算できる計算機などの重要な要素がユーザーに追加されました(この決定は、このページが2つに分割された以前のバージョンのサイトへの訪問者の行動の分析に基づいて行われました)。



内部パネルは主に、サーバーの管理とサービスの支払いに関する一般的な操作の実行に焦点を当てています(MoneyOnline支払いゲートウェイとの統合が実装されています)。



サイトの「管理」部分もあり、サポートスタッフがアクセスできます。



外部サイト、管理パネル、またはコントロールパネルで実行されるアクションはすぐには実行されず、非同期処理のキューに入れられます(つまり、適切なタスクが作成されます-タスク)。 データベースに入力された情報のみが即座に記録されます。



タスク処理サービス


作成されたタスクは、特別なサービスによって処理されます。 処理はfifoメソッドに従って並行して実行されます。 ハンドラーにはいくつかのタイプがあります-ハンドラーが着信タスクと対話するタイプによって異なります。 このサービスは、サードパーティシステムのAPIを操作する責任があります。



タスクの処理中に、通知を送信する必要が生じることがよくあります。通知はすぐには送信されませんが、処理のためにキューに入れられます。



通知サービス


システムのこの部分は、元々、かなりの負荷の条件下で動作することを期待して設計されました。 特に、これにより、サービスは送信されたメッセージの分析をほとんど実行しません(重複したアラートの送信に対する保護のみがあります)。



すべての通信パラメータ(html、プレーンテキスト内の送信者、送信者、件名、メッセージ本文)は、タスク処理サービスのレベルで決定されます。 通知サービスもfifoの原則に基づいて機能します。



課金サブシステム


ビジネスの観点から見たシステムの最も重要な要素の1つ。 このサービスは、サービスの課金と顧客からの借方記入に責任を負います。 10分ごとに、サービスは注文されたサービスのパラメーターを収集し、コストを計算し、それに応じてユーザーの個人アカウントから差し引きます。 現在、サブシステムは特に複雑ではありません-そして、これはそのようなアーキテクチャが維持しやすいので、これはその主な利点の1つです(ただし、最初は1日に生成される操作の数が最初は個別に処理することを困難にしました)。



画像



将来的には、新しいサービスと実際に消費されたリソースの支払いモデルを導入する予定であるため、課金を開発する必要があります(お支払いはそのまま)-このプロジェクトでは、VMware vSphere APIを使用する予定です。



非同期メッセージサービス


ホスティングプロバイダーは、定期的に自動メッセージ(たとえば、14日後にブロックされたサーバーの削除に関するリマインダー)で顧客を悩ませる必要があります。 このようなメッセージは、システムの他のモジュールから情報を受け取る「特別にトレーニングされた」サービスによってのみ作成できます。



監視システム


システムの「主任診断者」。主に内部の状態を監視し、処理中のタスクや障害の凍結、課金の問題、メッセージの送信、ログの解析などのエラーを探します(log4netコンポーネントはログに使用されます)。



計画



将来的には、お客様が地理的に分散したデータセンターのサーバー上でも実行されているアプリケーションの負荷分散を注文できるようにする負荷分散サービスを開始する予定です。



今日は以上です。 ホスティングプロバイダーのインフラストラクチャのどの要素について詳しく知りたいかについてのコメントを記入してください。



All Articles