SaaSアプリケヌション甚のマルチテナントアヌキテクチャ

マルチテナンシヌずは䜕ですか



簡単に蚀えば、マルチテナンシヌずは、単䞀のサヌビス1぀のむンストヌルたたは展開内で異なる組織぀たり、独立したSaaSサブスクラむバヌのナヌザヌに個別にサヌビスを提䟛する機胜です。 ここでの䞻なこずは、サブスクラむバヌが互いに分離しおいるこずを芳察するこずです。 実際、SaaSアプリケヌションに保存したデヌタを怜玢するずきに他の顧客が利甚できる堎合、顧客は満足したせん。 これは明確な分離違反です。



マルチテナンシヌは異なりたす。たずえば、次のスキヌムで衚すこずができたす。







最近では、マルチテナンシヌはクラりドコンピュヌティングの甚語ず䞀緒に衚瀺されるこずがよくありたすが、実際には、たずえばホスティングサむトなど、䜕らかの圢でのマルチテナンシヌが以前に関連しおいたした。 たずえば、SQL ServerずIISを䜿甚するず、デヌタベヌスずサむトを個別に管理できたす。リモヌトサヌバヌのIIS管理コン゜ヌルにアクセスするず、SQL Serverの堎合ず同様に、サむトのみが衚瀺されたす。管理コン゜ヌルでは、デヌタベヌスのみが衚瀺および管理されたす。 たた、マルチテナンシヌのバリ゚ヌションず呌ばれるこずもありたす。すべおのホスティングクラむアントは同じWebサヌバヌたたはデヌタベヌスサヌバヌ䞊に存圚したすが、それらのノヌド/芁玠/デヌタでのみ動䜜したす。 マルチテナントは、倚くのERPおよびCRMシステムの䞍可欠な郚分でもありたす マルチテナントずシングルテナントのERP-比范 。



SaaSアプリケヌションの堎合、すでにマルチテナンシヌを凊理する必芁がありたすが、既存の機胜がこれを支揎したり、たずえばPaaSプラットフォヌムを提䟛するコンポヌネントの準備ができたりしたす。 䞀般的に、マルチテナンシヌに重点を眮いおアプリケヌションをすぐに蚭蚈する方が、埌でアプリケヌションを「再蚭蚈」しおサポヌトするよりも簡単です。



マルチテナントアプロヌチの利点は䜕ですか



マルチテナントアヌキテクチャに加えお、各ナヌザヌに独自のむンフラストラクチャこれは非SaaSアプリケヌションで䞀般的ですが提䟛される堎合、個別のアヌキテクチャシングルテナントがありたす論理サヌバヌたたは物理サヌバヌ。 クラりドサヌビスの堎合、このアプロヌチは正圓化されない可胜性がありたす。 必芁な数に関係なく、各サブスクラむバヌに固定リ゜ヌスが割り圓おられたすこれにより、ナヌザヌのSaaSサブスクリプションの最終コストが増加し、その結果、゜リュヌションのコストが競合他瀟のコストよりも高くなるこずがありたす。 このようなクラりドサヌビス専甚のアヌキテクチャは、プレミアムサブスクリプションなどにのみ正圓化できたす。



マルチテナントアヌキテクチャは、SaaS゜リュヌションのコンピュヌティングリ゜ヌスずストレヌゞのコストを削枛する基本的な方法です。必芁なリ゜ヌスの最小数共有むンフラストラクチャずその最倧負荷によりたす。 最も具䜓的なメリットは、マルチテナンシヌず「無制限のスケヌリング」の組み合わせです远加のリ゜ヌスを提䟛したり、新しいサヌバヌを远加するために远加の資金を費やす必芁がない堎合。 自分で無制限のスケヌリングを実装するか、クラりドベヌスのPaaSプラットフォヌムを䜿甚するこずができたす。







出兞 クラりドコンピュヌティング  クラりドにコミットする前にSAASスマヌトを匷化する



それでも、専甚モデルたたはマルチテナントを遞択するにはどうすればよいですか



マルチテナンシヌは、たずえばデヌタレベル、リ゜ヌスレベルなどで異なる堎合がありたす。 そしお、これらすべおを組み合わせたり、すべお䞀緒に䜿甚したり、たったく䜿甚したりするこずはできたせん。



出兞 Windows Azureのマルチテナントデヌタ戊略-パヌト1



したがっお、1぀たたは別のアプロヌチを遞択するずいう問題に察する正解たたは䞍正解はありたせんが、遞択に圱響する可胜性のある倚くの芁因がありたす。 これらの芁玠に぀いおは、Widows Azureプラットフォヌムの䟋で説明したすが、それらのほずんどは他のクラりドプラットフォヌムに適甚できたす。



建築







1.マルチテナントアプリケヌションでは、垞に専甚モヌド1人のサブスクラむバヌを゚ミュレヌトできたすが、通垞、遞択したアプリケヌションを耇数の独立したサブスクリプションに拡匵する方法はありたせん。



2. 耐障害性 。 マルチテナントアプリケヌションは、専甚アプリケヌションよりもむンスタンス障害に察しお脆匱です。 専甚展開の障害は、このアプリケヌションを䜿甚するクラむアントにのみ圱響したすが、マルチテナントアプリケヌションの障害はすべおのクラむアントに圱響したす。



マルチテナンシヌアプリケヌションのいく぀かのむンスタンスたたはその䞀郚を䜿甚しお、障害のマむナスの結果を枛らすこずができたす。 たずえば、Windows Azureは、ロヌルの耇数のむンスタンスを䜿甚しお、アプリケヌションの耇数の同䞀コピヌを展開できるようにするこずで、このリスクを軜枛できたすこのアプロヌチは、耇数のむンスタンスを持぀マルチテナントモデルを完党に実装したす。 Windows Azureは、これらのロヌルむンスタンス間で芁求凊理の負荷を自動的に分散するため、アプリケヌションは、耇数のむンスタンスを䜿甚する堎合に正しく機胜するように蚭蚈する必芁がありたす。 たずえば、アプリケヌションがセッション状態を䜿甚する堎合、Webロヌルの各むンスタンスが状態にアクセスできるこずを確認する必芁がありたす。 たた、Windows Azureはすべおのロヌルむンスタンスを垞に監芖し、障害が発生するずむンスタンスを自動的に再起動したす。



䞀郚のアプリケヌションでは、すべおのクラむアントが同じマルチテナント展開を共有するこずが適切でない堎合がありたす。 たずえば、䜿甚するアプリケヌションの機胜に基づいおクラむアントをグルヌプ化し、䜜成されたグルヌプごずに各むンスタンスを最適化する必芁がある堎合がありたす。 この堎合、異なるWindows Azureサブスクリプションであっおも、マルチテナントアプリケヌションの2぀以䞊のコピヌが必芁になる堎合がありたす。



3. サヌビスレベル契玄SLA 。 さたざたなレベルのサヌビスサブスクリプションに察しお、さたざたなサヌビスレベル契玄SLAを提䟛できたす。 異なるSLAを持぀サブスクラむバヌが同じマルチテナント展開を共有する堎合、最高のSLAを達成する必芁がありたす。



4. 法的および芏制環境 。 䞀郚のアプリケヌションでは、特定の芏制たたは法的問題を考慮する必芁がありたす。 これには、機胜の違い、ナヌザヌむンタヌフェむスでの法的契玄の衚瀺、特定のサブスクラむバヌごずの個別のデヌタベヌスたたはストレヌゞ゚リアの提䟛、特定の地理的地域でのサヌビスおよびストレヌゞの堎所が必芁になる堎合がありたす。 このような状況では、さたざたなナヌザヌグルヌプに個別のマルチテナント展開を実装するか、サヌビスのサブスクリプションごずに厳密に専甚モヌドを実装する必芁がありたす。



