たとえば、最近、次のように語りました。
- SpotifyがApache Stormをスケーリングする方法 、
- ディープラーニング用のハードウェアと見なされた
- そしてイーサネットネットワークで帯域幅を最適化する例について流に話しました。
今日は、PaaSとIaaSの主な違いについてお話します。

いくつかの用語
主な違いは、機器の上部の抽象化レベルです。これは何らかの形でデータセンターにあります。 各ソリューションは、それぞれのタスクに適しています。
私たちは何について話しているのですか:
- サービスとしてのインフラストラクチャ(IaaS);
- サービスとしてのプラットフォーム(PaaS)。
専用サーバーの長所と短所(ベアメタル):
- パフォーマンス-ハードウェアに直接アクセスできますが、管理がより困難です。
- 信頼性-ただし、自分でサービスを間違えない場合のみ。
- リソースの使用-専用サーバーを使用する場合、プロセスは、プロセッサ、メモリ、およびネットワークリソースの計算能力について他のプロセスまたは仮想マシンと競合しません。
- 価格-ハードウェアに対してのみ支払う(プロバイダーからレンタルする)。
残念ながら、ここでの欠点は、多くの場合、深刻な経験が必要な機会を上回ります。 複数の物理サーバーが1つの物理サーバーを共有する場合、仮想化が役立ちます。 テクノロジー:Xen、KVM、VMware、Hyper-Vなど。
長所と短所:
- 仮想マシンの高速クローニング。
- 仮想マシンイメージの単純なバックアップ。
- 仮想マシンの操作には専門知識が必要です。
サービスとしてのインフラストラクチャ
これは、ネットワークのリソースと構成だけでなく、計算能力とストレージへのプログラムによるアクセスを指します。 データセンターのリソースを使用する時間に対してのみ支払う必要があります。
現在、企業は機器の購入を考え、管理にお金を費やす必要がありません。 パイロットプロジェクトを非常に迅速に実行し、成功したプロジェクトを迅速にスケーリングできます。
データセンターのさまざまな部分の自動化がすでに行われています:ストレージ、ネットワークテクノロジー、特定のスキルセットを必要とする他の多数のシステムがAPIによって管理されるようになり、開発者コミュニティにとって新たな機会が開かれました。
サービスとしてのプラットフォーム
PaaSプロバイダーの例はHerokuです。 AWS上で完全に実行されます。 IaaSがなければ、Herokuのようなプラットフォームは登場しなかったでしょう。 PaaSプロバイダーは、IaaSを使用してサービスを提供します。
PaaSにより、アイデアがアプリケーションの展開に至った瞬間から経過する時間をさらに短縮することができました-手動で実行されるプロセスをさらに自動化し、特殊なシステムで作業するために必要な知識レベルを減らしました。
PaaSの作成は非常に困難です。 ここでは、Git、作業バージョン、およびアプリケーションメタデータの変更を監視するアプリケーション管理データベースを作成する必要があります。 これに加えて、クラスタータスクスケジューラー、ロードバランサー、DNSを自動化し、特定の形式のコンテナー化(FreeBSD刑務所、Solarisゾーン、Linuxコンテナー)を実装します。
結論
簡単に言えば、IaaSは一定期間サーバーをレンタルすることに似ています。 PaaSは、より複雑なものとして記述することができます。Webアプリケーションを実行および管理するためのツールのバンドルセットです。
同じPaaSプロバイダーで実行されている隣人は、互いのパフォーマンスに影響を与える可能性があります。 IaaSの場合、大規模なインスタンスを使用できます。これは、ほとんどの場合、「近隣」のない物理マシンへの専用アクセスを意味します。 PaaSシステムコンポーネントが増えると、介入が必要となるリスクポイントが増えます。
ほとんどのPaaSプラットフォームは、アプリケーションを管理するためのユニバーサルインターフェイスを提供しますが。 賄bは、環境全体を簡単に複製できることです。 システム全体のクローンをわずか数分で起動できます。 これは、Herokuなどの一部のプラットフォームのコストにすぎません(IaaSの基準でも)すぐに大きくなりすぎる可能性があります。
ある分野ではPaaSが勝ち、他の分野ではIaaSが勝ちました。 それが現実です。 より大きなリスクを負う余裕がある場合、PaaSは柔軟なアプリケーション管理機能を提供し、IaaSと比較してこのプロセスを大幅にスピードアップできます。
追加の読み物: