Backend-for-Frontendテクノロジーは、コンピューター、スマートフォン、タブレットなど、さまざまなクライアントが同時に動作するサービスの開発を簡素化します。
Backend-for-Frontend(BFF)アプローチは、SoundCloudによって開発されました。SoundCloudの開発責任者であるPhilCalçadoは、2015年に BFFを現代のIT製品の自然な進化の段階であると 説明しました。
これまで、アナログの世界では、企業システムは企業自身によってのみ使用されていました。デジタル化とオムニチャネルが発展すればするほど、焦点は企業インフラストラクチャから外部に移ります。顧客はオンラインで商品を購入し始め、スマートフォンからビジネスパートナーはWebプラットフォームを介して会社とやり取りし始めました。このような企業リソースへのアクセスを可能にするアーキテクチャを構築することが、ビジネスにとって重要になりました。
開発者は、サードパーティのITサービスがインフラストラクチャに接続できるようにAPIの構築を開始しました。このテクノロジーの欠点は、すべての人に同じ機能セットを提供することです。スマートフォンのトラフィック量を制限し、タブレットユーザーに独自のデータ入力方法を提供する必要がある場合、問題が発生する可能性があります。
SoundCloudのタスクはさらに困難でした。同社はサードパーティの開発者と統合して、プレーヤーをサイトに埋め込むことができるようにする必要がありました。これを行うには、APIはすぐに使用できるプラットフォームと対話する必要があり、更新のたびに、チームはリビジョンがこれらすべての統合を壊さないことを確認する必要があります。実際には、これを達成するのは非現実的です。
これが、Backend-for-Frontendの概念が生まれた方法です。これは、バックエンドよりもフロントエンドに近い軽量のサービスです。
BFFの機能
キーワードは「軽量」で、BFFの機能のリストはAPIの機能のリストよりはるかに少ないです。
製品のマイクロサービスを操作し、それらからデータを受け取ります。
フロントエンドで正しく処理されるように、このデータをフォーマットします。
フロントエンドにデータを送信します。
BFF: , Android, iOS .. – :
API , .
, , API.
.
BFF – , Netflix Flickr. Microsoft IBM. True Engineering.
BFF
. RabbitMQ, .
API, . , , , . , , BFF, . Rabbit- .
, API. -, Rabbit . BFF Data Provider, .
, API – BFF , , . API , – BFF .
, BFF
BFFサービスは軽量である必要があります-これがAPIとの主な違いです。コードに複雑なビジネスロジックを記述したり、データベースを構築したりする必要はありません。シンプルなコミュニケーションを優先する必要があります。
すでに述べたように、製品にはさまざまなクライアント向けに複数のBFFサービスを含めることができます。それらは必然的に一部で互いに重複しますが、これが合理的な範囲を超えないようにする必要があります。そうしないと、それらをサポートするために余分なリソースを費やすことになります。
BFFは、バックエンドとフロントエンドの間のトランスレータのようなものであることを理解する必要があります。したがって、セキュリティ、フォールトトレランス、モニタリングを追加で構築する必要があります。