5. 認蚌ず承認 。 クラりド内のアプリケヌションは、独自の認蚌および承認システムを䜿甚できたす。この堎合、アプリケヌションのサブスクラむバヌは、アプリケヌションのすべおのナヌザヌの資栌情報を䜜成する必芁がありたす。 䞀方、顧客は既存の認蚌システムを䜿甚し、アプリケヌションの新しい資栌情報を䜜成する必芁を避けるこずを奜む堎合がありたす。 マルチテナントアプリケヌションの2番目のオプションは、耇数の認蚌プロバむダヌをサポヌトする必芁があるこずを意味し、クラりド内のアプリケヌション認蚌スキヌムをロヌカル認蚌むンフラストラクチャのスキヌムにマッピングする必芁がある堎合もありたす。 Windows Azureでは、アクセス制埡サヌビスを䜿甚しお認蚌ず承認を構成したす。これにより、フォヌム、Active Directory、LiveId、Google、Facebook、およびその他のOpenIDプロバむダヌによる認蚌を実装できたす。 Active Directoryずの統合ず、ADサブスクラむバヌずサヌビス間のフェデレヌションのセットアップに぀いお話しおいる堎合は、おそらく専甚の展開が必芁になる可胜性がありたす。



アプリケヌションラむフサむクル管理







1. コヌドベヌスの維持 。 開発䌚瀟の堎合、さたざたなクラむアントに察しお個別のコヌドベヌスを維持するず、サポヌトずメンテナンスのコストが増加し、どのクラむアントがどのバヌゞョンを䜿甚しおいるかを远跡する際の問題が発生したす。 これにより゚ラヌが発生し、远加コストが発生する可胜性がありたす。 1぀の論理展開を備えたマルチテナントシステムは、アプリケヌション党䜓に察しお1぀のコヌドベヌスを保蚌したす。 耇数の展開がある専甚モデルを䜿甚しお同じコヌドベヌスを維持するこずはできたすが、長期的な結果を䌎う異なるクラむアント甚にコヌドをフォヌクしたい堎合がありたす。 アプリケヌションを埮調敎する必芁があるいく぀かのシナリオでは、いく぀かのコヌドベヌスが受け入れられるオプションかもしれたせんが、このパスを遞択する前に、暙準のシステム蚭定のレベルでカスタム構成たたはカスタムビゞネスルヌルを適甚する可胜性を怜蚎する必芁がありたすたずえば、むンタヌフェむスを介しお 。 耇数のコヌドベヌスが必芁な堎合は、ナヌザヌコヌドがナヌザヌコンポヌネントの必芁最小限の数だけに制限されるように、アプリケヌションを構成する必芁がありたす。



2. アプリケヌションの曎新 。 マルチテナントアプリケヌションを䜿甚するず、曎新をすべおの顧客に同時に配垃できたす。 このアプロヌチは、1぀の論理むンスタンスのみが曎新されるこずを意味し、メンテナンスの劎力を削枛したす。 さらに、すべおの顧客が最新バヌゞョンのアプリケヌションを䜿甚しおいるずいう自信があり、サポヌトが簡玠化されたす。



たずえば、Windows Azure曎新ドメむンを䜿甚するず、アプリケヌションを停止せずに曎新を耇数のロヌルむンスタンスに配垃できるため、このプロセスが簡玠化されたす。 クラむアントに特定のバヌゞョンのアプリケヌションに関連付けられた操䜜手順たたは゜フトりェアがある堎合、曎新はクラむアントず調敎する必芁がありたす。



アプリケヌションの曎新に関連するリスクを枛らすために、逐次曎新手順を実装できたす。最初のフェヌズでは、ナヌザヌの小さなグルヌプに察しおアプリケヌションが曎新され、2番目のフェヌズでは、新しいバヌゞョンに問題がなければ、曎新は残りのナヌザヌに適甚されたす。



3. アプリケヌションの監芖 。 単䞀のアプリケヌション展開の監芖は、耇数の展開の監芖よりも簡単です。 新しいロヌルむンスタンスに耇数の展開がある専甚モデルでは、監芖環境蚭定を蚭定する必芁があり、その結果、プロセス党䜓の耇雑さが増したす。 順次曎新を䜿甚するこずにした堎合、アプリケヌションの2぀のバヌゞョンを同時に監芖し、監芖デヌタを䜿甚しおアプリケヌションのバヌゞョンの安定性を評䟡する必芁があるため、監芖も難しくなりたす。



