Aktualizowanie i rozwijanie wieloplatformowej aplikacji w architekturze mikroserwerów nie należy do najprostszych zadań. Wiele problemów na wczesnym etapie można rozwiązać dodając nieco logiki po stronie front-endu. Co to jest BFF? Jaką rolę odgrywa we współczesnych aplikacjach internetowych? W jakich przypadkach warto go wykorzystać? Sprawdź, czytając ten artykuł.
BFF – co to jest?
Wzorzec BFF, z ang. Backends For Frontends, to dodatkowa warstwa translacyjna pomiędzy backendem a frontendem. Często mówi się, że jest to backend dla frontendu.
Większość aplikacji opartych na architekturze mikroserwerów dane przesyła są za pomocą mniejszej lub większej liczby żądań. Jeżeli wszystkie obsługiwane są przez jedną bramkę API, może pojawić się wiele kłopotów. Z perspektywy bezpieczeństwa, ważna jest ochrona tokenu uwierzytelniającego. Najlepiej, gdy cały proces odbywa się po stronie serwera, a nie użytkownika. Istnieje mniejsza szansa na manipulacje i wyłudzenie danych.
Aplikacje oparte na wzorcu BFF nie muszą korzystać z tokenów uwierzytelniających, ponieważ można zastosować uwierzytelnienie sesji. Wydłużany jest tu proces strumieniowania danych o jeden krok, ale nie wpływa to negatywnie na efektywne działanie aplikacji.
Zamiast umieszczać skomplikowaną logikę po stronie front-endu, zdecydowanie bardziej opłaca się przenieść ją do utrzymywanych po stronie serwera interfejsów BFF.
Zastosowanie wzorca BFF w praktyce
Wymagająca ciągłego aktualizowania i poprawiania logika po stronie frontendu jest mniej korzystnym rozwiązaniem niż po stronie serwera. BFF pozwala zoptymalizować działanie aplikacji, jest możliwość bezproblemowego wczytywania zróżnicowanych wymagań poszczególnych platform. Ponadto, wzorzec rozwiązuje także problem rozbieżności priorytetów backendowych i frontendowych zespołów IT. Przydaje się również, aby uniknąć konieczności dostosowywania jednego zaplecza do większej liczby interfejsów.
BFF można wykorzystać do tworzenia dedykowanych interfejsów dla aplikacji mobilnych korzystających tylko z niezbędnych API na serwerze. Można także zbudować specjalistyczne interfejsy dla konkretnych kanałów sprzedaży, co umożliwi m.in. integracje z Amazonem. Rozwiązanie jest polecane do szybko rozwijającej się branży e-commerce.
Za każdym razem należy wyodrębnić jak najwięcej korzyści z BFF dla danego projektu. Wpłynie to na jego wydajność oraz bezpieczeństwo całego systemu.
Sposoby implementacji BFF
Implementacja może być realizowana na wiele sposobów, w zależności od wymagań i architektury systemu. Najczęściej wykorzystuje się API Gateway i serwery proxy dla warstwy BFF. W tym przypadku BFF jest osobnym serwerem pełniącym jednocześnie funkcję serwera aplikacyjnego i proxy. Nie ma żadnych problemów z wprowadzaniem zmian, w zależności od potrzeb. Dla każdego klienta można również udostępnić jego zasoby.
Zalety Backend for Frontend
Wiesz już, co to znaczy BFF, dlatego warto wyodrębnić realne korzyści, jakie osiągniesz stosując to rozwiązanie:
- wyższy poziom bezpieczeństwa danych,
- lepiej zamaskowana struktura API,
- zamiast błędów po stronie frontendu, wyświetlały będą się komunikaty o błędnie wprowadzanych danych, co wpływa na poprawę UX,
- prostsze utrzymanie, modyfikacje i aktualizacje interfejsów poszczególnych klientów.
Wzorzec Backend for Frontend – podsumowanie
BFF jest dodatkową warstwą translacyjną pozwalającą uniknąć wielu błędów, gdy występuje konieczność umieszczenia formatującej strumieniowane przez API dane logiki po stornie frontendu. Nie ma tu konieczności opracowywania osobnych interfejsów dla wieloplatformowych aplikacji.
Wzorzec doceniany jest zarówno przez backendowych programistów, jak i frontendowych deweloperów. Zapewnia zoptymalizowane przesyłanie danych, łatwe zarządzanie API, ułatwia pracę programistom, a także zwiększa bezpieczeństwo aplikacji.
Warto przemyśleć zastosowanie wzorca w swoim projekcie, gdy już wiesz, co znaczy BFF. Przy wielu realizacjach może to być korzystne, wpłynie na wydajność oraz skalowalność.