PaaSは、プロセッサ、ホスト、OS、通信、メモリ、データベース、分析など、アプリの作成・実行・保守に必要な全てが揃ったクラウドエコシステムです。つまり、柔軟性や複雑さと引き換えに、シンプルで迅速なアプリ開発が可能となります。
これにより、デザイナーは煩雑なインフラ固有のコーディングから解放され、ルールの策定に専念できます。この記事では、PaaSの定義、事例、仕組み、メリット・デメリットなどを解説します。それでは、解説を始めます。
PaaS(Platform-as-a-Service)は、クラウド上でOSやインフラ設備を含む全体の仕組みを提供し、オンプレミスでの構築に伴う費用や不透明さ、不安定さを回避して、アプリの作成、運用、保守を単独で可能にする先進的なクラウドコンピューティングの手法です。
PaaS提供者は、コンピュータ、通信、スペース、実行環境、アプリ、アプリ作成フレームワークなど、すべてのネットワークインフラを管理しています。貴社は、利用分だけ支払う「従量課金」または、一定量の情報を一定人数向けに提供する定額料金のいずれかを選択できます。
どちらの方法でも、自社でインフラを構築・管理する場合に比べ、より迅速かつ経済的にアプリの作成、試作、公開、運用、更新、拡張が可能です。
主要なクラウドサービスプロバイダー(Google Cloud、AWS、IBM Cloud、MS Azureなど)は、それぞれ独自のPaaSソリューションを提供しています。また、一般的なPaaSはソフトウェアベンダー経由や、Cloud FoundryやApache Stratosなどのオープンソースとしても利用可能です。
PaaSを利用することで、デジタルアプリやその基盤となるネットワーク・ソフトウェア、Kubernetesなどのコンテナオーケストレーター、アプリのフレームワークなどを自社で調達・管理する手間と費用を省けます。基本的に、主要なPaaS提供者が環境全体を管理する中、貴社は自身で構築するサービスに専念できます。
IaaSやSaaSなどとは異なり、PaaSはアプリやサービスの開発に特化しています。こうしたプラットフォームには、通常以下の要素が含まれます。
通常、PaaSはプログラマがインターネット経由でアクセスできる安全なデジタル環境として提供されます。これにより、場所を問わずプロジェクトに取り組み、遠隔地のチームメンバーとも情報共有が可能です。アプリはPaaS上で直接開発され、完成次第すぐに公開できます。
提供者やアプリによって機能は異なりますが、一般的なPaaSには技術、データ、設計ツール、コネクタ、OSが含まれます。
Infrastructure: 仮想化に関する全ての要素は、PaaS提供者が用意します。PaaSでは、ホスト、メモリ、サーバーファーム、ウェブサーバーの管理が含まれ、場合によりユーザーインターフェース(UI)やゲートウェイも提供されます。
管理・監視ツール: 利用状況の把握や従量課金、利用特性の説明、監視・分析といった企業向け知見を提供するため、これらのツールがパッケージに含まれることが一般的です。
アプリ開発・評価・設計ツール: PaaS利用者は、アプリの作成と保守に必要なツールをすべて利用できます。どこからでもブラウザでアクセスでき、デバッガ、オープンソースエディタ、コンパイラなどが提供されています。
データベース: 顧客向けの専用プログラムやデータベース管理ツールの提供に加え、PaaS提供者がデータベース自体を管理することが多いです。
ミドルウェア: OSとアプリを結ぶソフトが通常含まれており、内部でミドルウェアを開発する必要がなくなります。
OS: DigitalOceanなどの有名プロバイダーは、アプリの動作や開発に必要なOSを提供します。
選択するカテゴリに応じ、ベンダーやネットワーク運営者が技術スタックの各部分を管理します。そのため、多くの人は、PaaSとIaaSの論争は解決済みと考え、プログラマの大半がIaaSの構成要素を組み合わせてアプリを自作しています。しかし、迅速さと効率を追求するプログラマにとっては、依然としてPaaSが有用です。
これはトレードオフを伴い、他の開発選択と同様、企業の目標に依存します。たとえば、PaaSが迅速に適切なアプリを作成できるなら、企業は最新の成長戦略への移行時の混乱を抑えられます。また、開発者の選択肢が限定されることが、厳しい規制下ではメリットとなる場合もあります。
PaaSは、インフラサービスとしてIaaSと同様の利点を提供します。さらに、ミドルウェアやアプリ作成フレームワークなどのコンポーネントからも大きな恩恵が得られます。
デメリットは以下の通りです。
データセキュリティ
組織のデータは機密であるため、重要か否かに関わらず、社外に保管するとプライバシーリスクが生じる可能性があります。PaaSのセキュリティ対策が不十分だと、望ましくない結果を招く恐れがあります。
互換性
アプリがオンプレミスとクラウド上に分かれて運用される場合、両者を統合する際に複雑さが増す可能性があります。
サプライヤーロックイン
PaaS提供者固有のフレームワークに基づいてアプリが構築されるため、他社への移行が困難になる場合があります。
基本となるパブリッククラウド環境において、ホスティング企業がOS、ライブラリ、ホスト、ストレージなどの主要なITコンポーネントを管理しますが、利用者はソフトウェアのインストールを自由に行えます。
パブリックPaaSの提供者は、システムや分析の構築・管理の負担をプログラマから解放する技術を提供します。そのため、パブリッククラウド上でIaaSと共存する形でPaaSが運用されますが、あらかじめ特定のクラウドサービスを選ぶ必要がある点は注意が必要です。
プライバシー、法令遵守、利点を守りながら、プライベートデータ施設のコスト削減とパブリックPaaSに近い柔軟性を実現します。通常、企業内のオンサイトサーバーファームで管理されるファイアウォール内に、ハードウェアやソフトとして構築され、任意の技術でプライベートクラウド向けのPaaSが提供されます。
プライベートPaaSにより、プログラマに最適な環境が提供され、既存資産を有効活用し、高額なインターネット拡張費用を抑制できます。また、厳格な安全性、機密性、認証基準を満たしながら、アプリの保守・開発が可能です。
AI PaaSは、AIや機械学習のソフトウェア群により、AI機能を持つアプリの開発、改善、実装を支援します。インフラの購入や維持に頼らず、AIベースのソリューション構築をサポートします。
通常、従量課金方式で必要なAIサービスを利用できる全てを含むクラウドシステムとして提供され、制御されたサブサービスやサードパーティAPIを統合して、すぐに利用可能な革新的手法を実現します。
パブリックPaaSの無制限な作業能力と、プライベートPaaSによるコスト削減および管理の利点を組み合わせたもので、ハイブリッドクラウド環境上で実現されます。
バックエンドのアーキテクチャやプロトコルの構築なしに、CPaaSというクラウドプラットフォームを利用して、即時の通信機能をアプリに組み込めます。通常、電話、Skype、FaceTime、WhatsAppなど、専用アプリを通じた通信が行われます。
プログラマが自前でインフラを構築する必要はなく、標準化されたインターフェース、生産性ツール、既製ソリューション、アプリ作成フレームワークを備えた完全な技術プラットフォームが提供されます。
利益目的の統合開発フレームワークを用いて、モバイルアプリの構築を支援します。スマートフォンのGPS、センサー、ウェブカメラ、マイクなどに直接アクセスでき、オブジェクトベースのドラッグ&ドロップUIにより、HTML5やネイティブアプリの作成が容易になります。多数のモバイルOSにも対応しています。
iPaaSは、連携しにくい複数のワークフローやアプリを統合するための包括的なソリューションを指し、企業内の異なるプロセス間の障壁を低減することを目指しています。
その構造により新規アプリを迅速に展開できるPaaSで、特にハイブリッドクラウド環境での企業間コラボレーション向けに提供されます。
iPaaSは、連携しにくい複数のワークフローやアプリを統合するための包括的なソリューションを示す総称です。
DBaaSは、顧客がデータベースを管理するために必要なすべての要素を含み、地域やクラウドベースのワークフローでAPIを用いて管理されるソリューションで、通常は月額制で提供されます。
MWaaSを活用することで、企業はAPIを通じ、フロントエンドの問い合わせとバックエンドのストレージや計算処理を連携させ、複雑で異なるアプリ同士を結びつけることができます。
PaaSを利用すれば、新規アプリのクラウド移行が容易になり、シンプルな切替やメタプログラミングで実現できます。
Java、Python、Swiftなど多様なプログラミング言語や技術、手法に対応し、IoTアプリの開発や、IoT機器が生成するデータの即時解析を支援します。
確立された基盤により、情報や機能の交換を目的としたAPIの作成、運用、保守、そして守ることが、企業にとって非常に容易になります。
その可能性を考えると、プログラマがより自由度と制御を求めたため、PaaSはエンタープライズ向けアプリの開発には広く採用されませんでした。皮肉にも、これがKubernetesやコンテナ技術の時代を迎えるきっかけとなりました。
最近のVMware、Red Hat、パブリッククラウドキャリアによるコンテナおよびKubernetesの展開促進を背景に、プロセスと自動化の概念へと大きくシフトしている可能性があります。
これにより、管理されたKubernetes、サーバーレスコンピューティング、FaaS、CaaSなど、多様なソリューションが登場し、コンテナ群の管理負担を軽減しながらも、プログラマに必要な柔軟性と管理性を提供しています。
多くのPaaSプロバイダーが、クラウド上でビジネスアプリと連携を構築するためのツールと支援を提供しています。以下はその代表的な例です。
PaaSソリューションを選ぶ際は、次の点を検討する必要があります。
どのような機能があるか
貴社のアプリと効果的に連携できるか確認してください。利用者が増加するにつれ、拡張性や必要な選択肢が提供されるかも重要です。
利用中のインフラや開発言語に適しているか
適合していない場合、処理速度に問題が生じる恐れがあります。
必要な期間、サービスが利用可能か
信頼性と長期利用実績があるかを確認する必要があります。
PaaSは、新たな創造力とビジネスの柔軟性を促進する次の段階を担っています。Amazon、eBay、Google、YouTubeのような企業がブラウザを通じ新たな能力を生み出す基盤と同様の革新性を備えています。
PaaSは、専門的かつ経済的なアプリの作成と配信のアプローチを提供し、複雑なハード・ソフトの維持管理から解放され、エンジニアがアプリ開発に専念できる環境を実現します。
オンライン革命の進展とともに、クラウドコンピューティング採用の理由は次第に強固になっています。まとめると、以下の要因が挙げられます。
最新情報を購読