4. サヌドパヌティコンポヌネントの䜿甚 。 マルチテナントアヌキテクチャを䜿甚する堎合は、このモヌドでサヌドパヌティのコンポヌネントがどの皋床機胜するかを評䟡する必芁がありたす。 サヌドパヌティのコンポヌネントがマルチテナントアヌキテクチャで動䜜するこずを確認するには、いく぀かの远加手順を実行する必芁がありたす。



5. テストアクセスず新芏顧客の提䟛 。 このプロセスに構成の倉曎のみが含たれる堎合、新しいクラむアントに領域を提䟛したり、サヌビスの無料詊甚の初期化を倧幅に簡玠化したす。 専甚モデルの堎合は、無料詊甚版を䜿甚しおいるクラむアントを含め、各クラむアントにアプリケヌションの新しいむンスタンスをデプロむする必芁がありたす。 このプロセスは自動化できたすが、マルチテナントアプリケヌションで構成デヌタを倉曎たたは䜜成するよりもはるかに耇雑になりたす。



Windows Azureでは、RESTサヌビス管理APIを䜿甚する必芁があるため、プロビゞョニングプロセスを自動化サヌビス、蚌明曞、ストレヌゞなどのプロビゞョニングするこずができたす。 必芁なすべおのアクションの゜フトりェア実装は、非垞に重芁です。 ナヌザヌがポヌタルに入るこずを蚱可し、「詊甚」ボタンをクリックしお、数分埌に特別に䜜成された䞀時的なサブスクリプション詊甚版を取埗したす。 これは、ナヌザヌが最初にアプリケヌションを詊すこずができ、次にアプリケヌションを賌入しお䜿甚を継続できるずきに、アプリケヌションをMarketplaceに配眮する堎合にも圓おはたりたす。サポヌトサヌビスぞの電話や手玙はありたせん。



アプリケヌションのセットアップ







1. アプリケヌションにアクセスするためのURL 。 既定では、Windows Azureは各アプリケヌションに<application name> .cloudapp.netずいう圢匏のDNS名を提䟛したす。 専甚展開の堎合、CNAMEレコヌドを䜿甚しお、サブスクラむバヌのDNS名たずえば、 contoso.com をアプリケヌションにマッピングできたす。 マルチテナントアプリケヌションでは、http//.cloudapp.net//の圢匏のアドレス指定スキヌムを䜿甚できたす。たた、CNAMEずホストヘッダヌを䜿甚したす。 たずえば、 mydomain.ruをhttp// <multitenat-application-name> .cloudapp.netにマッピングできたす。ここで、ホストヘッダヌを䜿甚しお、芁求されたテナントを決定したす。 このアプロヌチの詳现に぀いおは、「 マルチテナントAzureアプリケヌションでのテナントの特定-パヌト2」を参照しおください。 このアプロヌチにより、これがマルチテナントアプリケヌションであるずいう事実をナヌザヌから隠すこずができたす。 申し立おは、テナント甚に遞択された䞀意のURLに送信されたす。 HTTPS経由でアクセスする必芁がある状況は、もう少し耇雑になりたす。詳しくは、蚘事「 マルチテナントAzureアプリケヌションでのテナントの特定-パヌト3」を参照しおください 。



2. クラむアントによっおアプリケヌションを構成したす 。 クラむアントが独自のコヌドをダりンロヌドできるようにするず、アプリケヌションが実行する制埡レベルが䜎䞋するため、アプリケヌションがクラッシュするリスクが高たりたす。 そのため、倚くのSaaSプロバむダヌは、マルチテナントアプリケヌションでのナヌザヌコヌドの䜿甚に制限を課しおいたす障害はすべおのナヌザヌに圱響するため。 ほずんどの堎合、これは単に犁止され、コヌドが蚱可されるこずもありたすが、その機胜は倧幅に䜎䞋したす。 クラむアントがコヌドたたはスクリプトをダりンロヌドできるようにするず、アプリケヌションのセキュリティに関連するリスクも高たりたす。



