クラウドコンピューティング 仮想化がsaasアプリケーションを強化する方法

仮想化がsaasアプリケーションを強化する方法

目次:

Anonim

仮想化にはさまざまなコンピューティングテクノロジーが含まれ、ハードウェアレベルとソフトウェアレベルの両方で実現できます。 企業では、仮想化によりソフトウェアサービス、特にSaaSアプリケーションの機能を強化できます。 また、企業がITコストを削減するための最も効果的な方法でもあります。 ただし、仮想化とSaaSを組み合わせると、成功する組み合わせになる可能性があります。

SaaSとは

サービスとしてのソフトウェア(SaaS)は、ソフトウェアがサブスクリプションベースでライセンスされ、ベンダーまたはサービスプロバイダーによって中央でホストされるソフトウェアライセンスモデルです。 これらの分散ソフトウェアアプリケーションは、インターネットを介してお客様に提供されます。


SaaSは、サービス指向アーキテクチャー(SOA)またはWebサービスをサポートするテクノロジー全体で普及しています。 SaaSには多くの利点があります。 最も一般的なものは次のとおりです。

  • 簡単な管理
  • 簡単な更新とパッチ管理
  • 互換性(すべてのユーザーが同じバージョンのソフトウェアを使用します)
  • グローバルアクセシビリティ
SaaSは、クラウドコンピューティングの命名法の一部と見なされます。

  • サービスとしての情報技術管理(ITMaaS)

仮想化とソフトウェア配信

仮想化の概念は、ソフトウェア開発コミュニティで正しく採用され、受け入れられています。 開発環境とテスト環境を迅速に作成することにより、開発とテストのメカニズムを高速化することができます。


VMwareとVBoxは最も広く使用されているテクノロジーであり、複数のユーザーが異なるオペレーティングシステム、バージョン、およびインスタンスで実行できるようにします。 ほとんどのソフトウェア開発企業は、最初にソフトウェア仮想化メカニズムを採用し、その後徐々にハードウェア仮想化に移行することにより、仮想化手法を採用しています。

仮想化とSaaS

非常に多くの利点があるにもかかわらず、SaaSはまだ正当な評価を得ていません。 これには多くの要因があります。 これらには以下が含まれます。

  • 巨大なスタートアップコスト:セットアップに投資した収益は、数年にわたって回収されます。
  • フリーソフトウェアの原則に違反する可能性があります。ソフトウェアの自由活動家であるリチャードストールマンは、SaaSを「ソフトウェアの代替サービス(SaaSS)」と呼び、それをフリーソフトウェアの原則に違反していると考えています。


    「SaaSでは、ユーザーは実行可能ファイルのコピーを持っていません。サーバー上にあり、ユーザーはそれを表示したり触ったりすることができません。したがって、実際に何を行うかを確認することはできません。 SaaSは本質的に、サーバーオペレーターに、使用中のソフトウェア、または操作対象のユーザーのデータを変更する権限を与えます」と、ストールマンはGNUウェブサイトに書きました。

仮想化を介したSaaSの好例は、Amazon Web Services(AWS)です。 AWSは、多数のソフトウェアとプラットフォームを提供しています。 ソフトウェアは仮想ホストにインストールされ、必要に応じて拡大または縮小できます。


インフラストラクチャと起動コストを超えて焦点を合わせた場合、SaaSアプリケーションプラットフォームは、再現性のみを考慮すべきです。 SaaSベースのアプリケーションのすべてのインスタンスは、互いに同一である必要があります。 各顧客およびサポートチームのすべてのアプリケーションインスタンスの一貫した動作を維持するために、最小限の違いが必要です。 これは、必要に応じて問題をトラブルシューティングするために、彼らが統一された基盤を持つように行われます。 サポートエンジニアは、単一の顧客インスタンスのライブラリモジュールの欠落が原因で発生する問題を発見することを望んでいません。 同様に、SaaSベースの会社はすべての注文に対して同じ手順を使用して問題を再現できないため、顧客は注文した各アプリケーションに問題があることを知りたがりません。 一貫性とコストメリットを得るために、プロセス全体を自動化する必要があります。

複雑さの増加

SaaSモデルであろうと従来のモデルであろうと、今日のアプリケーションの展開の複雑な性質を理解することが重要になります。 最も単純なWebアプリケーションでさえ、基礎となるデータストレージレイヤーの管理を担当しなくなりました。 標準的な方法は、MySQL、Oracle、DB2、SQL Serverなどのデータベースを使用することです。 これらをJava、Ninja、Grails、Railsなどの典型的なWebスタックと組み合わせると、スケーラブルな展開を必要とする多層アーキテクチャになります。 たとえば、Rails環境のセットアップ中に、MySQLを使用しました。


プラグイン、パッチ、マクロ、マッシュアップを介したソフトウェアの簡単なアップグレードを可能にするアプリケーションのアジャイルな性質は、SaaSモデルに簡単に統合できます。 拡張機能またはパッチは、ほとんどの場合バグ修正のために開発されており、既存のソフトウェアのパッチとして配信する必要があります。 通常、顧客は、リソースの制約またはその他の状況が原因で問題が発生したこと、または別の顧客によって作成された問題であることを聞きたくないでしょう。


ウィキペディアによると、懸念の分離は、アプリケーションを個別の機能に分解する前提であり、機能の重複を最小限に抑えます。 仮想化を導入すると、この概念をインフラストラクチャに適用できます。 分離は、アプリケーションごと、顧客ごと、クラスターごとに適用できます。 ハードウェアを最大容量まで使用しながら、水平および垂直にスケーリングする機能を提供します。 これは、SaaS市場への参入を希望するシングルテナントアプリケーションにとって有益です。 ほぼゼロのコード変更で、基盤となるハードウェア上でインスタントマルチテナンシーを簡単に実現できます。


ContegixのSaaSプラットフォームには2つの展開モデルが展開されています。 差別化要因は、アプリケーションの開発方法によって異なります。

  • 展開ごとに1人の顧客をサポートする、または
  • 単一の展開で複数の顧客をサポートするには
他の一般的な展開モデルは、より高度な分離を提供することです。 基盤となるインフラストラクチャアプリケーションは仮想マシンに分割され、それぞれが必要なレベルでスケーリングされます。 シングルテナントモデルとは別に、このモデルでは、仮想マシンリソースの観点から個々のコンポーネントだけでなく、インスタンスの数もスケーリングできます。 このモデルは、大規模なインスタンスまたは複数の顧客アプリケーションに非常に役立ちます。


展開モデルに関係なく、オペレーティングシステムとアプリケーションのインストールをアプリケーションデータから分離することが非常に重要です。 これにより、アップグレードの処理方法と処理方法についての議論につながります。 オペレーティングシステムとアプリケーションのインストールでは、揮発性データの量を考慮する必要があります。揮発性データは、いつでも更新されたコピーまたは新しいバージョンに置き換えることができる必要があります。

仮想化がsaasアプリケーションを強化する方法