要約
BaaS(Backend as a Service)は、ユーザー認証、クラウドストレージ、プッシュ通知といった反復的なサーバーサイドのタスクを外部に委託することで、開発者がユーザー向けの体験向上に集中できるようにします。BaaSは、PaaS、mBaaS、サーバーレスコンピューティングなどの類似モデルとは異なり、どのモデルを選択するかはアプリケーション固有のニーズによって決まります。OktaのCustomer Identityソリューションは、セキュアで標準ベースのBaaS互換アプローチを提供し、開発を加速させます。
BaaSによってアプリケーション開発がどのように簡素化されるか
BaaS(サービスとしてのバックエンド)製品は、Web/モバイルアプリケーションが円滑に動作するために必要となる基本的かつ反復的なタスクを処理します。これによって時間が解放されるので、開発者はユーザーが見て操作する部分の作成や保守に注力できます。
BaaS市場は巨大で、毎年成長しています。多くのBaaSプロバイダーが、顧客の注意を引きつけ成約を獲得しようと競い合っています。しかし、購入すべきでしょうか?
賢明な購入の意思決定のため、これらの製品とは何か、どのように機能するかについて掘り下げてみましょう。
BaaSとは?
潜在顧客向けのアプリケーションの作成を上司から依頼されたケースを考えてみましょう。現在、そのようなアプリケーションがない場合は、ゼロから始める必要があります。BaaSを使用しない場合は、すべてのタスクを社内で担う必要があります。一方、BaaSプロバイダーを利用すると、一部の負担を軽減できます。
ユーザーインターフェイスとクライアント側ロジックの構築について、BaaSベンダーは以下のような機能を提供します。
- クラウドのストレージ
- データベース管理
- メール検証
- ジオロケーション
- ホスティング
- プッシュ通知
- セキュリティ設定
- ソーシャルの統合
- 更新
- ユーザー認証
これらの基本的な要素は、あらゆるアプリの動作に必要です。BaaSがなければ、毎回自分でコーディングして作成する必要があります。請負業者を利用することで、大きな時間の節約になります。
たとえば、アイオワ州の民主党幹部会用にツールを作成したアプリプロバイダーは、ツールに欠陥が見つかったことが報道されて大きな批判を受けました。BaaSを使用することで、リリース前にコードをテストして完成させる時間が増えるため、このように面目を潰さずに済むかもしれません。また、それまでに多数の企業が生み出したテクノロジーを踏まえて構築し、テストできます。
BaaSの仕組み
BaaS市場のほとんどのツールはクラウドで実行され、同様にクラウドで運営する企業と最適に連携します。
一般的に、ベンダーはBaaS製品を階層化しています。
- 基盤:サーバーがここに含まれます。プログラムを実行するものもあれば、情報をバックアップするものもあります。
- アプリケーション:BaaS製品は、このレイヤーで要求(ログインなど)を処理します。
- 接続:アプリケーションサーバーは、このレイヤーでインターネットにアクセスします。
APIとSDKはフロントエンドとバックエンドをどのように接続しますか?
アプリケーションプログラミングインターフェイス(API)とソフトウェア開発キット(SDK)は、フロントエンド(ユーザーに表示される部分)とバックエンド(セキュリティとデータを処理する部分)の間を橋渡しする役割を果たします。
アプリが急激にスケールするとどうなるでしょうか?
アプリが大きな成功を収めている場合には、短期間に多くのユーザーを引き付けるでしょう。こうしたユーザーの要求とログインのために、サーバーの容量が枯渇する可能性もあります。
理想的には、BaaSツールはトラフィックを受け入れるように拡張しますが、残念ながらその限りではないツールもあります。トラフィックが増えている場合は、BaaSベンダーに支援を求める必要があります。
BaaSの特徴
企業が「サービスとして」提供できるものは、すべて「-aaS」と呼ばれます。このような用語をたくさん見たことがあるでしょう。
BaaSは、以下のような他のツールとは異なります。
| サービスタイプ | 主な機能 | 主な制限事項 |
|---|---|---|
| BaaS | 完全なバックエンドサービス(認証、ストレージ、通知) | 自動でスケールしない場合があります |
| サービスとしてのプラットフォーム(PaaS) | 簡単なアプリ管理 | ユーザー認証やプッシュ通知なし |
| サービスとしてのモバイルバックエンド(mBaaS) | モバイル専用バックエンド | モバイル専用 |
| サーバーレスコンピューティング | イベントドリブン型で、インターネットに接続されたあらゆるマシンで実行可能 | BaaSとは異なる実行モデル |
これらのオプションは、BaaSと競合するものと考えることができます。プログラムとアプリを強化するために、これら4つのオプションをすべて使用する必要はありません。いずれか1つを選んで導入すればよいのです。
Oktaの利用
OktaのCustomer Identityソリューションは、プラットフォームを保護し、開発を加速します。Oktaを導入することで、標準のライブラリとプロトコルを利用できます。さらに、すべての作業が保護されるという安心感を得ることもできます。
その仕組みについて、ぜひご確認ください。詳細はこちら。
よくある質問(FAQ)
BaaSプロバイダーが通常担当するタスクとは何ですか?
BaaSプロバイダーは、クラウドストレージ、データベース管理、eメール検証、ジオロケーション、ホスティング、プッシュ通知、セキュリティ設定、ソーシャル連携、更新、ユーザー認証など、サーバー側のタスクを管理します。
BaaSとPlatform as a Service(PaaS)の違い
PaaSはアプリ管理を簡素化しますが、ユーザー認証やプッシュ通知といった機能は提供しません。これらはBaaSの中核的な機能です。
BaaS製品を構成するレイヤーとは何ですか?
BaaS製品は通常、プログラムやバックアップを実行するサーバーで構成される「Foundation」レイヤー、ログインなどのリクエストを処理する「Applications」レイヤー、アプリケーションサーバーがインターネットにアクセスする「Connections」レイヤーの3つのレイヤーで構築されます。
BaaSとmBaaSの違いとは何ですか?
BaaSはWebアプリケーションとモバイルアプリケーションの両方をサポートできますが、Mobile Backend as a Service(mBaaS)はモバイル環境専用に設計されています。
アプリへのトラフィックが急増した場合はどうなりますか?
すべてのBaaSツールが、トラフィックの増加に対応して自動的にスケールするわけではありません。場合によっては、BaaSベンダーに直接連絡して、容量の追加をリクエストする必要があります。
BaaSとサーバーレスコンピューティングの違いとは?
BaaSとサーバーレスコンピューティングは密接に関連していますが、サーバーレスアプリケーションはイベント駆動型であり、インターネットに接続されたあらゆるマシンで実行できるため、実行環境の柔軟性がより高くなります。
参考文献
Cloud Mobile Backend as a Service (BaaS) Market Worth $5.9 Billion by 2025(Markets and Markets)
民主党アイオワ州党員集会の混乱を招いたアプリは、急ごしらえでApple App Storeの承認も得ていなかった。(2020年2月、Mac Daily News。