デヌタ局アヌキテクチャ







1. 他のテナントサブスクラむバヌからのデヌタ保護 。 マルチテナントモデルでは、偶然たたは悪意のある開瀺のリスクが高くなりたす。 アプリケヌションが他のクラむアントず物理的に共有されおいるこずをクラむアントが知っおいる堎合、クラむアントに自分の個人デヌタが安党であるこずを玍埗させるこずは困難です。 ただし、各クラむアントのデヌタを論理的に分離する高品質のアプリケヌションアヌキテクチャは、必芁なレベルの保護を提䟛する必芁がありたす。 このようなアヌキテクチャでは、次のアプロヌチを䜿甚できたす詳现なアプロヌチに぀いおは、habrosttie Multi- tenant Data Architectureで説明されおいたす。



䞊蚘のアプロヌチは、Windows AzureストレヌゞずSQL Azureの䞡方に適甚されたす。 ただし、それらは異なる䟡栌蚭定モデルに関連付けられおいたす。 Windows Azureストレヌゞの堎合、保存されたデヌタの量ずストレヌゞぞのトランザクションの数に応じお請求曞が請求されるため、コストは個々のアカりントたたはストレヌゞコンテナヌの数に䟝存したせん。 SQL Azureの䜿甚に察する請求は、䜿甚可胜なデヌタベヌスの数に䟝存するため、コストの芳点から、サブスクラむバヌテナントの最倧数に察しお1぀のデヌタベヌスを䜿甚するこずが最適です。



Windows AzureのテヌブルずBLOBを䜿甚するず、個々のアカりント、テヌブル、パヌティション、コンテナのレベルで異なるレベルのデヌタ分離を実装できたす。 SQL Azureは、デヌタベヌス、デヌタベヌスフェデレヌション、たたはサヌバヌを個別に分離しお実装したす。 たずえば、BLOBストレヌゞにデヌタを保存するモバむルアプリケヌションを䜜成できたす。 この堎合、ナヌザヌごずに個別のBLOBコンテナヌを䜜成し、このコンテナヌに適切な暩限を割り圓おるこずができたす぀たり、パブリックアクセスではありたせん。



2. デヌタアヌキテクチャの拡匵性 。 クラむアントがデヌタモデルを拡匵しお独自のカスタム属性を含めるこずができるように、デヌタりェアハりスを構築する方法はいく぀かありたす。 いく぀かのアプロヌチがありたす。



SQL Azureを䜿甚する堎合の䞻な問題は、固定デヌタスキヌム内で䜜業する必芁があるこずです。 Windows Azureテヌブルストレヌゞを䜿甚する堎合、逆に耇雑さは固定されおいないストレヌゞスキヌムに起因したす。 Windows Azure Tabular Storageを䜿甚するず、同じテヌブル内のレコヌドをたったく異なる構造にするこずができたす。これにより、コヌドがより耇雑になるため、柔軟性が向䞊したす。



3. デヌタアヌキテクチャのスケヌラビリティ 。 氎平分割により、デヌタりェアハりスを拡匵できたす。 SQL Azureのスケヌラビリティを実珟するために、個々の顧客デヌタをAzure SQLの新しいむンスタンスに移行できたす。



, Windows Azure, . () , .



, , Multi-Tenant Data Strategies for Windows Azure – Part 1 Multi-Tenant Data Strategies for Windows Azure – Part 2 . , SLA, .









1. . . , , .



Windows Azure . , Windows Azure, , .. . , 24x7 SQL Azure . , , , , . , - , , .



Cloud Ninja Metering Block Windows Azure: , .





, , .. . , SaaS , ( ). SaaS , , . , .



, , . , . , , , , . , .



, , , .



, , . . , , .



2. . SaaS Windows Azure . , $0,02 (Extra Small ), ( ) — , $28,8 . , . , .



, :



, ( , ..), .. .



. . .



結論



  1. , .
  2. , .. , \ (, DNS ). , .
  3. SaaS , .. .
  4. SaaS . PaaS .
  5. , SaaS ( ).







All Articles